Macro, central banks & auctions
Exactly how each macro event reaches this calendar: which API we call, what we take from it, what is hand-transcribed, and what happens when a source is down.
Short version: two public JSON APIs, called once a day — no scraping, no paid data. Yearly agency schedules and FOMC dates have no API, so those are transcribed by hand from the official pages and labeled (est.) until confirmed.
Every source, at a glance
| Data | Method | Cadence |
|---|---|---|
| Upcoming week's macro (CPI, claims, speakers…) | HTTPS GET · JSON API · no key → ForexFactory weekly feed | Once daily |
| Treasury note/bond/TIPS auctions | HTTPS GET · JSON API · no key → Treasury FiscalData | Once daily |
| Yearly macro schedule (CPI/PPI/payrolls dates) | Hand-transcribed from BLS / BEA / Census schedule pages | As agencies publish |
| FOMC meeting dates | Hand-transcribed from federalreserve.gov | As the Fed publishes |
Both API calls run inside one automated daily rebuild. We do not scrape HTML pages of any website; the two machine sources are plain JSON-over-HTTPS endpoints that return a document per request.
The coming week — ForexFactory feed (API)
Each day we issue one HTTPS GET against ForexFactory's public weekly-calendar endpoint. It returns a JSON array covering Monday–Sunday, no API key required:
GET https://nfs.faireconomy.media/ff_calendar_thisweek.json
Each record looks like this:
{
"title": "CPI m/m",
"country": "USD",
"date": "2026-10-14T08:30:00-04:00",
"impact": "High",
"forecast": "0.3%",
"previous": "0.2%"
}
What we keep from each record:
- Country — only
USDevents enter the calendar. - Impact — High and Medium become events; Low is kept only for central-bank speakers (titles ending "Speaks"); bank holidays are dropped.
- Date — the timestamp is ISO 8601 with a US-Eastern offset, which is exactly the timezone the site displays.
- Forecast / previous — copied onto the event card, so the "consensus vs. last print" context comes from the same call.
Three refinements happen before an event is stored: Treasury auction rows are discarded (auctions come from Treasury's own API below); weekly accounting rows like "Fed's Balance Sheet" are dropped as noise; and same-moment sub-releases are merged — CPI m/m, Core CPI m/m and CPI y/y at 08:30 become a single "CPI" event listing the components. When a feed row and our hand-maintained schedule describe the same release, the feed's confirmed date and forecast/previous values win.
If the call fails (timeout, feed down), the rebuild falls back to the previous day's snapshot of the same feed and the site ships complete — content is at most one day stale, never missing.
Treasury auctions — FiscalData (API)
Auction schedules come from the U.S. Treasury's own data platform, a public REST API, again a single HTTPS GET with no key:
GET https://api.fiscaldata.treasury.gov/services/api/fiscal_service/v1/accounting/od/upcoming_auctions
Each record carries the security and its dates:
{
"security_type": "Bond",
"security_term": "19-Year 10-Month",
"reopening": "Yes",
"cusip": "912810UX4",
"announcemt_date": "2026-10-15",
"auction_date": "2026-10-21",
"issue_date": "2026-10-23"
}
We keep Note, Bond and TIPS records auctioned within the next 35 days and turn each into a calendar event at 13:00 ET (the standard coupon-auction closing time), with reopenings flagged in the title. Weekly Bill auctions are deliberately excluded — they're financing mechanics, not catalysts. Same failure rule as above: last snapshot, never a gap.
Yearly macro schedule — hand-transcribed from official pages
BLS, BEA and the Census Bureau publish yearly release-schedule pages (for example the BLS CPI schedule) but offer no calendar API. So the far-future backbone — "US CPI (November)", "US Nonfarm Payrolls (December)" — is transcribed by hand from those pages into our curated event file, and each entry is marked (est.) until the agency's own schedule or the weekly feed confirms it. This is the only manual step in the macro pipeline, and it exists because the source is a web page, not an API.
FOMC dates — from federalreserve.gov
The Fed publishes its meeting calendar a year or more ahead on fomccalendars.htm — again a page, not an API. Dates are transcribed verbatim, including which meetings carry a Summary of Economic Projections (those get the "dot plot" note on the event page). These entries are treated as confirmed, not estimated.
Fed speakers
Speaker appearances ("FOMC Member Waller Speaks") are not a separate source — they arrive inside the ForexFactory feed described above, and pass the same filters (USD; Low-impact rows kept only when the title marks a speech).
What we don't do
- No HTML scraping — both automated sources are structured JSON APIs.
- No paid or keyed data services, no terminal redistributions.
- No silent gaps — a failed source falls back to its last snapshot.
- No invented events — anything not confirmed by a source carries (est.).