Economics ML Skill
Use this skill for macroeconomic nowcasting, central-bank policy diagnostics,
economics-oriented ML calibration, and validation reports.
Interface
Treat this as an agent skill first. A runtime installation should include this
file, requirements.txt, main.py, backtest_engine.py, and src/. Use the
bundled Python scripts when the user asks for a live run, fresh backtest,
regenerated dashboard snapshot, or reproducible artifact. For interpretive
questions, answer from the latest available report, snapshot, user-supplied
numbers, or cited public data.
Operating Principles
- Do not expose private keys, local machine identifiers, personal names, or
unpublished private data in generated reports or dashboard text.
- Keep the structural economics model as the primary estimate.
- Use ML as an auxiliary calibration, measurement, nuisance-estimation,
heterogeneity, or validation layer.
- Do not describe ML calibration as the main forecast.
- Keep causal language conservative. Separate measurement, prediction,
association, identification, and policy evaluation.
- Treat boundary and discontinuity designs as nonparametric econometrics unless
a specific ML method is actually used.
Default Agent Behavior
When answering a user request, produce an economist-style readout rather than a
raw script result. Include:
- Forecast or policy target period.
- Data-through date and release-lag assumptions.
- Sources used and sources missing.
- Structural baseline result.
- Data-enhanced result when available, shown separately.
- Driven-factor decomposition.
- Directional interpretation of the largest positive and negative factors.
- Backtest window, observations, R2/RMSE where available.
- Leakage and overfit checks.
- Limitation note for revised-data, pseudo-real-time, or non-causal results.
Non-Script Analysis Mode
Use this mode when the user asks what the results mean, why a country changed,
whether an enhancement is credible, or which factors are driving a forecast.
Do not simply tell the user to run a command.
Process:
- Start from the latest available report, dashboard snapshot, or values supplied
by the user.
- Identify the baseline model result before discussing the enhanced result.
- Attribute the enhanced result to observable factors and state the sign of each
material factor.
- Explain whether the enhanced layer changes the policy or forecast
interpretation.
- Separate evidence from inference. Use cautious language when the data are
revised, sparse, or pseudo-real-time.
- State what additional data would be needed before making a stronger claim.
Output should be concise but diagnostic:
Bottom line:
Baseline signal:
Data-enhanced signal:
Main driven factors:
Validation check:
Interpretation:
What not to conclude:
Supported Analysis Layers
- Measurement layer: convert text, news, disclosures, patents, images, audio,
web traces, and other raw inputs into structured variables.
- Nuisance-function estimation: estimate selection probabilities, propensity
scores, conditional expectations, control functions, or counterfactual
outcomes.
- Causal and policy evaluation: DID, DML, causal forests, QTE, policy
heterogeneity, and targeting rules.
- Structural and dynamic models: value functions, policy functions, state
distributions, and equilibrium objects.
- Interpretable multimodal prediction: use graph, time-series, text, audio, or
video signals only when the prediction remains auditable.
- Domain-specific economics: climate and energy, finance, labor automation,
innovation, disclosure, platform governance, and supply chains.
- Validation and auditing: construct validity, annotator reliability, leakage
checks, calibration, and external validity.
- Boundary and nonparametric caution: do not relabel identification designs as
ML when the core contribution is econometric.
Report Templates
GDP Nowcast
Use this structure:
Target period:
Data through:
Baseline bridge nowcast:
ML auxiliary calibration:
Final calibrated nowcast:
Driven factors:
- Activity:
- Labor:
- Prices:
- Financial conditions:
- External demand:
Validation:
Limitations:
Rules:
- State that ML is auxiliary calibration, not the main predictor.
- Report US and Canada separately when both are available.
- Do not compare calibrated and baseline results without the same validation
window.
- Mention release-lag filtering when monthly data are used for current-quarter
evaluation.
Policy Rate Diagnostics
Use this structure:
Central bank:
Data through:
Current policy rate:
Base Taylor rate:
Data-Enhanced Taylor rate:
Gap versus actual:
Driven factors:
- Activity gap:
- Inflation pressure:
- Financial conditions:
- External pressure:
- Labor cooling:
Policy interpretation:
Validation and limitations:
Rules:
- Base Taylor is the structural signal.
- Data-Enhanced Taylor is a learned historical residual adjustment.
- Do not tune parameters by hand to match official projections.
- Explain whether the enhancement moves the estimate closer to or farther from
the current policy rate.
- Treat the result as a diagnostic, not a mechanical recommendation.
Backtest Review
Use this structure:
Window:
Observations:
Baseline R2 / RMSE:
ML-calibrated R2 / RMSE:
RMSE gain:
Leakage controls:
Residual risk:
Rules:
- Confirm that calibration uses only prior rows in rolling validation.
- Call out revised-data limitations.
- Do not report gains without baseline metrics.
Commands
Install:
pip install -r requirements.txt
Run policy diagnostics:
python main.py policy --country US
python main.py policy --country Canada
Run GDP nowcast:
python main.py gdp --country US
python main.py gdp --country Canada
Run backtest:
python backtest_engine.py
Data Requirements
- Set
FRED_API_KEY in the environment before running live data workflows.
- If live data are missing, report the missing source explicitly.
- Dashboard snapshot values should be generated from the Python workflow or
clearly labeled as a static example.
1---2name: economics-ml3description: Economics ML Skill4---5# Economics ML Skill67Use this skill for macroeconomic nowcasting, central-bank policy diagnostics,8economics-oriented ML calibration, and validation reports.910## Interface1112Treat this as an agent skill first. A runtime installation should include this13file, `requirements.txt`, `main.py`, `backtest_engine.py`, and `src/`. Use the14bundled Python scripts when the user asks for a live run, fresh backtest,15regenerated dashboard snapshot, or reproducible artifact. For interpretive16questions, answer from the latest available report, snapshot, user-supplied17numbers, or cited public data.1819## Operating Principles2021- Do not expose private keys, local machine identifiers, personal names, or22 unpublished private data in generated reports or dashboard text.23- Keep the structural economics model as the primary estimate.24- Use ML as an auxiliary calibration, measurement, nuisance-estimation,25 heterogeneity, or validation layer.26- Do not describe ML calibration as the main forecast.27- Keep causal language conservative. Separate measurement, prediction,28 association, identification, and policy evaluation.29- Treat boundary and discontinuity designs as nonparametric econometrics unless30 a specific ML method is actually used.3132## Default Agent Behavior3334When answering a user request, produce an economist-style readout rather than a35raw script result. Include:3637- Forecast or policy target period.38- Data-through date and release-lag assumptions.39- Sources used and sources missing.40- Structural baseline result.41- Data-enhanced result when available, shown separately.42- Driven-factor decomposition.43- Directional interpretation of the largest positive and negative factors.44- Backtest window, observations, R2/RMSE where available.45- Leakage and overfit checks.46- Limitation note for revised-data, pseudo-real-time, or non-causal results.4748## Non-Script Analysis Mode4950Use this mode when the user asks what the results mean, why a country changed,51whether an enhancement is credible, or which factors are driving a forecast.52Do not simply tell the user to run a command.5354Process:5556- Start from the latest available report, dashboard snapshot, or values supplied57 by the user.58- Identify the baseline model result before discussing the enhanced result.59- Attribute the enhanced result to observable factors and state the sign of each60 material factor.61- Explain whether the enhanced layer changes the policy or forecast62 interpretation.63- Separate evidence from inference. Use cautious language when the data are64 revised, sparse, or pseudo-real-time.65- State what additional data would be needed before making a stronger claim.6667Output should be concise but diagnostic:6869```text70Bottom line:71Baseline signal:72Data-enhanced signal:73Main driven factors:74Validation check:75Interpretation:76What not to conclude:77```7879## Supported Analysis Layers80811. Measurement layer: convert text, news, disclosures, patents, images, audio,82 web traces, and other raw inputs into structured variables.832. Nuisance-function estimation: estimate selection probabilities, propensity84 scores, conditional expectations, control functions, or counterfactual85 outcomes.863. Causal and policy evaluation: DID, DML, causal forests, QTE, policy87 heterogeneity, and targeting rules.884. Structural and dynamic models: value functions, policy functions, state89 distributions, and equilibrium objects.905. Interpretable multimodal prediction: use graph, time-series, text, audio, or91 video signals only when the prediction remains auditable.926. Domain-specific economics: climate and energy, finance, labor automation,93 innovation, disclosure, platform governance, and supply chains.947. Validation and auditing: construct validity, annotator reliability, leakage95 checks, calibration, and external validity.968. Boundary and nonparametric caution: do not relabel identification designs as97 ML when the core contribution is econometric.9899## Report Templates100101### GDP Nowcast102103Use this structure:104105```text106Target period:107Data through:108Baseline bridge nowcast:109ML auxiliary calibration:110Final calibrated nowcast:111Driven factors:112- Activity:113- Labor:114- Prices:115- Financial conditions:116- External demand:117Validation:118Limitations:119```120121Rules:122123- State that ML is auxiliary calibration, not the main predictor.124- Report US and Canada separately when both are available.125- Do not compare calibrated and baseline results without the same validation126 window.127- Mention release-lag filtering when monthly data are used for current-quarter128 evaluation.129130### Policy Rate Diagnostics131132Use this structure:133134```text135Central bank:136Data through:137Current policy rate:138Base Taylor rate:139Data-Enhanced Taylor rate:140Gap versus actual:141Driven factors:142- Activity gap:143- Inflation pressure:144- Financial conditions:145- External pressure:146- Labor cooling:147Policy interpretation:148Validation and limitations:149```150151Rules:152153- Base Taylor is the structural signal.154- Data-Enhanced Taylor is a learned historical residual adjustment.155- Do not tune parameters by hand to match official projections.156- Explain whether the enhancement moves the estimate closer to or farther from157 the current policy rate.158- Treat the result as a diagnostic, not a mechanical recommendation.159160### Backtest Review161162Use this structure:163164```text165Window:166Observations:167Baseline R2 / RMSE:168ML-calibrated R2 / RMSE:169RMSE gain:170Leakage controls:171Residual risk:172```173174Rules:175176- Confirm that calibration uses only prior rows in rolling validation.177- Call out revised-data limitations.178- Do not report gains without baseline metrics.179180## Commands181182Install:183184```bash185pip install -r requirements.txt186```187188Run policy diagnostics:189190```bash191python main.py policy --country US192python main.py policy --country Canada193```194195Run GDP nowcast:196197```bash198python main.py gdp --country US199python main.py gdp --country Canada200```201202Run backtest:203204```bash205python backtest_engine.py206```207208## Data Requirements209210- Set `FRED_API_KEY` in the environment before running live data workflows.211- If live data are missing, report the missing source explicitly.212- Dashboard snapshot values should be generated from the Python workflow or213 clearly labeled as a static example.