Skip to content

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)

FieldValue
What it isThe de-facto retail-standard economic calendar; free machine-readable weekly feeds at nfs.faireconomy.media in JSON, XML, and CSV (calendar UI)
CoverageGlobal 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
GranularityEvent-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 depthFeeds 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 / updatesFeed 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 methodHTTP GET, no auth: ff_calendar_thisweek.json, .xml, .csv — all three returned HTTP 200 on 2026-07-11
CostFree (as of 2026-07-11, verified by fetching the live feed)
Pricing pageN/A — free feed; site: https://www.forexfactory.com/calendar
Licensing / redistributionNo published license on the feed itself; ForexFactory ToS restricts redistribution — Unknown — verify before storing/redistributing
Reliability caveatsImpact 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 forZero-cost machine-readable event calendar for backtest event-flags and live "no-trade windows" around CPI/NFP/FOMC

BLS Release Schedule (+ iCal feed)

FieldValue
What it isOfficial Bureau of Labor Statistics release schedule for CPI, PPI, Employment Situation, JOLTS, ECI
CoverageThe highest-impact US releases for ES/NQ/YM/RTY and rate-sensitive metals (CPI, NFP at 8:30 ET)
GranularityExact release date + time per report
History depthFull-year schedules; prior-year archives linked on page
Latency / updatesSchedules published ~a year ahead; page updated "usually at least a week before" newly added releases (source)
Access methodWeb page (month/list views) + subscribable iCal feed at bls.gov/schedule/news_release/bls.ics; no JSON
CostFree (as of 2026-07-11)
Pricing pageN/A — https://www.bls.gov/schedule/news_release/
Licensing / redistributionUS government work — public domain
Reliability caveatsRare reschedules (government shutdowns); the .ics endpoint 403'd a plain curl during testing — may need a browser User-Agent
Best forAuthoritative CPI/NFP dates to cross-check third-party calendars; iCal ingest into schedulers

BEA Release Schedule (ICS + JSON)

FieldValue
What it isOfficial Bureau of Economic Analysis release schedule — GDP, Personal Income & Outlays (PCE inflation), trade balance
CoverageGDP + PCE are top-tier movers for equity index futures and gold
GranularityDate + time per release (mostly 8:30 ET, some 10:00 ET)
History depthCurrent year forward; archived prior-year schedules
Latency / updatesPublished a year ahead through December 2026 (as seen 2026-07-11)
Access methodWeb page, printable schedule, ICS calendar subscription, and an explicitly labeled "Machine-Readable Format" JSON download, plus the general BEA API
CostFree (as of 2026-07-11)
Pricing pageN/A — https://www.bea.gov/news/schedule
Licensing / redistributionUS government work — public domain
Reliability caveatsOne "TBA" item observed for late 2026; GDP release times occasionally shift with shutdowns
Best forMachine-readable (JSON) official schedule for GDP/PCE — the cleanest US agency feed of the lot

Census Bureau Economic Indicators Calendar

FieldValue
What it isCensus economic indicator release calendar — retail sales, durable goods, housing starts, new home sales, construction, trade
CoverageRetail sales & durable goods matter for ES/YM/RTY; housing data for rates-sensitive indices
GranularityDate + time (8:30/10:00 ET) per indicator
History depthSchedule published through December 2026 (as seen 2026-07-11)
Latency / updatesAnnual publication, updated as needed
Access methodWeb list view + "Quick View" PDF; no documented JSON/ICS on this page — verify whether an ICS exists
CostFree (as of 2026-07-11)
Pricing pageN/A — https://www.census.gov/economic-indicators/calendar-listview.html
Licensing / redistributionUS government work — public domain
Reliability caveatsHTML scraping required; page layout changes occasionally
Best forOfficial dates for retail sales/durable goods/housing releases

Federal Reserve FOMC Calendar

FieldValue
What it isOfficial FOMC meeting calendars — meeting dates, statements, minutes, SEP/projections
CoverageFOMC decisions (14:00 ET) + presser (14:30 ET) are the single biggest scheduled events for every symbol we trade
GranularityMeeting dates per year; statement/minutes links; minutes released "three weeks after the date of the policy decision" (source)
History depth2021–2026 detailed + 2027 placeholder dates (as seen 2026-07-11); historical materials archive back decades
Latency / updatesNext-year calendar published ~mid-year prior
Access methodWeb page; statements/minutes as HTML + PDF; no official JSON — scrape or use FRED/third-party calendars
CostFree (as of 2026-07-11)
Pricing pageN/A — https://www.federalreserve.gov/monetarypolicy/fomccalendars.htm
Licensing / redistributionUS government work — public domain
Reliability caveatsUnscheduled emergency meetings (e.g., March 2020) won't appear in advance; speech calendar is separate (Fed events calendar)
Best forAuthoritative FOMC dates for multi-year backtest event flags

FRED / ALFRED Release Calendar + API

FieldValue
What it isSt. Louis Fed's FRED release calendar plus the fred/releases/dates API endpoint
Coverage300+ US data releases (employment, inflation, housing, energy-adjacent); maps releases to the exact FRED series they update
GranularityRelease-date level (not intraday time for all releases)
History depthFull history of past release dates (real-time vintages via ALFRED); future dates included when include_release_dates_with_no_data=true (API docs)
Latency / updatesCalendar maintained continuously; API real-time
Access methodREST API (XML/JSON, max 1,000 rows/request) with free 32-char API key; web calendar with week/month/year views for 2025–2027
CostFree (as of 2026-07-11)
Pricing pageN/A — https://fred.stlouisfed.org/docs/api/fred/
Licensing / redistributionFree for most uses per FRED terms; some third-party series in FRED carry restrictions — verify per series
Reliability caveatsFuture scheduled dates are excluded from the API by default (flag required); release times not always populated — pair with agency schedules above
Best forProgrammatic past + future release-date joins against a research database — the best free API in this category

Investing.com Economic Calendar

FieldValue
What it isFree streaming economic calendar with 1–3 star impact ratings, forecast/previous/actual, real-time updates
CoverageGlobal; all US releases relevant to our markets; also has separate earnings/holiday calendars
GranularityEvent-level with real-time actual population and color-coded surprise direction
History depthWebsite filters allow historical browsing — depth Unknown — verify
Latency / updates"Streams and updates automatically in real time" (source)
Access methodWeb 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)
CostFree with ads (as of 2026-07-11); InvestingPro is a separate paid product
Pricing pagehttps://www.investing.com/economic-calendar/
Licensing / redistributionToS prohibits scraping/redistribution — a compliance risk if automated
Reliability caveatsAd-heavy; unofficial endpoints are rate-limited and unstable; impact stars are editorial
Best forHuman eyeballing and cross-checking actuals in real time; not recommended as a pipeline dependency

MQL5 Economic Calendar

FieldValue
What it isMetaQuotes' free economic calendar — 900+ indicators, 22+ countries
CoverageGlobal macro; US events relevant to all target symbols
GranularityEvent-level with importance filters, history of each indicator
History depthMulti-year per-indicator history on the website — verify depth
Latency / updatesReal-time from public sources
Access methodWeb + embeddable widget; programmatic access inside MetaTrader 5 via built-in MQL5 calendar functions (MQL5 calendar docs) — not a general REST API
CostFree (as of 2026-07-11)
Pricing pageN/A — https://www.mql5.com/en/economic-calendar
Licensing / redistributionWidget embedding permitted; bulk redistribution Unknown — verify
Reliability caveatsProgrammatic access is locked to the MT5 runtime — awkward unless the stack already includes MetaTrader
Best forFree redundancy source; useful only if an MT5 bridge exists in the stack

FinancialJuice

FieldValue
What it isReal-time market-moving news squawk (text + voice) with an integrated economic calendar
CoverageMacro headlines, central banks, energy headlines — relevant to all target markets
GranularityHeadline-level, seconds-latency squawk
History depthNot an archive product
Latency / updatesReal-time; free tier reportedly delayed vs Elite ("zero delay" is an Elite feature per pro.financialjuice.com/elite)
Access methodWeb app, mobile, TradingView widget, browser extension, RSS; no public REST API found
CostFree 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 pagehttps://pro.financialjuice.com/elite
Licensing / redistributionPersonal use; redistribution not permitted — verify
Reliability caveatsSquawk is editorial triage, not a structured feed; calendar is secondary to news product
Best forFree audio squawk around data releases for discretionary oversight of automated systems

CME Group Holiday Calendar

FieldValue
What it isOfficial CME holiday calendar — holiday trading schedules and early closes for all CME/CBOT/NYMEX/COMEX products
CoverageExact holiday hours per product group (equity index, energy, metals) — exactly our symbols
GranularityPer-holiday, per-product-group open/close/halt times (Central Time), incl. quirks like early TAS closes
History depthCurrent year + early next year on page; archives via linked notices
Latency / updatesPublished ~a year ahead; amended via notices
Access methodHTML 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
CostFree (as of 2026-07-11)
Pricing pageN/A — https://www.cmegroup.com/tools-information/holiday-calendar.html
Licensing / redistributionCME site ToS; facts (dates) are not copyrightable but bulk scraping violates ToS — verify
Reliability caveatsHoliday 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 forSource of truth for session-calendar construction; encode into pandas_market_calendars overrides

CME Expirations Calendar & QuikStrike Product Expiration Browser

FieldValue
What it isInteractive Expirations Calendar and Product and Expiration Browser covering futures/options key dates
CoverageAll target symbols; filterable by product, Globex code, event type: "Settlement Date, First or Last Trade Date, Delivery Date, and more" (source)
GranularityPer-contract-month lifecycle dates incl. first notice and last trade
History depthActive/listed contracts (~1+ year forward); historical expirations via per-product calendar pages (e.g. gold calendar)
Latency / updatesUpdated as contracts list
Access methodWeb tool; QuikStrike browser supports bulk download of "all active expiration information" (format unspecified — verify; likely CSV/Excel); free CME Group login may be required
CostFree (as of 2026-07-11)
Pricing pageN/A — https://www.cmegroup.com/tools-information/calendars/expiration-calendar.html
Licensing / redistributionCME ToS; internal use fine — verify bulk-download terms
Reliability caveatsJS-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 forBuilding 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

FieldValue
What it isOfficial equity index roll dates page listing customary quarterly roll dates
CoverageES/MES/NQ/MNQ/YM/RTY/M2K quarterly (H/M/U/Z) rolls
GranularityPer-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 depthTable runs through 2028 (as seen 2026-07-11)
Latency / updatesStatic, extended annually
Access methodWeb page (HTML table)
CostFree (as of 2026-07-11)
Pricing pageN/A — https://www.cmegroup.com/trading/equity-index/rolldates.html
Licensing / redistributionCME 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 forHard-coding the quarterly ES/NQ/YM/RTY roll window in backtests and roll automation

CME Margins (CME Clearing)

FieldValue
What it isOfficial exchange performance-bond (margin) requirements: clearing margins hub with per-product margin tabs on product pages (e.g. ES margins)
CoverageAll target symbols (initial/maintenance, intra-commodity spreads); SPAN2 indicative margins for energy/equity in-scope products
GranularityPer contract month; maintenance + initial (initial = maintenance × ratio for specs)
History depthHistorical margins archive exists — per-asset-class PDFs, most products from 2020; history beyond ~5 years via CME DataMine (verified 2026-07-11)
Latency / updatesMargin changes announced via clearing advisories, typically effective next business day; no fixed cadence
Access methodWeb 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
CostFree to view (as of 2026-07-11)
Pricing pageN/A — https://www.cmegroup.com/clearing/margins/
Licensing / redistributionCME ToS; SPAN/SPAN2 risk-parameter files are licensed separately — verify
Reliability caveatsExchange margin ≠ what your broker charges intraday (see broker entries); values change with volatility regimes — snapshot them, don't assume constants
Best forOvernight/position margin truth for capital planning; the number brokers must collect at minimum for held positions

CME Exchange Fee Schedules

FieldValue
What it isOfficial exchange fee schedules per exchange, downloadable as Excel + PDF
CoverageCME (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
GranularityPer-product, per-venue, per-membership-tier fees; "Non-Member Fee Finder" search tool on page
History depthCurrent schedules; effective dates seen 2026-07-11: CME June 29 2026, CBOT July 1 2026, NYMEX/COMEX June 1 2026
Latency / updatesRevised periodically (typically annually + ad hoc)
Access methodExcel/PDF downloads from the page
CostFree to view (as of 2026-07-11)
Pricing pageN/A — https://www.cmegroup.com/company/clearing-fees.html
Licensing / redistributionCME ToS
Reliability caveatsFee 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 forExact per-side exchange fees for cost modeling (e.g., Micro vs E-mini fee asymmetry materially changes micro-contract strategy viability)

NFA Assessment Fee

FieldValue
What it isNational Futures Association assessment fee charged per side on customer futures/options trades (NFA assessment fee FAQ)
CoverageEvery trade in every target symbol at a US FCM
GranularityFlat per-side fee
History depthRule history in NFA Bylaw 1301
Latency / updatesChanges announced via Notices to Members with long lead time
Access methodWeb 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 pagehttps://www.nfa.futures.org/faqs/members/nfa-assessment-fees.html
Licensing / redistributionPublic regulatory information
Reliability caveatsFee doubles mid-2027 — cost models with multi-year horizons must be date-aware
Best forThe regulatory line item in per-trade cost modeling

CME Symbology: Month Codes & Globex Product Codes

FieldValue
What it isOfficial futures month codes (F=Jan … H=Mar, M=Jun, U=Sep, Z=Dec) and per-product Globex codes on each product page
CoverageAll 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)
GranularitySymbol construction rules; vendor tickers per platform
History depthStatic conventions
Latency / updatesStable; new products add codes
Access methodWeb pages
CostFree (as of 2026-07-11)
Pricing pageN/A — https://www.cmegroup.com/month-codes.html
Licensing / redistributionPublic reference
Reliability caveatsVendor 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 forCanonical symbol grammar for the instrument-master table

CME Daily Settlement Procedures

FieldValue
What it isOfficial 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
CoverageES/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
GranularityMethodology (rules), plus actual daily settlement values on the settlements pages per product (e.g. MCL settlements)
History depthSettlement values: recent sessions free on web; deeper history via CME DataMine (paid)
Latency / updatesPreliminary settles intraday post-close; final by evening
Access methodWeb (wiki pages are static HTML — scrapeable, unlike cmegroup.com product pages)
CostFree (as of 2026-07-11)
Pricing pageN/A — https://www.cmegroup.com/market-data/daily-settlements.html
Licensing / redistributionCME ToS
Reliability caveatsMicro 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 forCorrect mark-to-market and settlement-anchored backtest fills

CME Price Limits & Circuit Breakers

FieldValue
What it isOfficial price limits page (live limit values, updated per trade date) + US equity index price limits FAQ
CoverageEquity 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
GranularityDaily reference price + computed limit levels per product (page showed live values for trade date 2026-07-13 when fetched 2026-07-11)
History depthCurrent trade date only on page; historical limit levels not archived here
Latency / updatesDaily recalculation from the futures fixing price
Access methodWeb page (HTML tables); "special price fluctuations guide" downloadable as Excel (price limits page)
CostFree (as of 2026-07-11)
Pricing pageN/A — https://www.cmegroup.com/trading/price-limits.html
Licensing / redistributionCME ToS
Reliability caveatsLimits 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 forModeling halt/limit-lock scenarios for ES/NQ/YM/RTY risk management

CME Globex Trading Hours & Maintenance Windows

FieldValue
What it isOfficial trading hours page (date-selectable per product)
CoverageAll 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)
GranularityPer-product session open/close/halt times in CT
History depthCurrent schedule; historical changes via notices
Latency / updatesChanges announced via Globex notices
Access methodWeb page with date selector (JS-rendered tables)
CostFree (as of 2026-07-11)
Pricing pageN/A — https://www.cmegroup.com/trading-hours.html
Licensing / redistributionCME ToS
Reliability caveatsDST 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 forSession-calendar truth incl. the daily 16:00–17:00 CT equity halt and weekend/Tuesday maintenance windows

CME Reference Data API v3

FieldValue
What it isCME Reference Data APIv3 — JSON REST APIs on Google Cloud for product & instrument reference data (technical wiki)
CoverageAll 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
GranularityProduct- and instrument-level records (tick size, contract months, lifecycle dates)
History depthActive + listed instruments; expired-instrument history Unknown — verify
Latency / updatesReal-time reference updates
Access methodREST/JSON with registered OAuth API ID (Google Cloud hosted)
CostUnknown — verify (requires CME registration; may be bundled with market data license agreements — Contact CME)
Pricing pagehttps://www.cmegroup.com/market-data/browse-data/catalog/reference-data.html
Licensing / redistributionPer CME Information License Agreement — internal use typically; verify
Reliability caveatsOnboarding friction (License + OAuth registration); overkill if Databento definitions or QuikStrike downloads suffice
Best forFully automated, exchange-authoritative expiration/FND/symbology pipeline at production grade

pandas_market_calendars (Python)

FieldValue
What it isOpen-source Python library of exchange session calendars (docs, GitHub)
Coverage50+ 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
GranularitySession open/close, breaks, holidays, early closes; generates minute-level DatetimeIndex via date_range
History depthRules-based — extends backward/forward, but historical exchange rule changes only as good as contributed rules
Latency / updatesShips as package code — new holidays require a package update (no live feed)
Access methodpip install pandas_market_calendars; Python API
CostFree — MIT license (as of 2026-07-11)
Pricing pageN/A — https://pypi.org/project/pandas-market-calendars/
Licensing / redistributionMIT — unrestricted
Reliability caveatsCommunity-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 forProgrammatic session/holiday calendar in backtests — pair with an annual audit vs. CME's official page

exchange_calendars (Python)

FieldValue
What it isOpen-source successor to Quantopian's trading_calendars (GitHub)
Coverage50+ exchanges; CME-related: CMES (CME) and XCBF; fewer futures-specific product calendars than pandas_market_calendars
GranularitySessions, minutes, schedules
History depthRules-based like above
Latency / updatesCommunity releases (v4.13.2, March 2026, per repo — verified 2026-07-11); pandas_market_calendars mirrors these calendars
Access methodpip install exchange_calendars
CostFree — Apache-2.0 (as of 2026-07-11)
Pricing pageN/A — https://github.com/gerrymanoim/exchange_calendars
Licensing / redistributionApache-2.0
Reliability caveatsExplicitly community-maintained ("all of the exchange calendars are maintained by user contributions") — same audit caveat
Best forAlternative/cross-check calendar library; useful if already in a zipline-lineage stack

AMP Futures Margin Page (broker reality check)

FieldValue
What it isDeep-discount FCM's live margin table/calculator — day-trade margins set by AMP vs exchange maintenance margins
CoverageAll target symbols
GranularityPer-symbol day-trade margin + exchange maintenance margin
History depthCurrent values only
Latency / updatesChanges with volatility and exchange updates
Access methodWeb page
CostFree 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 pagehttps://www.ampfutures.com/trading-info/margins
Licensing / redistributionBroker marketing page — quote, don't redistribute wholesale
Reliability caveatsDay-trade margins apply intraday only and are revocable in volatile markets; holding into the 16:00 CT close requires full exchange margin
Best forRealistic intraday capital requirements for small-account strategy sizing

NinjaTrader / Tradovate Margins & Commissions

FieldValue
What it isRetail futures broker pricing pages: NinjaTrader margins, Tradovate pricing (same NinjaTrader group)
CoverageAll CME target symbols
GranularityPer-side commissions by plan + intraday margins by contract class
History depthCurrent only
Latency / updatesPlan pricing changes occasionally; margins with volatility
Access methodWeb pages
CostVerified 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 pagehttps://www.tradovate.com/pricing/
Licensing / redistributionBroker marketing pages
Reliability caveatsAdvertised 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 forConcrete all-in cost + intraday leverage numbers for the retail execution layer

Interactive Brokers Futures Margins & Commissions

FieldValue
What it isIBKR reference pages: futures margin requirements, futures commissions, CME pass-through fees
CoverageAll target symbols
GranularityPer-symbol overnight/intraday margins; fixed vs tiered commissions
History depthCurrent only
Latency / updatesMargin table updates frequently; intraday margin reverts to full overnight margin at "Intraday End Time" daily (margin page)
Access methodWeb pages (403-block automated fetchers — verified 2026-07-11; view in browser)
CostFree 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 pagehttps://www.interactivebrokers.com/en/pricing/commissions-futures.php
Licensing / redistributionBroker reference pages
Reliability caveatsNo intraday margin discounts for IRA/cash accounts or when holding offsetting FOPs; IBKR intraday margin policies differ structurally from futures-specialist brokers
Best forMargin/commission baseline if execution runs through IBKR alongside equities

OpenFIGI (symbology mapping)

FieldValue
What it isBloomberg's free OpenFIGI API for mapping tickers to FIGI identifiers, including futures
CoverageGlobal instruments incl. CME futures contracts (per-contract FIGIs)
GranularityIdentifier-level mapping
History depthLive mapping (expired contracts retain FIGIs — verify)
Latency / updatesLive
Access methodREST 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)
CostFree; higher rate limits with free API key (as of 2026-07-11)
Pricing pageN/A — https://www.openfigi.com/api
Licensing / redistributionOpen Symbology terms — permissive; verify for storage
Reliability caveatsFutures ticker conventions in OpenFIGI differ from Globex raw symbols — mapping requires care
Best forCross-vendor instrument master keys when joining futures data with securities datasets

Commercial sources

Trading Economics API

FieldValue
What it isCommercial 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
GranularityEvent-level with actual/forecast/previous/revised, importance; live updates via streaming
History depthHistorical calendar events queryable by date range — verify depth (claimed 20M indicator series overall)
Latency / updatesNear-real-time, 24h
Access methodREST (JSON/CSV/XML), Python/Node/Excel clients (developer portal)
CostContact 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 pagehttps://tradingeconomics.com/analytics/pricing.aspx
Licensing / redistributionDistribution-sensitive pricing; redistribution needs elevated license
Reliability caveatsTrial auto-charges if not cancelled; no refunds for unused days (pricing page)
Best forProduction-grade programmatic economic calendar with actuals streaming — if budget allows

Econoday

FieldValue
What it isInstitutional economic-calendar/event-data vendor (econoday.com) — calendars, consensus forecasts, event feeds via "APIs and widgets... to full enterprise API access"
CoverageUS + global indicators, central banks; also sovereign-debt auction and USDA/agriculture calendars
GranularityEvent-level with Econoday's own consensus estimates and analyst commentary
History depthLong institutional archive — verify
Latency / updatesReal-time actuals
Access methodEnterprise API, widgets, white-label (used by many brokers incl. IBKR's calendar)
CostContact 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 pagehttps://www.econoday.com/enterprise/
Licensing / redistributionEnterprise licensing scales by distribution
Reliability caveatsConsensus figures are Econoday's own panel — differs from Bloomberg/Reuters consensus that markets sometimes key off
Best forBroker-grade calendar widget/feed; likely accessible for free through a brokerage relationship (e.g., IBKR) rather than direct license

EconDB

FieldValue
What it isEconomic 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)
CoverageGlobal macro series from national sources; release/calendar coverage Unknown — verify
GranularitySeries-level; main-indicator dashboards
History depthFull national-source history per series — verify
Latency / updatesUpdated on source release
Access methodREST 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)
CostUnknown — verify (no public pricing page reachable during session; registration appears free with paid tiers)
Pricing pagehttps://www.econdb.com/
Licensing / redistributionUnknown — verify
Reliability caveatsSmall vendor; documentation portal was not renderable to plain fetchers this session — evaluate stability before depending on it
Best forBackup macro-series API; low priority for our calendar needs vs FRED

EODHD Economic Events API

FieldValue
What it isEconomic Events Data API within the EODHD platform
CoverageGlobal economic events (retail sales, PMIs, bond auctions...) with country filter; US events relevant to all target symbols
GranularityEvent-level: type, comparison (MoM/QoQ/YoY), period, country, timestamp, actual/previous/forecast/change (verified on docs 2026-07-11)
History depthEvents from 2020 onward (per docs, verified 2026-07-11)
Latency / updatesNear-real-time actuals — verify latency
Access methodREST (JSON), limit/offset pagination up to 1,000; 1 API call per request
CostIncluded 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 pagehttps://eodhd.com/pricing
Licensing / redistributionPersonal vs commercial licenses differ — verify redistribution terms
Reliability caveatsHistory only to 2020 limits long backtests; event taxonomy less rich than Econoday/TE
Best forCheap programmatic calendar if already paying for EODHD fundamentals

Finnhub Economic Calendar

FieldValue
What it isEconomic calendar endpoint in Finnhub's market-data API
CoverageGlobal economic events; US releases relevant to target markets
GranularityEvent-level with actual/estimate/prev — verify fields
History depthUnknown — verify
Latency / updatesReal-time updates on paid tiers
Access methodREST (JSON), API key
CostPricing 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 pagehttps://finnhub.io/pricing
Licensing / redistributionDisplay/internal use per plan; redistribution restricted
Reliability caveatsEndpoint-level plan gating is common at Finnhub — test with a free key before budgeting
Best forBundled option if Finnhub is already used for other data

Financial Modeling Prep (FMP) Economic Calendar

FieldValue
What it isEconomic calendar endpoint in FMP's API suite
CoverageGlobal economic releases — verify coverage quality for non-US
GranularityEvent-level with estimates/actuals
History depthUnknown — verify
Latency / updatesUnknown — verify
Access methodREST (JSON), API key
CostContact sales / see pricing page — docs page 403-blocked automated fetch this session (2026-07-11); plan tiers not verified
Pricing pagehttps://site.financialmodelingprep.com/developer/docs/pricing
Licensing / redistributionPer-plan; redistribution restricted
Reliability caveatsFMP's non-equity datasets historically thinner than its equity fundamentals — validate event completeness vs ForexFactory before use
Best forMarginal option; only if FMP already in the stack

TradingHours.com

FieldValue
What it isCommercial 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)
GranularityTrading hours incl. half-days, holidays, live market-status API
History depthForward-looking schedules + current status; historical holiday archive — verify
Latency / updatesContinuously maintained; market status real-time
Access methodREST API (JSON/CSV), bulk zip download (CSV/Excel), Python client
CostMarket 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 pagehttps://www.tradinghours.com/data
Licensing / redistribution"Licensed on a per-application basis, exclusively for internal use" (source)
Reliability caveatsFor a single exchange group (CME), free sources + pandas_market_calendars may fully substitute; value is multi-exchange breadth
Best forOutsourcing holiday/session maintenance with an SLA instead of auditing open-source calendars annually

Norgate Data (Futures package)

FieldValue
What it isEOD 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)
GranularityDaily; individual contracts + spot-month continuous (unadjusted and back-adjusted)
History depth"Back to around 1980 or first day of trading" (source)
Latency / updatesEnd-of-day
Access methodWindows app (NDU) + Python package, AmiBroker etc.
CostUSD 148.50 / 6 months or USD 270 / 12 months (verified live on futures package page, as of 2026-07-11)
Pricing pagehttps://norgatedata.com/prices.php
Licensing / redistributionSingle-user internal use; no redistribution
Reliability caveatsRoll 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 forDocumented, FND-safe roll conventions + cheap continuous-contract sanity checks against our own roll logic

Databento (symbology & instrument definitions reference)

FieldValue
What it isMarket-data vendor whose symbology docs and instrument-definition schema serve as practical reference standards for CME futures
CoverageFull 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)
GranularityInstrument-definition records carry expiration, tick size, multiplier per contract (definition schema) — verify field list
History depthDefinitions available historically alongside each dataset's depth
Latency / updatesReal-time definitions on live feeds
Access methodREST/Python/C++ APIs; docs freely readable
CostDocs free; data usage-based (pricing on databento.com/pricing — not fetched this session; covered by the price-history category)
Pricing pagehttps://databento.com/pricing
Licensing / redistributionData licensed per plan; internal use standard; symbology conventions freely adoptable
Reliability caveatsc/v/n roll indices are Databento conventions — other vendors' "continuous" contracts differ; document which convention every dataset uses
Best forAdopting a rigorous symbology standard and machine-readable expirations without touching CME's OAuth-gated Reference Data API

Summary table

SourceFree tier?Entry costBest for
ForexFactory (faireconomy feeds)Yes (fully)FreeMachine-readable weekly econ calendar (JSON/XML/CSV)
BLS schedule (+.ics)YesFreeAuthoritative CPI/NFP dates, iCal ingest
BEA schedule (ICS+JSON)YesFreeMachine-readable GDP/PCE schedule
Census indicator calendarYesFreeRetail sales/durables/housing dates
Fed FOMC calendarYesFreeFOMC dates 2021–2027
FRED releases APIYesFree (API key)Programmatic past+future release dates
Investing.com calendarYes (web only)FreeManual real-time cross-check
MQL5 calendarYesFreeRedundancy; MT5-native access
FinancialJuiceYesElite ~$33/mo quarterly promo (unofficial, as of 2026-07-11)Free audio squawk around releases
CME holiday calendarYesFreeSession-calendar source of truth
CME expiration calendar / QuikStrikeYesFreeFND/LTD/expiration dates per contract
CME equity roll datesYesFreeQuarterly ES/NQ/YM/RTY roll windows
CME margins pagesYesFree to viewExchange overnight margin truth
CME fee schedulesYesFreeExact exchange/clearing fees (Excel)
NFA assessment feeYes$0.01/side now; $0.02 from 2027-07-01Regulatory cost line item
CME month codes/symbologyYesFreeSymbol grammar
CME settlement proceduresYesFreeES/CL settle methodology (VWAP windows)
CME price limits pageYesFreeDaily 7/13/20% limit levels
CME trading hours pageYesFreeSessions, maintenance windows, DST handling
CME Reference Data API v3RegistrationUnknown — verifyExchange-authoritative reference pipeline
pandas_market_calendarsYes (MIT)FreePython CME session calendars
exchange_calendarsYes (Apache-2.0)FreeAlternative calendar library
AMP margins pageYesFree to viewReal intraday margin numbers
NinjaTrader/Tradovate pricingYesCommissions from $0.09–$1.29/side + feesRetail all-in cost + intraday margin
IBKR margins/commissionsYes$0.85/side fixed (verified as of 2026-07-11)IBKR-stack cost baseline
OpenFIGIYesFreeCross-vendor instrument IDs
Trading Economics APITrial onlyContact salesProduction calendar API w/ streaming actuals
EconodayNoContact sales (retail newsletter $120/yr)Broker-grade calendar feed
EconDBUnknownUnknown — verifyBackup macro API
EODHD economic eventsFree tier excl. events$59.99–$99.99/moCheap programmatic calendar (2020+)
Finnhub calendarUnclear~$11.99–$99.99/mo (unofficial)Bundled option
FMP calendarUnclearUnknown — verifyMarginal bundled option
TradingHours.comNo$50–$150/mo (verified via EODHD marketplace listing, as of 2026-07-11)Outsourced holiday/session maintenance
Norgate futuresNoUSD 270/yrFND-safe roll conventions + continuous EOD
Databento (reference)Docs freeUsage-based dataSymbology standard + machine-readable expirations