Everything the machine ingests — from where, what exactly, and why it earns its place. This page renders the registry (registry/sources.json), so it is the same truth the pipeline runs on. Raw payloads are append-only; everything downstream is regenerable from them.
api.football-data.org results · auth: key · daily · free tier · 10 req/min · site ↗
Tournament spines (World Cup, Euros) with stages and matchdays — the skeleton the WC sim and executor hang everything else on.
Cost reality: WC/EC tournament spines; the free tier is ample
| What we take | Where it goes |
|---|---|
| tournament fixtures/results/stages | contest spine |
API-Football Pro stats+odds+context · auth: paid · daily + live · paid · ~150k req/day · ~300/min · site ↗
The granular layer: per-fixture team/player stats, timed events, lineups ~1h pre-kickoff, injuries, referee, 15-book odds incl. cards/corners — plus the context endpoints (standings, coach careers, bio profiles, leaderboards). Feeds the scorer model, soft-market strategies and the what-changed studies. Also the sole spine source for MLS.
Cost reality: THE live capability: 15-book odds incl cards/corners, in-play odds, lineups ~1h pre-kickoff, injuries, per-player stats, MLS spine. Cancel it and the machine degrades to historical research + Kalshi-priced slow bets: soft-market strategies, the lineup sniper, the in-play watcher and fresh scorer-model data all stop. Every pull is budgeted (backfill 12k×6/day, odds 1.5k×4, live polls) with a 2k reserve guarding same-day perishables.
| What we take | Where it goes |
|---|---|
| fixtures + referee + venue | contest spine enrichment |
| per-fixture team stats (possession, xG, shots, corners, cards) | post-contest team facts → rolling pre-contest features |
| per-fixture player stats (minutes, shots, tackles, duels, rating) | participation → scorer/props models |
| timed goal/card/sub events | contest_event → hazard curves (planned) |
| confirmed lineups + injuries | contest.detail → scorer serving, reaction-speed edge |
| 15-book odds incl. cards/corners/BTTS | odds_snapshot (soft-market archive) |
| vendor match predictions | contest.detail.af_prediction (benchmark) |
| standings snapshots | raw → dated stakes/pressure features |
| coach careers | raw → days-since-coach-change, market-miss factors |
| player bio profiles | person nationality/DOB → age features |
| top scorers/assists | raw → scorer-model calibration anchors |
| live fixtures + live odds (in-play) | raw → in-play Bayesian eval (inplay-watch) |
| MLS fixtures + results (spine-from-AF adoption) | contest spine (MLS 2024-) |
| transfer history per team | raw → squad-churn features |
| current squads per team | raw → rotation detection, scorer availability prior |
| injury/suspension history per player | raw → injury-prone flags, comeback windows |
ESPN APIs events · auth: none · daily · free · site ↗
Free box scores and timed events across soccer/MLB/NBA — the multi-sport event backbone and the WC's goal-event source of record.
Cost reality: MLB/NBA/soccer schedules + finals, no key — also the MLS results fallback if the paid football API ever goes
| What we take | Where it goes |
|---|---|
| soccer timed events + box scores | contest_event, participation |
| MLB/NBA schedules + results | contest spine (baseball, basketball) |
football-data.co.uk results+odds · auth: none · daily · free · site ↗
21 seasons of Premier League results with opening/closing odds from many books — the training spine for every 1x2/totals engine and the honest price record backtests settle against.
Cost reality: keep forever — the training spine costs nothing
| What we take | Where it goes |
|---|---|
| PL match results + referee + cards/corners/fouls | contest spine, post-contest facts |
| multi-book opening & closing 1x2/totals/AH odds | odds_snapshot (backtest price discipline) |
Kalshi prediction market market · auth: none · daily + hourly candles · free · site ↗
A real money market with fee-honest prices (we store effective ask incl. the 0.07·P·(1−P) taker fee) — our player-prop counterparty, steam detector, and the settlement source for scorer props.
Cost reality: public market data — our only truly FREE live prices (WC + MLB game winners, player props, hourly candles for steam detection)
| What we take | Where it goes |
|---|---|
| game winner markets (WC, MLB) | odds_snapshot as bookmaker 'kalshi' |
| player props: first/anytime scorer, 2+/3+, score-or-assist | odds_snapshot + prop settlement |
| hourly price candles | steam detection, kalshi-retro grading |
martj42 international results results · auth: none · on-demand · free · site ↗
Every international friendly/qualifier since 1872 — the depth behind national-team Elo, which is the WC sim's strongest prior.
Cost reality: static GitHub dataset
| What we take | Where it goes |
|---|---|
| full international match history | contest spine → international Elo |
MLB StatsAPI stats · auth: none · daily · free · site ↗
Probable pitchers with season ERA/WHIP snapshotted pre-match — the single strongest MLB feature; drives pitcher_edge_v1.
Cost reality: probable pitchers; also the free live-feed option if we ever want MLB in-play
| What we take | Where it goes |
|---|---|
| probable pitchers + at-capture form | contest.detail.probable_pitchers → pitcher metrics |
Open-Meteo archive + forecast weather · auth: none · daily · free · site ↗
Kickoff-hour weather for every ground we have coordinates for. Observed weather is post-contest truth; the forecast feed is the leak-free pre-match feature. Also our favorite placebo: rain predicts nothing, and proving that validates the whole pipeline.
Cost reality: weather archive + forecast; unlimited at our volume
| What we take | Where it goes |
|---|---|
| observed rain/temp/humidity at kickoff | post-contest facts |
| pre-match forecasts | pre-contest features |
Tennis Match Charting / TML database results+bios · auth: none · daily · free · site ↗
ATP results plus the player database that fixed the 'Edmund K.' identity problem — full names, DOB, nationality, handedness.
Cost reality: static GitHub dataset
| What we take | Where it goes |
|---|---|
| ATP match results | contest spine (tennis) |
| player bios | person enrichment |
The Odds API odds · auth: key · daily · free tier · 500 credits/month · site ↗
US-book odds breadth (MLB moneylines, WC futures) — wired in but key-gated; useful again when we want US-book player props and line shopping vs Kalshi.
Cost reality: spent deliberately: WC props + US-book odds only; MLB moneylines stay key-gated so the World Cup never starves. Remaining credits are logged on every pull.
| What we take | Where it goes |
|---|---|
| US sportsbook odds | odds_snapshot (when ODDS_API_KEY set) |
Betfair Exchange historic market · auth: account · planned · account · site ↗
Matched prices with real volumes — turns CLV from 'price moved' into 'money moved', and tells us which steam is real.
Cost reality: planned; needs an account, historical files are cheap/free
| What we take | Where it goes |
|---|---|
| exchange prices + matched volumes | planned: liquidity-weighted CLV |
StatsBomb open data events · auth: none · planned · free · site ↗
Free event-level data (includes World Cups) — pressure chains and possession sequences for the leading-indicator/hazard-curve work (task #40).
Cost reality: planned; free open-data tier
| What we take | Where it goes |
|---|---|
| event-level match data | planned: in-play precursor features |
Understat shot-level xG stats · auth: none · planned · free · site ↗
Shot-by-shot xG for the big-5 back to 2014 — unlocks shot-quality engines and keeper over/under-performance, the biggest known upgrade to the 1x2 models we haven't ingested yet.
Cost reality: planned; free scrape
| What we take | Where it goes |
|---|---|
| shot events with xG | planned: shot-quality features |