Skip to content

KB/operations

Data Sources

Last verified

Eighteen external feeds drive the platform. Each is registered as a DataSource subclass in app/sources/ and pulled by engine.py:fetch_all_sources() on the cadence dictated by the active collection profile.

The full inventory

Source What it provides Cadence Required
market (primary brokerage feed + public market-data fallback) SPY/QQQ/IWM/DIA closes, VIX, MOVE, chain net-Γ + gamma walls/ZGL/PCR, BTC, RSI, IVR Per profile Yes (core)
fred Fed liquidity, HY OAS, 2s10s, breakevens, yields, real yield Per profile Yes
credit High-yield credit spread series, NFCI Per profile Yes
liquidity Net Fed liquidity (WALCL − TGA − RRP) Per profile Yes
darkpool Dealer-gamma analytics vendor DIX + GEX daily CSV Daily post-close Yes
news FXStreet RSS + Iran International liveblog + Hormuz tanker monitor Per profile Yes
sentiment Third-party news-sentiment feed (retired 2026-06) Per profile Optional (25 req/day budget)
seasonality Historical SPY seasonality lookup Per profile Optional
vol_structure VIX term structure (VIX9D/VIX/VIX3M/VIX6M ratios) Per profile Yes
eps Forward EPS revision deltas Per profile Optional
breadth S&P 500 % above 50/200 SMA, sector breadth Per profile Yes
energy WTI, Brent, USO, XLE, crack spread Per profile Yes
inflation Breakeven inflation series (5Y, 10Y, 5Y5Y) Per profile Yes
macro_indicators Composite macro health proxies Per profile Optional
cot CFTC Commitments of Traders speculator net positioning Weekly (Fri ~15:30 ET) Optional
aaii AAII bull-bear sentiment spread Weekly (Thu) Optional
ebp Fed Excess Bond Premium + GZ credit spread + model recession probability Monthly (FEDS Notes CSV) Optional
fred_macro Free FRED macro-state + financial-stress / funding series (Kim-Wright 10Y term premium, EFFR, SOFR, jobless claims, STLFSI4, KCFSI, unemployment, Core PCE); all data_only carriers, not yet scored Per profile (full / extended) Optional
cboe Free CBOE CDN no-key CSVs — options put/call ratios (equity / total / index) + VIX term-structure front/back points (VIX9D, VIX6M); all data_only carriers, not yet scored Daily (full / extended) Optional
ofr Free OFR (US Treasury) no-key daily CSV — Financial Stress Index composite + 5 subindices (credit / equity-valuation / safe-assets / funding / volatility); all data_only carriers, not yet scored Daily (full / extended) Optional
naaim Free NAAIM weekly page-scrape — NAAIM Exposure Index (active-manager equity exposure); data_only carrier, not yet scored Weekly (rides full / extended) Optional
options-analytics-live Live options-analytics dealer-risk + levels for SPY — settled/live net dealer gamma + delta (billions), intraday flow-shift, the categorical flow direction, and the gamma-flip / call-wall / put-wall / max-pain levels; all fa_* data_only carriers, not yet scored. Captured forward as a hedge against the subscription lapsing Intraday (4×/trading day, full) Optional
edgar_xbrl Free, no-key SEC EDGAR audited quarterly financial facts for a fixed 6-name entity set (NVDA inventory + revenue; MSFT/GOOGL/AMZN/META/ORCL capex + operating cash flow). Feeds the AI Capital Cycle T13 auto trigger + T10’s capex/OCF companion read; persisted to its own table, not daily_signals Daily (overnight / full) Optional

Three auxiliary fetches run alongside the registered sources and stash results under underscore-prefixed keys (_gamma_levels, _fed_watch, _correlations) so format_report can find them without colliding with per-source dicts:

Provider mix and fallback posture

Macro calendar — what’s filled, what isn’t

The platform seeds a forward macro-event calendar (calendar_events) that powers the air-pocket flag’s catalyst leg and the AI brief’s calendar_lookahead. The three high-impact monthly prints — Employment Situation (NFP), CPI, PPI — are seeded from FRED’s free release/dates endpoint, plus FOMC decisions and the weekly FRED release projections.

Each macro-event row carries consensus and actual columns. The two behave differently:

Constraint: no free consensus survey for NFP/CPI/PPI; no canonical headline mapping for PPI. Falsifier: a free, ToS-clean consensus feed (or a sanctioned paid one) becomes available, or PPI’s quoted-headline series is settled. Unblock: wire consensus into _emit_fred_release_calendar (consensus=) and the surprise framing follows; add the PPI entry to RELEASE_ACTUAL_MAP and its actual wires automatically.

Execution order

Fast HTTP sources run first (FRED, liquidity, darkpool, news, sentiment) so the heavy market-data fallback sources (market, eps, breadth) don’t gate the report on slow network paths. Breadth specifically downloads in batches of 50 tickers with 2-second delays to stay under the market-data fallback feed’s rate limits.

Every fetch routes through DataSource.safe_fetch() in app/sources/base.py — uniform retry with exponential backoff, WARNING on transient failure, logger.exception() on fatal, returns a default on terminal failure. New sources must use it.

See also