You hand over a forward window (default 30 days) and get back the
macro release schedule with historical reaction stats per event type.
Sibling to earnings-blackout. earnings-blackout covers single-name
prints; this covers the macro releases that move the whole tape.
Every portfolio review should run both.
When to invoke
Portfolio review workflow: after earnings-blackout, run this for
the macro-side of the calendar
Pre-trade planning: "what's the next FOMC / CPI / NFP" before
sizing a position
The user says "macro calendar", "FOMC when", "CPI print", "what
data is out this week"
What you need
MASSIVE_API_KEY for SPY historical reactions (Stocks Basic is
enough; the tool is one range aggs call for SPY over the history
window)
What you get back
Layer 1 JSON matching output-schema.json.
Per-event: date, release time ET, impact tier, historical mean /
median / p90 |1-day SPY move|, sample size. Plus a crowded_days
block flagging dates with 2+ events.
Layer 2 rendered table sorted by date. Impact tier rendered as
1-4 stars. Pattern-derived dates marked with ~ so users know to
verify against the official calendar. See
references/rendering.md.
How it works
Generate scheduled dates for each event type over the forward
window via pattern rules (NFP = 1st Friday, CPI = 2nd Wednesday,
ISM Mfg = 1st business day, etc.). FOMC dates are hardcoded from
the official published schedule.
Fetch SPY history for the history_days lookback (default
730 = 2 years).
For each event type, compute historical stats: generate the
same pattern dates over history, look up SPY's |1-day move| on
each matched date, aggregate to mean / median / p90.
Flag crowded days where 2+ events land on the same date.
Endpoints used
GET /v2/aggs/ticker/SPY/range/1/day/{from}/{to} (one call for
the history window)
Doesn't handle (yet)
No prior / consensus values. Add via FRED integration for a
future release.
Pattern-derived dates approximate the real release dates.
BLS/BEA/ISM release dates vary +/- 1-2 days from the pattern; the
tool flags these with ~.
Regime-conditional reactions. Historical stats are
unconditional; CPI moves the tape harder in inflation regimes than
in disinflation. A conditioned version is a clean extension.
FOMC schedule is hardcoded for 2026. Regenerate at year-end.
1---2name: macro-event-calendar3description: macro-event-calendar4---56# macro-event-calendar78You hand over a forward window (default 30 days) and get back the9macro release schedule with historical reaction stats per event type.1011Sibling to earnings-blackout. earnings-blackout covers single-name12prints; this covers the macro releases that move the whole tape.13Every portfolio review should run both.1415## When to invoke1617- Portfolio review workflow: after earnings-blackout, run this for18 the macro-side of the calendar19- Pre-trade planning: "what's the next FOMC / CPI / NFP" before20 sizing a position21- The user says "macro calendar", "FOMC when", "CPI print", "what22 data is out this week"2324## What you need2526- `MASSIVE_API_KEY` for SPY historical reactions (Stocks Basic is27 enough; the tool is one range aggs call for SPY over the history28 window)2930## What you get back3132**Layer 1 JSON** matching [`output-schema.json`](./output-schema.json).33Per-event: date, release time ET, impact tier, historical mean /34median / p90 |1-day SPY move|, sample size. Plus a `crowded_days`35block flagging dates with 2+ events.3637**Layer 2 rendered table** sorted by date. Impact tier rendered as381-4 stars. Pattern-derived dates marked with `~` so users know to39verify against the official calendar. See40[`references/rendering.md`](./references/rendering.md).4142## How it works43441. **Generate scheduled dates** for each event type over the forward45 window via pattern rules (NFP = 1st Friday, CPI = 2nd Wednesday,46 ISM Mfg = 1st business day, etc.). FOMC dates are hardcoded from47 the official published schedule.482. **Fetch SPY history** for the `history_days` lookback (default49 730 = 2 years).503. **For each event type, compute historical stats**: generate the51 same pattern dates over history, look up SPY's |1-day move| on52 each matched date, aggregate to mean / median / p90.534. **Flag crowded days** where 2+ events land on the same date.5455## Endpoints used5657- `GET /v2/aggs/ticker/SPY/range/1/day/{from}/{to}` (one call for58 the history window)5960## Doesn't handle (yet)6162- **No prior / consensus values.** Add via FRED integration for a63 future release.64- **Pattern-derived dates approximate the real release dates.**65 BLS/BEA/ISM release dates vary +/- 1-2 days from the pattern; the66 tool flags these with `~`.67- **Regime-conditional reactions.** Historical stats are68 unconditional; CPI moves the tape harder in inflation regimes than69 in disinflation. A conditioned version is a clean extension.70- **FOMC schedule is hardcoded for 2026.** Regenerate at year-end.
Run npx skillmds@latest add rgourley/macro-event-calendar in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
macro-event-calendar It is listed under Productivity on SkillMD.
This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
rgourley (@rgourley) published this skill. Their other Agent Skills are listed on their SkillMD profile.