Appearance
Calendars & Reference
This category is the plumbing that keeps every other data pipeline honest. Our target markets — CME equity index futures (ES/MES/NQ/MNQ/YM/RTY/M2K), NYMEX energy (MCL/QM/BZ), and COMEX metals (1OZ/QO/QI/SIC) — trade nearly 23 hours a day on Globex, but their behavior is dominated by scheduled events: US economic releases (CPI, NFP, FOMC) that hit at fixed clock times, exchange holidays and early closes that truncate sessions, quarterly and monthly contract expirations that force rolls, and first-notice dates that make holding a physically-delivered contract dangerous. A backtest or live system that gets any of these wrong will silently produce garbage — bars timestamped inside a maintenance halt, fills modeled on a holiday half-day, or a "front month" that is actually two contracts stale.
The reference layer also determines real-world P&L frictions. Margin requirements (exchange SPAN/SPAN2 levels vs. much lower broker day-trade margins), exchange and clearing fees, the NFA assessment fee, and broker commissions define the minimum edge a strategy must clear. Symbology — Globex product codes, month codes F–Z, continuous-contract conventions like ES.c.0 vs ES.v.0 — is what lets us join datasets from different vendors without off-by-one-contract errors. Finally, market microstructure rules — daily settlement windows (ES settles off a 14:59:30–15:00:00 CT VWAP; CL off a 14:28–14:30 ET VWAP), equity-index price limits (overnight ±7%, daytime 7/13/20% circuit breakers), and the daily 60-minute Globex equity halt — are all published reference data that should be encoded, not guessed.
The good news is that almost everything in this category is free: US statistical agencies publish machine-readable release schedules (BLS iCal, BEA JSON/ICS, FRED API), ForexFactory exposes a free weekly JSON/XML/CSV calendar feed, CME publishes holiday/expiration/margin/fee/settlement/price-limit pages openly, and two mature open-source Python libraries (pandas_market_calendars, exchange_calendars) encode CME session calendars. The commercial layer (Trading Economics, Econoday, TradingHours.com, CME Reference Data API) mostly buys you machine-readability, SLAs, and licensing cleanliness rather than data you cannot get free. One structural annoyance to plan around: cmegroup.com aggressively bot-blocks plain HTTP clients (403s for curl), and many CME pages render values via JavaScript — so scraping CME reference pages programmatically requires a headless browser or the (registration-gated) Reference Data API.
Free / official sources
ForexFactory Calendar (faireconomy.media feeds)
| Field | Value |
|---|---|
| What it is | The de-facto retail-standard economic calendar; free machine-readable weekly feeds at nfs.faireconomy.media in JSON, XML, and CSV (calendar UI) |
| Coverage | Global macro releases affecting all our markets: US CPI/NFP/FOMC (drives ES/NQ/YM/RTY), EIA-adjacent energy events, central-bank decisions. Not exchange-specific; no expirations/holidays |
| Granularity | Event-level: title, country, date/time (ET offset in feed), impact rating (Low/Medium/High), forecast, previous. Verified live 2026-07-11 — feed returned events with exactly these fields |
| History depth | Feeds cover current week only (thisweek plus nextweek/lastweek variants); historical archive available on website UI back to 2007 (scrape required) — Unknown — verify archive depth |
| Latency / updates | Feed regenerated periodically through the week; actuals appear on the website in real time but the static feed is not tick-updated — verify refresh cadence |
| Access method | HTTP GET, no auth: ff_calendar_thisweek.json, .xml, .csv — all three returned HTTP 200 on 2026-07-11 |
| Cost | Free (as of 2026-07-11, verified by fetching the live feed) |
| Pricing page | N/A — free feed; site: https://www.forexfactory.com/calendar |
| Licensing / redistribution | No published license on the feed itself; ForexFactory ToS restricts redistribution — Unknown — verify before storing/redistributing |
| Reliability caveats | Impact ratings are editorial; forecast values are FF's own consensus; timestamps carry US-Eastern offsets (DST-aware) — parse the offset, don't assume; occasional schedule revisions mid-week |
| Best for | Zero-cost machine-readable event calendar for backtest event-flags and live "no-trade windows" around CPI/NFP/FOMC |
BLS Release Schedule (+ iCal feed)
| Field | Value |
|---|---|
| What it is | Official Bureau of Labor Statistics release schedule for CPI, PPI, Employment Situation, JOLTS, ECI |
| Coverage | The highest-impact US releases for ES/NQ/YM/RTY and rate-sensitive metals (CPI, NFP at 8:30 ET) |
| Granularity | Exact release date + time per report |
| History depth | Full-year schedules; prior-year archives linked on page |
| Latency / updates | Schedules published ~a year ahead; page updated "usually at least a week before" newly added releases (source) |
| Access method | Web page (month/list views) + subscribable iCal feed at bls.gov/schedule/news_release/bls.ics; no JSON |
| Cost | Free (as of 2026-07-11) |
| Pricing page | N/A — https://www.bls.gov/schedule/news_release/ |
| Licensing / redistribution | US government work — public domain |
| Reliability caveats | Rare reschedules (government shutdowns); the .ics endpoint 403'd a plain curl during testing — may need a browser User-Agent |
| Best for | Authoritative CPI/NFP dates to cross-check third-party calendars; iCal ingest into schedulers |
BEA Release Schedule (ICS + JSON)
| Field | Value |
|---|---|
| What it is | Official Bureau of Economic Analysis release schedule — GDP, Personal Income & Outlays (PCE inflation), trade balance |
| Coverage | GDP + PCE are top-tier movers for equity index futures and gold |
| Granularity | Date + time per release (mostly 8:30 ET, some 10:00 ET) |
| History depth | Current year forward; archived prior-year schedules |
| Latency / updates | Published a year ahead through December 2026 (as seen 2026-07-11) |
| Access method | Web page, printable schedule, ICS calendar subscription, and an explicitly labeled "Machine-Readable Format" JSON download, plus the general BEA API |
| Cost | Free (as of 2026-07-11) |
| Pricing page | N/A — https://www.bea.gov/news/schedule |
| Licensing / redistribution | US government work — public domain |
| Reliability caveats | One "TBA" item observed for late 2026; GDP release times occasionally shift with shutdowns |
| Best for | Machine-readable (JSON) official schedule for GDP/PCE — the cleanest US agency feed of the lot |
Census Bureau Economic Indicators Calendar
| Field | Value |
|---|---|
| What it is | Census economic indicator release calendar — retail sales, durable goods, housing starts, new home sales, construction, trade |
| Coverage | Retail sales & durable goods matter for ES/YM/RTY; housing data for rates-sensitive indices |
| Granularity | Date + time (8:30/10:00 ET) per indicator |
| History depth | Schedule published through December 2026 (as seen 2026-07-11) |
| Latency / updates | Annual publication, updated as needed |
| Access method | Web list view + "Quick View" PDF; no documented JSON/ICS on this page — verify whether an ICS exists |
| Cost | Free (as of 2026-07-11) |
| Pricing page | N/A — https://www.census.gov/economic-indicators/calendar-listview.html |
| Licensing / redistribution | US government work — public domain |
| Reliability caveats | HTML scraping required; page layout changes occasionally |
| Best for | Official dates for retail sales/durable goods/housing releases |
Federal Reserve FOMC Calendar
| Field | Value |
|---|---|
| What it is | Official FOMC meeting calendars — meeting dates, statements, minutes, SEP/projections |
| Coverage | FOMC decisions (14:00 ET) + presser (14:30 ET) are the single biggest scheduled events for every symbol we trade |
| Granularity | Meeting dates per year; statement/minutes links; minutes released "three weeks after the date of the policy decision" (source) |
| History depth | 2021–2026 detailed + 2027 placeholder dates (as seen 2026-07-11); historical materials archive back decades |
| Latency / updates | Next-year calendar published ~mid-year prior |
| Access method | Web page; statements/minutes as HTML + PDF; no official JSON — scrape or use FRED/third-party calendars |
| Cost | Free (as of 2026-07-11) |
| Pricing page | N/A — https://www.federalreserve.gov/monetarypolicy/fomccalendars.htm |
| Licensing / redistribution | US government work — public domain |
| Reliability caveats | Unscheduled emergency meetings (e.g., March 2020) won't appear in advance; speech calendar is separate (Fed events calendar) |
| Best for | Authoritative FOMC dates for multi-year backtest event flags |
FRED / ALFRED Release Calendar + API
| Field | Value |
|---|---|
| What it is | St. Louis Fed's FRED release calendar plus the fred/releases/dates API endpoint |
| Coverage | 300+ US data releases (employment, inflation, housing, energy-adjacent); maps releases to the exact FRED series they update |
| Granularity | Release-date level (not intraday time for all releases) |
| History depth | Full history of past release dates (real-time vintages via ALFRED); future dates included when include_release_dates_with_no_data=true (API docs) |
| Latency / updates | Calendar maintained continuously; API real-time |
| Access method | REST API (XML/JSON, max 1,000 rows/request) with free 32-char API key; web calendar with week/month/year views for 2025–2027 |
| Cost | Free (as of 2026-07-11) |
| Pricing page | N/A — https://fred.stlouisfed.org/docs/api/fred/ |
| Licensing / redistribution | Free for most uses per FRED terms; some third-party series in FRED carry restrictions — verify per series |
| Reliability caveats | Future scheduled dates are excluded from the API by default (flag required); release times not always populated — pair with agency schedules above |
| Best for | Programmatic past + future release-date joins against a research database — the best free API in this category |
Investing.com Economic Calendar
| Field | Value |
|---|---|
| What it is | Free streaming economic calendar with 1–3 star impact ratings, forecast/previous/actual, real-time updates |
| Coverage | Global; all US releases relevant to our markets; also has separate earnings/holiday calendars |
| Granularity | Event-level with real-time actual population and color-coded surprise direction |
| History depth | Website filters allow historical browsing — depth Unknown — verify |
| Latency / updates | "Streams and updates automatically in real time" (source) |
| Access method | Web only. No official API or export (verified on page 2026-07-11); unofficial scrapers hit their internal AJAX endpoints and break periodically (the once-popular investpy library is unmaintained — verify status) |
| Cost | Free with ads (as of 2026-07-11); InvestingPro is a separate paid product |
| Pricing page | https://www.investing.com/economic-calendar/ |
| Licensing / redistribution | ToS prohibits scraping/redistribution — a compliance risk if automated |
| Reliability caveats | Ad-heavy; unofficial endpoints are rate-limited and unstable; impact stars are editorial |
| Best for | Human eyeballing and cross-checking actuals in real time; not recommended as a pipeline dependency |
MQL5 Economic Calendar
| Field | Value |
|---|---|
| What it is | MetaQuotes' free economic calendar — 900+ indicators, 22+ countries |
| Coverage | Global macro; US events relevant to all target symbols |
| Granularity | Event-level with importance filters, history of each indicator |
| History depth | Multi-year per-indicator history on the website — verify depth |
| Latency / updates | Real-time from public sources |
| Access method | Web + embeddable widget; programmatic access inside MetaTrader 5 via built-in MQL5 calendar functions (MQL5 calendar docs) — not a general REST API |
| Cost | Free (as of 2026-07-11) |
| Pricing page | N/A — https://www.mql5.com/en/economic-calendar |
| Licensing / redistribution | Widget embedding permitted; bulk redistribution Unknown — verify |
| Reliability caveats | Programmatic access is locked to the MT5 runtime — awkward unless the stack already includes MetaTrader |
| Best for | Free redundancy source; useful only if an MT5 bridge exists in the stack |
FinancialJuice
| Field | Value |
|---|---|
| What it is | Real-time market-moving news squawk (text + voice) with an integrated economic calendar |
| Coverage | Macro headlines, central banks, energy headlines — relevant to all target markets |
| Granularity | Headline-level, seconds-latency squawk |
| History depth | Not an archive product |
| Latency / updates | Real-time; free tier reportedly delayed vs Elite ("zero delay" is an Elite feature per pro.financialjuice.com/elite) |
| Access method | Web app, mobile, TradingView widget, browser extension, RSS; no public REST API found |
| Cost | Free tier "free, forever" (as of 2026-07-11, financialjuice.com); Elite paid tier — price not shown on page; unofficial reported ~$33/mo on a quarterly promo (~$99/quarter, as of 2026-07-11) (third-party review, unofficial) |
| Pricing page | https://pro.financialjuice.com/elite |
| Licensing / redistribution | Personal use; redistribution not permitted — verify |
| Reliability caveats | Squawk is editorial triage, not a structured feed; calendar is secondary to news product |
| Best for | Free audio squawk around data releases for discretionary oversight of automated systems |
CME Group Holiday Calendar
| Field | Value |
|---|---|
| What it is | Official CME holiday calendar — holiday trading schedules and early closes for all CME/CBOT/NYMEX/COMEX products |
| Coverage | Exact holiday hours per product group (equity index, energy, metals) — exactly our symbols |
| Granularity | Per-holiday, per-product-group open/close/halt times (Central Time), incl. quirks like early TAS closes |
| History depth | Current year + early next year on page; archives via linked notices |
| Latency / updates | Published ~a year ahead; amended via notices |
| Access method | HTML tables with date selector + per-holiday PDF notices. No JSON/CSV download (verified 2026-07-11); cmegroup.com 403-blocks plain curl — scraping needs a real browser UA/headless browser |
| Cost | Free (as of 2026-07-11) |
| Pricing page | N/A — https://www.cmegroup.com/tools-information/holiday-calendar.html |
| Licensing / redistribution | CME site ToS; facts (dates) are not copyrightable but bulk scraping violates ToS — verify |
| Reliability caveats | Holiday hours differ by asset class on the same date (e.g., equity halt vs metals early close) — never apply one product's holiday schedule to another |
| Best for | Source of truth for session-calendar construction; encode into pandas_market_calendars overrides |
CME Expirations Calendar & QuikStrike Product Expiration Browser
| Field | Value |
|---|---|
| What it is | Interactive Expirations Calendar and Product and Expiration Browser covering futures/options key dates |
| Coverage | All target symbols; filterable by product, Globex code, event type: "Settlement Date, First or Last Trade Date, Delivery Date, and more" (source) |
| Granularity | Per-contract-month lifecycle dates incl. first notice and last trade |
| History depth | Active/listed contracts (~1+ year forward); historical expirations via per-product calendar pages (e.g. gold calendar) |
| Latency / updates | Updated as contracts list |
| Access method | Web tool; QuikStrike browser supports bulk download of "all active expiration information" (format unspecified — verify; likely CSV/Excel); free CME Group login may be required |
| Cost | Free (as of 2026-07-11) |
| Pricing page | N/A — https://www.cmegroup.com/tools-information/calendars/expiration-calendar.html |
| Licensing / redistribution | CME ToS; internal use fine — verify bulk-download terms |
| Reliability caveats | JS-rendered; per-product pages (contractSpecs/calendar) did not render values to a plain fetcher during testing — automate via headless browser or Reference Data API instead |
| Best for | Building the roll/first-notice/last-trade date table for MCL, QM, BZ, QO, QI, SIC, 1OZ where FND/LTD risk is real |
CME Equity Index Roll Dates page
| Field | Value |
|---|---|
| What it is | Official equity index roll dates page listing customary quarterly roll dates |
| Coverage | ES/MES/NQ/MNQ/YM/RTY/M2K quarterly (H/M/U/Z) rolls |
| Granularity | Per-quarter: customary roll date + expiration date. Convention stated on page: "Equity products roll date is the Monday prior to the third Friday of the expiration month" (verified 2026-07-11) |
| History depth | Table runs through 2028 (as seen 2026-07-11) |
| Latency / updates | Static, extended annually |
| Access method | Web page (HTML table) |
| Cost | Free (as of 2026-07-11) |
| Pricing page | N/A — https://www.cmegroup.com/trading/equity-index/rolldates.html |
| Licensing / redistribution | CME ToS |
| Reliability caveats | "Customary" ≠ mandated: liquidity migrates over several days around the date; volume/OI-based continuous logic (e.g., Databento .v.0/.n.0) can roll a day or two differently. Final settlement is 3rd-Friday SOQ (final settlement procedures) |
| Best for | Hard-coding the quarterly ES/NQ/YM/RTY roll window in backtests and roll automation |
CME Margins (CME Clearing)
| Field | Value |
|---|---|
| What it is | Official exchange performance-bond (margin) requirements: clearing margins hub with per-product margin tabs on product pages (e.g. ES margins) |
| Coverage | All target symbols (initial/maintenance, intra-commodity spreads); SPAN2 indicative margins for energy/equity in-scope products |
| Granularity | Per contract month; maintenance + initial (initial = maintenance × ratio for specs) |
| History depth | Historical margins archive exists — per-asset-class PDFs, most products from 2020; history beyond ~5 years via CME DataMine (verified 2026-07-11) |
| Latency / updates | Margin changes announced via clearing advisories, typically effective next business day; no fixed cadence |
| Access method | Web pages (JS-rendered — plain fetch shows no numbers, verified 2026-07-11); no documented public margin API; PC-SPAN and CME CORE tools for computation |
| Cost | Free to view (as of 2026-07-11) |
| Pricing page | N/A — https://www.cmegroup.com/clearing/margins/ |
| Licensing / redistribution | CME ToS; SPAN/SPAN2 risk-parameter files are licensed separately — verify |
| Reliability caveats | Exchange margin ≠ what your broker charges intraday (see broker entries); values change with volatility regimes — snapshot them, don't assume constants |
| Best for | Overnight/position margin truth for capital planning; the number brokers must collect at minimum for held positions |
CME Exchange Fee Schedules
| Field | Value |
|---|---|
| What it is | Official exchange fee schedules per exchange, downloadable as Excel + PDF |
| Coverage | CME (equity index: ES/MES/NQ/MNQ/RTY/M2K), CBOT (YM), NYMEX (MCL/QM/BZ), COMEX (1OZ/QO/QI/SIC); non-member rates are what retail pays via brokers |
| Granularity | Per-product, per-venue, per-membership-tier fees; "Non-Member Fee Finder" search tool on page |
| History depth | Current schedules; effective dates seen 2026-07-11: CME June 29 2026, CBOT July 1 2026, NYMEX/COMEX June 1 2026 |
| Latency / updates | Revised periodically (typically annually + ad hoc) |
| Access method | Excel/PDF downloads from the page |
| Cost | Free to view (as of 2026-07-11) |
| Pricing page | N/A — https://www.cmegroup.com/company/clearing-fees.html |
| Licensing / redistribution | CME ToS |
| Reliability caveats | Fee stack for an all-in cost model = exchange fee + clearing fee + NFA fee + broker commission + (broker platform/data fees); Excel schema changes between revisions |
| Best for | Exact per-side exchange fees for cost modeling (e.g., Micro vs E-mini fee asymmetry materially changes micro-contract strategy viability) |
NFA Assessment Fee
| Field | Value |
|---|---|
| What it is | National Futures Association assessment fee charged per side on customer futures/options trades (NFA assessment fee FAQ) |
| Coverage | Every trade in every target symbol at a US FCM |
| Granularity | Flat per-side fee |
| History depth | Rule history in NFA Bylaw 1301 |
| Latency / updates | Changes announced via Notices to Members with long lead time |
| Access method | Web page |
| Cost | $0.01 per side currently; rising to $0.02 per side effective July 1, 2027 for futures and options (verified on the NFA FAQ, as of 2026-07-11) |
| Pricing page | https://www.nfa.futures.org/faqs/members/nfa-assessment-fees.html |
| Licensing / redistribution | Public regulatory information |
| Reliability caveats | Fee doubles mid-2027 — cost models with multi-year horizons must be date-aware |
| Best for | The regulatory line item in per-trade cost modeling |
CME Symbology: Month Codes & Globex Product Codes
| Field | Value |
|---|---|
| What it is | Official futures month codes (F=Jan … H=Mar, M=Jun, U=Sep, Z=Dec) and per-product Globex codes on each product page |
| Coverage | All target symbols; e.g. ESU6 = ES + Sep + 2026. Product codes verified this session: MCL (product page lists Globex/TT/Fidessa = MCL, Bloomberg = WMIA, CQG = MCLE, Refinitiv = MWCL — corrected 2026-07-11), 1OZ (1-Ounce Gold page), SIC (100-oz Silver launch press release) |
| Granularity | Symbol construction rules; vendor tickers per platform |
| History depth | Static conventions |
| Latency / updates | Stable; new products add codes |
| Access method | Web pages |
| Cost | Free (as of 2026-07-11) |
| Pricing page | N/A — https://www.cmegroup.com/month-codes.html |
| Licensing / redistribution | Public reference |
| Reliability caveats | Vendor symbology diverges (e.g., IB uses ES + expiry, some vendors use ESU26 vs ESU6, Bloomberg appends "Index"/"Comdty") — build an explicit mapping table per vendor |
| Best for | Canonical symbol grammar for the instrument-master table |
CME Daily Settlement Procedures
| Field | Value |
|---|---|
| What it is | Official methodology pages for how daily settles are computed: Equity settlement wiki (ES/MES), NYMEX crude wiki (CL family), equity final settlement, daily settlements data page |
| Coverage | ES/MES: settle = VWAP of Globex trades 14:59:30–15:00:00 CT in lead month, tiered fallbacks (midpoint, then cash-index carry calc). CL: VWAP 14:28–14:30 ET, tiered fallbacks. Gold/silver/Brent have analogous pages — verify each |
| Granularity | Methodology (rules), plus actual daily settlement values on the settlements pages per product (e.g. MCL settlements) |
| History depth | Settlement values: recent sessions free on web; deeper history via CME DataMine (paid) |
| Latency / updates | Preliminary settles intraday post-close; final by evening |
| Access method | Web (wiki pages are static HTML — scrapeable, unlike cmegroup.com product pages) |
| Cost | Free (as of 2026-07-11) |
| Pricing page | N/A — https://www.cmegroup.com/market-data/daily-settlements.html |
| Licensing / redistribution | CME ToS |
| Reliability caveats | Micro contracts settle to their parent's settle (MES→ES, MCL→CL, SIC→SI per press release) — don't compute micro settles independently; equity month-end settles use the 15:00 CT fixing price with fair-value adjustments — a month-end procedure, not a roll-date one (fair value FAQ, corrected 2026-07-11) |
| Best for | Correct mark-to-market and settlement-anchored backtest fills |
CME Price Limits & Circuit Breakers
| Field | Value |
|---|---|
| What it is | Official price limits page (live limit values, updated per trade date) + US equity index price limits FAQ |
| Coverage | Equity index: overnight ±7% (17:00–8:30 CT), RTH 7%/13%/20% downside limits synced to NYSE MWCB; at the 7%/13% levels a 2-minute monitoring period then a 2-minute halt before the limit expands (per CME FAQ, corrected 2026-07-11 — not 10-min halts); at 20% futures do not close — trading continues at/above the 20% limit for the remainder of the day; 14:25–15:00 CT only 20% applies. Energy/metals: dynamic circuit breakers, no hard daily limits — verify per product |
| Granularity | Daily reference price + computed limit levels per product (page showed live values for trade date 2026-07-13 when fetched 2026-07-11) |
| History depth | Current trade date only on page; historical limit levels not archived here |
| Latency / updates | Daily recalculation from the futures fixing price |
| Access method | Web page (HTML tables); "special price fluctuations guide" downloadable as Excel (price limits page) |
| Cost | Free (as of 2026-07-11) |
| Pricing page | N/A — https://www.cmegroup.com/trading/price-limits.html |
| Licensing / redistribution | CME ToS |
| Reliability caveats | Limits are asymmetric in RTH (downside-only for 7/13/20); overnight limit-locked markets (e.g., limit-down opens) break naive backtest fill assumptions — encode limit states |
| Best for | Modeling halt/limit-lock scenarios for ES/NQ/YM/RTY risk management |
CME Globex Trading Hours & Maintenance Windows
| Field | Value |
|---|---|
| What it is | Official trading hours page (date-selectable per product) |
| Coverage | All target symbols. Globex system maintenance: "Window A: Saturday 2:00–4:00 AM CT" and "Window B: Tuesday 2:00–4:00 AM CT" (verified on page 2026-07-11). Equity index daily maintenance halt 16:00–17:00 CT (Sun–Fri 17:00–16:00 CT sessions; confirmed via ES product/spec sources 2026-07-11) |
| Granularity | Per-product session open/close/halt times in CT |
| History depth | Current schedule; historical changes via notices |
| Latency / updates | Changes announced via Globex notices |
| Access method | Web page with date selector (JS-rendered tables) |
| Cost | Free (as of 2026-07-11) |
| Pricing page | N/A — https://www.cmegroup.com/trading-hours.html |
| Licensing / redistribution | CME ToS |
| Reliability caveats | DST quirk: Globex hours are pegged to US Central Time; US DST shifts (2nd Sunday March / 1st Sunday November) do not align with EU/UK changes, so for ~3 weeks in March and ~1 week in autumn the UTC session times shift by an hour (explainer — page confirms CT pegging and the UTC-6/UTC-5 shift, but the specific US-vs-EU mismatch windows are derived from DST rules, not stated on that page (unverified)). Store all session logic in America/Chicago tz, never fixed UTC |
| Best for | Session-calendar truth incl. the daily 16:00–17:00 CT equity halt and weekend/Tuesday maintenance windows |
CME Reference Data API v3
| Field | Value |
|---|---|
| What it is | CME Reference Data APIv3 — JSON REST APIs on Google Cloud for product & instrument reference data (technical wiki) |
| Coverage | All CME Group markets; per-instrument "life cycle dates including first and last trade date, all notice dates, delivery dates and settlement dates" (wiki) — the machine-readable answer to expirations/FND |
| Granularity | Product- and instrument-level records (tick size, contract months, lifecycle dates) |
| History depth | Active + listed instruments; expired-instrument history Unknown — verify |
| Latency / updates | Real-time reference updates |
| Access method | REST/JSON with registered OAuth API ID (Google Cloud hosted) |
| Cost | Unknown — verify (requires CME registration; may be bundled with market data license agreements — Contact CME) |
| Pricing page | https://www.cmegroup.com/market-data/browse-data/catalog/reference-data.html |
| Licensing / redistribution | Per CME Information License Agreement — internal use typically; verify |
| Reliability caveats | Onboarding friction (License + OAuth registration); overkill if Databento definitions or QuikStrike downloads suffice |
| Best for | Fully automated, exchange-authoritative expiration/FND/symbology pipeline at production grade |
pandas_market_calendars (Python)
| Field | Value |
|---|---|
| What it is | Open-source Python library of exchange session calendars (docs, GitHub) |
| Coverage | 50+ calendars incl. dedicated CME Globex modules verified in source tree: cme_globex_equities.py, cme_globex_energy_and_metals.py, cme_globex_crypto.py, cme_globex_fx.py, cme_globex_fixed_income.py, plus legacy cme.py (source dir) — covers our equity/energy/metals session calendars |
| Granularity | Session open/close, breaks, holidays, early closes; generates minute-level DatetimeIndex via date_range |
| History depth | Rules-based — extends backward/forward, but historical exchange rule changes only as good as contributed rules |
| Latency / updates | Ships as package code — new holidays require a package update (no live feed) |
| Access method | pip install pandas_market_calendars; Python API |
| Cost | Free — MIT license (as of 2026-07-11) |
| Pricing page | N/A — https://pypi.org/project/pandas-market-calendars/ |
| Licensing / redistribution | MIT — unrestricted |
| Reliability caveats | Community-maintained: verify each year's CME holiday early-closes against the official CME calendar before trusting a backtest; ad-hoc exchange schedule changes lag |
| Best for | Programmatic session/holiday calendar in backtests — pair with an annual audit vs. CME's official page |
exchange_calendars (Python)
| Field | Value |
|---|---|
| What it is | Open-source successor to Quantopian's trading_calendars (GitHub) |
| Coverage | 50+ exchanges; CME-related: CMES (CME) and XCBF; fewer futures-specific product calendars than pandas_market_calendars |
| Granularity | Sessions, minutes, schedules |
| History depth | Rules-based like above |
| Latency / updates | Community releases (v4.13.2, March 2026, per repo — verified 2026-07-11); pandas_market_calendars mirrors these calendars |
| Access method | pip install exchange_calendars |
| Cost | Free — Apache-2.0 (as of 2026-07-11) |
| Pricing page | N/A — https://github.com/gerrymanoim/exchange_calendars |
| Licensing / redistribution | Apache-2.0 |
| Reliability caveats | Explicitly community-maintained ("all of the exchange calendars are maintained by user contributions") — same audit caveat |
| Best for | Alternative/cross-check calendar library; useful if already in a zipline-lineage stack |
AMP Futures Margin Page (broker reality check)
| Field | Value |
|---|---|
| What it is | Deep-discount FCM's live margin table/calculator — day-trade margins set by AMP vs exchange maintenance margins |
| Coverage | All target symbols |
| Granularity | Per-symbol day-trade margin + exchange maintenance margin |
| History depth | Current values only |
| Latency / updates | Changes with volatility and exchange updates |
| Access method | Web page |
| Cost | Free to view. Verified day-trade margins as of 2026-07-11: ES $400, MES $40, NQ $1,000, MNQ $100, MCL $766, MGC $571.75, SIL $6,723 (source) |
| Pricing page | https://www.ampfutures.com/trading-info/margins |
| Licensing / redistribution | Broker marketing page — quote, don't redistribute wholesale |
| Reliability caveats | Day-trade margins apply intraday only and are revocable in volatile markets; holding into the 16:00 CT close requires full exchange margin |
| Best for | Realistic intraday capital requirements for small-account strategy sizing |
NinjaTrader / Tradovate Margins & Commissions
| Field | Value |
|---|---|
| What it is | Retail futures broker pricing pages: NinjaTrader margins, Tradovate pricing (same NinjaTrader group) |
| Coverage | All CME target symbols |
| Granularity | Per-side commissions by plan + intraday margins by contract class |
| History depth | Current only |
| Latency / updates | Plan pricing changes occasionally; margins with volatility |
| Access method | Web pages |
| Cost | Verified as of 2026-07-11 — NinjaTrader intraday margins: $500 E-mini (ES), $50 Micro (MES); margin-violation fees $25 first/$50 after (source). Tradovate: Free plan $1.29/side standard + $0.39/side micro; $99/mo plan $0.99/$0.29; Lifetime $1,499 one-time $0.59/$0.09; intraday margins $500 standard/$50 micro; "Exchange, clearing, and NFA fees still apply" (source) |
| Pricing page | https://www.tradovate.com/pricing/ |
| Licensing / redistribution | Broker marketing pages |
| Reliability caveats | Advertised commissions exclude the exchange/clearing/NFA stack (add ~$1.60+/side for E-minis, less for micros — see CME fee schedule); intraday margin cutoffs force flat or full margin before close |
| Best for | Concrete all-in cost + intraday leverage numbers for the retail execution layer |
Interactive Brokers Futures Margins & Commissions
| Field | Value |
|---|---|
| What it is | IBKR reference pages: futures margin requirements, futures commissions, CME pass-through fees |
| Coverage | All target symbols |
| Granularity | Per-symbol overnight/intraday margins; fixed vs tiered commissions |
| History depth | Current only |
| Latency / updates | Margin table updates frequently; intraday margin reverts to full overnight margin at "Intraday End Time" daily (margin page) |
| Access method | Web pages (403-block automated fetchers — verified 2026-07-11; view in browser) |
| Cost | Free to view. Commission levels: fixed US futures USD 0.85/contract, tiered USD 0.25–0.85 (verified via IBKR's own pricing pages surfaced in search, as of 2026-07-11; the page itself 403-blocks automated fetchers: commissions page) |
| Pricing page | https://www.interactivebrokers.com/en/pricing/commissions-futures.php |
| Licensing / redistribution | Broker reference pages |
| Reliability caveats | No intraday margin discounts for IRA/cash accounts or when holding offsetting FOPs; IBKR intraday margin policies differ structurally from futures-specialist brokers |
| Best for | Margin/commission baseline if execution runs through IBKR alongside equities |
OpenFIGI (symbology mapping)
| Field | Value |
|---|---|
| What it is | Bloomberg's free OpenFIGI API for mapping tickers to FIGI identifiers, including futures |
| Coverage | Global instruments incl. CME futures contracts (per-contract FIGIs) |
| Granularity | Identifier-level mapping |
| History depth | Live mapping (expired contracts retain FIGIs — verify) |
| Latency / updates | Live |
| Access method | REST POST (JSON). Probed live 2026-07-11: POST https://api.openfigi.com/v3/mapping responded (returned "No identifier found" for a malformed test ticker — endpoint up, no key required at low rate limits) |
| Cost | Free; higher rate limits with free API key (as of 2026-07-11) |
| Pricing page | N/A — https://www.openfigi.com/api |
| Licensing / redistribution | Open Symbology terms — permissive; verify for storage |
| Reliability caveats | Futures ticker conventions in OpenFIGI differ from Globex raw symbols — mapping requires care |
| Best for | Cross-vendor instrument master keys when joining futures data with securities datasets |
Commercial sources
Trading Economics API
| Field | Value |
|---|---|
| What it is | Commercial macro data + Calendar API with live event streaming (docs) |
| Coverage | ~1,600 events/month, 150+ countries ("1600 economic events for more than 150 countries a month" per docs.tradingeconomics.com, verified 2026-07-11); all US releases relevant to our markets |
| Granularity | Event-level with actual/forecast/previous/revised, importance; live updates via streaming |
| History depth | Historical calendar events queryable by date range — verify depth (claimed 20M indicator series overall) |
| Latency / updates | Near-real-time, 24h |
| Access method | REST (JSON/CSV/XML), Python/Node/Excel clients (developer portal) |
| Cost | Contact sales — pricing page is login/JS-gated and displays no public tiers (checked analytics/pricing.aspx and api/pricing.aspx 2026-07-11); "pricing is adjusted... to your volume of requests and to the distribution" (source); trials limited to 100k data points / 100 data requests |
| Pricing page | https://tradingeconomics.com/analytics/pricing.aspx |
| Licensing / redistribution | Distribution-sensitive pricing; redistribution needs elevated license |
| Reliability caveats | Trial auto-charges if not cancelled; no refunds for unused days (pricing page) |
| Best for | Production-grade programmatic economic calendar with actuals streaming — if budget allows |
Econoday
| Field | Value |
|---|---|
| What it is | Institutional economic-calendar/event-data vendor (econoday.com) — calendars, consensus forecasts, event feeds via "APIs and widgets... to full enterprise API access" |
| Coverage | US + global indicators, central banks; also sovereign-debt auction and USDA/agriculture calendars |
| Granularity | Event-level with Econoday's own consensus estimates and analyst commentary |
| History depth | Long institutional archive — verify |
| Latency / updates | Real-time actuals |
| Access method | Enterprise API, widgets, white-label (used by many brokers incl. IBKR's calendar) |
| Cost | Contact sales for API/enterprise (no pricing displayed, verified 2026-07-11). Retail: "Global Economics Subscription" $120/yr (48 weekly issues) per shop.econoday.com — that's a newsletter, not the API |
| Pricing page | https://www.econoday.com/enterprise/ |
| Licensing / redistribution | Enterprise licensing scales by distribution |
| Reliability caveats | Consensus figures are Econoday's own panel — differs from Bloomberg/Reuters consensus that markets sometimes key off |
| Best for | Broker-grade calendar widget/feed; likely accessible for free through a brokerage relationship (e.g., IBKR) rather than direct license |
EconDB
| Field | Value |
|---|---|
| What it is | Economic database aggregator with REST API (econdb.com, API base www.econdb.com/api — the bare api.econdb.com host returned 404 on 2026-07-11, corrected) |
| Coverage | Global macro series from national sources; release/calendar coverage Unknown — verify |
| Granularity | Series-level; main-indicator dashboards |
| History depth | Full national-source history per series — verify |
| Latency / updates | Updated on source release |
| Access method | REST API with token auth (re-probed 2026-07-11: GET https://www.econdb.com/api/series/?ticker=... returns HTTP 401 "Authentication credentials were not provided" — endpoint live at the /api/ path; api.econdb.com returns 404, corrected); Python client; docs at developers.econdb.com (JS-rendered, content not fetchable headlessly) |
| Cost | Unknown — verify (no public pricing page reachable during session; registration appears free with paid tiers) |
| Pricing page | https://www.econdb.com/ |
| Licensing / redistribution | Unknown — verify |
| Reliability caveats | Small vendor; documentation portal was not renderable to plain fetchers this session — evaluate stability before depending on it |
| Best for | Backup macro-series API; low priority for our calendar needs vs FRED |
EODHD Economic Events API
| Field | Value |
|---|---|
| What it is | Economic Events Data API within the EODHD platform |
| Coverage | Global economic events (retail sales, PMIs, bond auctions...) with country filter; US events relevant to all target symbols |
| Granularity | Event-level: type, comparison (MoM/QoQ/YoY), period, country, timestamp, actual/previous/forecast/change (verified on docs 2026-07-11) |
| History depth | Events from 2020 onward (per docs, verified 2026-07-11) |
| Latency / updates | Near-real-time actuals — verify latency |
| Access method | REST (JSON), limit/offset pagination up to 1,000; 1 API call per request |
| Cost | Included in Fundamentals Data Feed $59.99/mo ($599.90/yr) or All-In-One $99.99/mo ($999.90/yr); free tier exists ($0, 20 API calls/day) but economic events not included in it — verify. Prices verified live on pricing page 2026-07-11 |
| Pricing page | https://eodhd.com/pricing |
| Licensing / redistribution | Personal vs commercial licenses differ — verify redistribution terms |
| Reliability caveats | History only to 2020 limits long backtests; event taxonomy less rich than Econoday/TE |
| Best for | Cheap programmatic calendar if already paying for EODHD fundamentals |
Finnhub Economic Calendar
| Field | Value |
|---|---|
| What it is | Economic calendar endpoint in Finnhub's market-data API |
| Coverage | Global economic events; US releases relevant to target markets |
| Granularity | Event-level with actual/estimate/prev — verify fields |
| History depth | Unknown — verify |
| Latency / updates | Real-time updates on paid tiers |
| Access method | REST (JSON), API key |
| Cost | Pricing page is JS-rendered (no tiers visible to fetcher, checked finnhub.io/pricing 2026-07-11); unofficial reported: free tier 60 calls/min, premium ~$11.99–$99.99/mo (third-party summary, unofficial); economic calendar tier requirement Unknown — verify |
| Pricing page | https://finnhub.io/pricing |
| Licensing / redistribution | Display/internal use per plan; redistribution restricted |
| Reliability caveats | Endpoint-level plan gating is common at Finnhub — test with a free key before budgeting |
| Best for | Bundled option if Finnhub is already used for other data |
Financial Modeling Prep (FMP) Economic Calendar
| Field | Value |
|---|---|
| What it is | Economic calendar endpoint in FMP's API suite |
| Coverage | Global economic releases — verify coverage quality for non-US |
| Granularity | Event-level with estimates/actuals |
| History depth | Unknown — verify |
| Latency / updates | Unknown — verify |
| Access method | REST (JSON), API key |
| Cost | Contact sales / see pricing page — docs page 403-blocked automated fetch this session (2026-07-11); plan tiers not verified |
| Pricing page | https://site.financialmodelingprep.com/developer/docs/pricing |
| Licensing / redistribution | Per-plan; redistribution restricted |
| Reliability caveats | FMP's non-equity datasets historically thinner than its equity fundamentals — validate event completeness vs ForexFactory before use |
| Best for | Marginal option; only if FMP already in the stack |
TradingHours.com
| Field | Value |
|---|---|
| What it is | Commercial trading hours + market holidays API/data covering 1,100+ exchanges/venues (unverified — site 403-blocks fetchers; its EODHD marketplace listing cites 900+ markets on the top tier) incl. derivative markets (docs) |
| Coverage | "All Markets" tier includes derivative markets — CME/NYMEX/COMEX coverage claimed; verify our specific product sessions are modeled (product-level vs exchange-level) |
| Granularity | Trading hours incl. half-days, holidays, live market-status API |
| History depth | Forward-looking schedules + current status; historical holiday archive — verify |
| Latency / updates | Continuously maintained; market status real-time |
| Access method | REST API (JSON/CSV), bulk zip download (CSV/Excel), Python client |
| Cost | Market Status API tiers verified via TradingHours' EODHD marketplace listing (as of 2026-07-11): $50/mo G20+ (24 markets), $100/mo Global Equities (148 markets), $150/mo Global Equities & Derivatives (900+ markets); licenses issued annually per docs; tradinghours.com itself 403-blocks fetchers — tier names Core/Emerging/All Markets per docs |
| Pricing page | https://www.tradinghours.com/data |
| Licensing / redistribution | "Licensed on a per-application basis, exclusively for internal use" (source) |
| Reliability caveats | For a single exchange group (CME), free sources + pandas_market_calendars may fully substitute; value is multi-exchange breadth |
| Best for | Outsourcing holiday/session maintenance with an SLA instead of auditing open-source calendars annually |
Norgate Data (Futures package)
| Field | Value |
|---|---|
| What it is | EOD futures data vendor whose futures package doubles as a practical roll-convention reference (documented roll rules + FND-aware continuous contracts) |
| Coverage | ~100 futures markets, 11 exchanges incl. CME/NYMEX/COMEX; verify each of our 14 symbols (micros/1OZ/SIC may lag — verify) |
| Granularity | Daily; individual contracts + spot-month continuous (unadjusted and back-adjusted) |
| History depth | "Back to around 1980 or first day of trading" (source) |
| Latency / updates | End-of-day |
| Access method | Windows app (NDU) + Python package, AmiBroker etc. |
| Cost | USD 148.50 / 6 months or USD 270 / 12 months (verified live on futures package page, as of 2026-07-11) |
| Pricing page | https://norgatedata.com/prices.php |
| Licensing / redistribution | Single-user internal use; no redistribution |
| Reliability caveats | Roll rules are fixed by Norgate (cash-settled: roll day before last trading day; deliverable: day before FND) — good defaults, but not configurable to volume-based rolls |
| Best for | Documented, FND-safe roll conventions + cheap continuous-contract sanity checks against our own roll logic |
Databento (symbology & instrument definitions reference)
| Field | Value |
|---|---|
| What it is | Market-data vendor whose symbology docs and instrument-definition schema serve as practical reference standards for CME futures |
| Coverage | Full CME Globex (MDP 3.0) — every target symbol incl. micros, 1OZ, SIC; continuous-contract notation ES.c.0 (calendar), ES.v.0 (volume), ES.n.0 (open interest) with roll rules documented (continuous contracts guide, live support blog) |
| Granularity | Instrument-definition records carry expiration, tick size, multiplier per contract (definition schema) — verify field list |
| History depth | Definitions available historically alongside each dataset's depth |
| Latency / updates | Real-time definitions on live feeds |
| Access method | REST/Python/C++ APIs; docs freely readable |
| Cost | Docs free; data usage-based (pricing on databento.com/pricing — not fetched this session; covered by the price-history category) |
| Pricing page | https://databento.com/pricing |
| Licensing / redistribution | Data licensed per plan; internal use standard; symbology conventions freely adoptable |
| Reliability caveats | c/v/n roll indices are Databento conventions — other vendors' "continuous" contracts differ; document which convention every dataset uses |
| Best for | Adopting a rigorous symbology standard and machine-readable expirations without touching CME's OAuth-gated Reference Data API |
Summary table
| Source | Free tier? | Entry cost | Best for |
|---|---|---|---|
| ForexFactory (faireconomy feeds) | Yes (fully) | Free | Machine-readable weekly econ calendar (JSON/XML/CSV) |
| BLS schedule (+.ics) | Yes | Free | Authoritative CPI/NFP dates, iCal ingest |
| BEA schedule (ICS+JSON) | Yes | Free | Machine-readable GDP/PCE schedule |
| Census indicator calendar | Yes | Free | Retail sales/durables/housing dates |
| Fed FOMC calendar | Yes | Free | FOMC dates 2021–2027 |
| FRED releases API | Yes | Free (API key) | Programmatic past+future release dates |
| Investing.com calendar | Yes (web only) | Free | Manual real-time cross-check |
| MQL5 calendar | Yes | Free | Redundancy; MT5-native access |
| FinancialJuice | Yes | Elite ~$33/mo quarterly promo (unofficial, as of 2026-07-11) | Free audio squawk around releases |
| CME holiday calendar | Yes | Free | Session-calendar source of truth |
| CME expiration calendar / QuikStrike | Yes | Free | FND/LTD/expiration dates per contract |
| CME equity roll dates | Yes | Free | Quarterly ES/NQ/YM/RTY roll windows |
| CME margins pages | Yes | Free to view | Exchange overnight margin truth |
| CME fee schedules | Yes | Free | Exact exchange/clearing fees (Excel) |
| NFA assessment fee | Yes | $0.01/side now; $0.02 from 2027-07-01 | Regulatory cost line item |
| CME month codes/symbology | Yes | Free | Symbol grammar |
| CME settlement procedures | Yes | Free | ES/CL settle methodology (VWAP windows) |
| CME price limits page | Yes | Free | Daily 7/13/20% limit levels |
| CME trading hours page | Yes | Free | Sessions, maintenance windows, DST handling |
| CME Reference Data API v3 | Registration | Unknown — verify | Exchange-authoritative reference pipeline |
| pandas_market_calendars | Yes (MIT) | Free | Python CME session calendars |
| exchange_calendars | Yes (Apache-2.0) | Free | Alternative calendar library |
| AMP margins page | Yes | Free to view | Real intraday margin numbers |
| NinjaTrader/Tradovate pricing | Yes | Commissions from $0.09–$1.29/side + fees | Retail all-in cost + intraday margin |
| IBKR margins/commissions | Yes | $0.85/side fixed (verified as of 2026-07-11) | IBKR-stack cost baseline |
| OpenFIGI | Yes | Free | Cross-vendor instrument IDs |
| Trading Economics API | Trial only | Contact sales | Production calendar API w/ streaming actuals |
| Econoday | No | Contact sales (retail newsletter $120/yr) | Broker-grade calendar feed |
| EconDB | Unknown | Unknown — verify | Backup macro API |
| EODHD economic events | Free tier excl. events | $59.99–$99.99/mo | Cheap programmatic calendar (2020+) |
| Finnhub calendar | Unclear | ~$11.99–$99.99/mo (unofficial) | Bundled option |
| FMP calendar | Unclear | Unknown — verify | Marginal bundled option |
| TradingHours.com | No | $50–$150/mo (verified via EODHD marketplace listing, as of 2026-07-11) | Outsourced holiday/session maintenance |
| Norgate futures | No | USD 270/yr | FND-safe roll conventions + continuous EOD |
| Databento (reference) | Docs free | Usage-based data | Symbology standard + machine-readable expirations |