Not in the top 1,000 by GitHub stars

garroshub/ai-economist-skill

An installable agent skill for macroeconomic nowcasting and monetary-policy analysis. Structural statistical baselines with ML calibration for GDP forecasts and policy-rate signals (US and Canada), with out-of-sample backtesting, data-timing controls, and interpretable model comparisons.

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

economics-ml/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

50644e7e8508 → 50644e7e8508

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 50644e7e8508

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 50644e7e85081f2854f8356dfccd27bd9f9e9f82

35GitHub stars
0stars in 7 days
1skill in this repository
0commits in 30 days

Heat

0.3
  • Star growth, last 7 daysNot available
  • Star growth, last 24 hoursNot available
  • Rank movement, last 7 daysNot available
  • Commits, last 30 daysNot available
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekNot available

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Oct 25, 2026Oct 25, 202635

30-day change not yet available: not enough history.

Individual skills in this repository

How it works

When your agent uses it

What it loads into context

Frontmatter

0 tokens

Always available to the agent

SKILL.md

1,263 tokens

When the skill is activated

Reference documents

0 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Interface
  2. Operating Principles
  3. Default Agent Behavior
  4. Non-Script Analysis Mode
  5. Supported Analysis Layers
  6. Report Templates
  7. Commands
  8. Data Requirements

Scripts executed separately

  • backtest_engine.py
  • main.py
  • src/__init__.py
  • src/core/__init__.py
  • src/core/modeling_core.py
  • src/core/visual_oracle.py
  • src/data_utils/__init__.py
  • src/data_utils/macro_data_fetcher.py
  • src/data_utils/statcan_fetcher.py
  • src/engine/__init__.py
  • src/engine/gdp_nowcast_engine.py
  • src/engine/policy_rate_engine.py

Files

  • SKILL.mdcore6,181 bytes
  • SKILL.mdcore6,181 bytes
  • SKILL.mdcore6,181 bytes
  • SKILL.mdcore6,181 bytes
  • SKILL.mdcore6,181 bytes
  • SKILL.mdcore6,181 bytes
  • backtest_engine.pyruns22,797 bytes
  • main.pyruns1,218 bytes
  • requirements.txtdoc65 bytes
  • src/__init__.pyruns0 bytes
  • src/core/__init__.pyruns0 bytes
  • src/core/modeling_core.pyruns2,682 bytes
  • src/core/visual_oracle.pyruns2,497 bytes
  • src/data_utils/__init__.pyruns0 bytes
  • src/data_utils/macro_data_fetcher.pyruns5,406 bytes
  • src/data_utils/statcan_fetcher.pyruns1,269 bytes
  • src/engine/__init__.pyruns0 bytes
  • src/engine/gdp_nowcast_engine.pyruns13,747 bytes
  • src/engine/policy_rate_engine.pyruns22,091 bytes
Read SKILL.md
# 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
View the complete source on GitHub

Skills included

Repository facts

License
MIT
Created
Feb 2, 2026
Last pushed
Oct 8, 2026
Forks
5
Open issues
0
Project activity
Active

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 5, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 5 notes
  • economics-ml/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • economics-ml/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • economics-ml/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • economics-ml/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • economics-ml/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 63 signals by file

economics-ml/SKILL.md

  • Access to secretsline 206
    [Credential-related source omitted]

economics-ml/backtest_engine.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 15
    [Credential-related source omitted]
  • Network accessline 21
    def __init__(self):         self.fred_url = "https://api.stlouisfed.org/fred/series/observations"
  • Network accessline 22
    self.fred_url = "https://api.stlouisfed.org/fred/series/observations"
  • Access to secretsline 92
    [Credential-related source omitted]
  • Access to secretsline 97
    [Credential-related source omitted]
  • Network accessline 101
    }         try:             response = requests.get(self.fred_url, params=params, timeout=15)
  • Network accessline 102
    try:             response = requests.get(self.fred_url, params=params, timeout=15)             response.raise_for_status()
  • Network accessline 103
    response = requests.get(self.fred_url, params=params, timeout=15)

economics-ml/main.py

  • Executable scriptline 1
    Executable file

economics-ml/src/__init__.py

  • Executable scriptline 1
    Executable file

economics-ml/src/core/__init__.py

  • Executable scriptline 1
    Executable file

economics-ml/src/core/modeling_core.py

  • Executable scriptline 1
    Executable file

economics-ml/src/core/visual_oracle.py

  • Executable scriptline 1
    Executable file

economics-ml/src/data_utils/__init__.py

  • Executable scriptline 1
    Executable file

economics-ml/src/data_utils/macro_data_fetcher.py

  • Executable scriptline 1
    Executable file
  • Network accessline 9
    [Credential-related source omitted]
  • Access to secretsline 9
    [Credential-related source omitted]
  • Access to secretsline 10
    [Credential-related source omitted]
  • Network accessline 11
    self.fred_base_url = "https://api.stlouisfed.org/fred/series/observations"
  • Access to secretsline 15
    [Credential-related source omitted]
  • Access to secretsline 20
    [Credential-related source omitted]
  • Network accessline 24
    }         try:             response = requests.get(self.fred_base_url, params=params, timeout=15)
  • Network accessline 25
    try:             response = requests.get(self.fred_base_url, params=params, timeout=15)             response.raise_for_status()
  • Network accessline 26
    response = requests.get(self.fred_base_url, params=params, timeout=15)
  • Network accessline 38
    url = "https://www.bls.gov/news.release/empsit.t01.htm"
  • Network accessline 41
    }         try:             response = requests.get(url, headers=headers, timeout=15)
  • Network accessline 42
    try:             response = requests.get(url, headers=headers, timeout=15)             response.raise_for_status()
  • Network accessline 43
    response = requests.get(url, headers=headers, timeout=15)
  • Network accessline 69
    url = "https://www.bankofcanada.ca/rates/indicators/capacity-and-inflation-pressures/"
  • Network accessline 74
    try:             resp = requests.get(url, headers=headers, timeout=15)
  • Network accessline 75
    resp = requests.get(url, headers=headers, timeout=15)
  • Network accessline 127
    print("--- Testing BLS Direct Fetch (US Unemployment) ---")

economics-ml/src/data_utils/statcan_fetcher.py

  • Executable scriptline 1
    Executable file
  • Network accessline 8
    class StatCanDataFetcher:     RETAIL_SALES_URL = "https://www150.statcan.gc.ca/n1/tbl/csv/20100056-eng.zip"
  • Network accessline 9
    RETAIL_SALES_URL = "https://www150.statcan.gc.ca/n1/tbl/csv/20100056-eng.zip"
  • Network accessline 31
    def fetch_canada_retail_sales(self):         try:             response = requests.get(self.RETAIL_SALES_URL, timeout=20)
  • Network accessline 32
    try:             response = requests.get(self.RETAIL_SALES_URL, timeout=20)             response.raise_for_status()
  • Network accessline 33
    response = requests.get(self.RETAIL_SALES_URL, timeout=20)

economics-ml/src/engine/__init__.py

  • Executable scriptline 1
    Executable file

economics-ml/src/engine/gdp_nowcast_engine.py

  • Executable scriptline 1
    Executable file
  • Access to secretsline 19
    [Credential-related source omitted]
  • Network accessline 31
    def __init__(self, country="US"):         self.country = country         self.fred_url = "https://api.stlouisfed.org/fred/series/observations"
  • Network accessline 32
    self.country = country         self.fred_url = "https://api.stlouisfed.org/fred/series/observations"         self.now = get_toronto_now()
  • Network accessline 33
    self.fred_url = "https://api.stlouisfed.org/fred/series/observations"
  • Access to secretsline 77
    [Credential-related source omitted]
  • Network accessline 80
    [Credential-related source omitted]
  • Access to secretsline 80
    [Credential-related source omitted]
  • Network accessline 81
    try:             r = requests.get(url, timeout=10).json()             if "observations" not in r:
  • Network accessline 82
    r = requests.get(url, timeout=10).json()
  • Network accessline 94
    feeds = [             "https://www.investing.com/rss/news_25.rss",
  • Network accessline 95
    "https://www.investing.com/rss/news_25.rss",
  • Network accessline 96
    "https://www.bankofcanada.ca/feed/",
  • Network accessline 103
    try:             for url in feeds:                 resp = requests.get(
  • Network accessline 104
    for url in feeds:                 resp = requests.get(                     url, timeout=10, headers={"User-Agent": "Mozilla/5.0"}
  • Network accessline 105
    resp = requests.get(
  • Network accessline 187
    base_url = "https://www150.statcan.gc.ca/n1/daily-quotidien"
  • Network accessline 197
    try:                 resp = requests.get(url, timeout=3)
  • Network accessline 198
    resp = requests.get(url, timeout=3)
  • Access to secretsline 267
    [Credential-related source omitted]
  • Access to secretsline 290
    [Credential-related source omitted]

economics-ml/src/engine/policy_rate_engine.py

  • Executable scriptline 1
    Executable file

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Declared and executed: 9 facts
Signal confidence: 63 facts

and 13 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeUnknownNo evidence
CodexUnknownNo evidence
CursorUnknownNo evidence
Gemini CLIUnknownNo evidence
GitHub CopilotUnknownNo evidence
OpenCodeUnknownNo evidence
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.