⚽ Tomulator
Overview
◈Dashboard📅Today's games◎State of play
Money
💷Bets & strategies
Explore
⊞Leagues & seasons📐Metrics▤Data sources
Engine room
🎲Simulations🧪Lab≣Catalog?How this works

Data sources

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.

9
sources live · 13 tracked
402,629
raw payloads · 34 feed kinds
143
metrics · computed from raw + spine
1,338,622
odds prices · every book, every capture

Live — ingesting on the daily loop

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 takeWhere it goes
tournament fixtures/results/stagescontest 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 takeWhere it goes
fixtures + referee + venuecontest 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 eventscontest_event → hazard curves (planned)
confirmed lineups + injuriescontest.detail → scorer serving, reaction-speed edge
15-book odds incl. cards/corners/BTTSodds_snapshot (soft-market archive)
vendor match predictionscontest.detail.af_prediction (benchmark)
standings snapshotsraw → dated stakes/pressure features
coach careersraw → days-since-coach-change, market-miss factors
player bio profilesperson nationality/DOB → age features
top scorers/assistsraw → 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 teamraw → squad-churn features
current squads per teamraw → rotation detection, scorer availability prior
injury/suspension history per playerraw → 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 takeWhere it goes
soccer timed events + box scorescontest_event, participation
MLB/NBA schedules + resultscontest 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 takeWhere it goes
PL match results + referee + cards/corners/foulscontest spine, post-contest facts
multi-book opening & closing 1x2/totals/AH oddsodds_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 takeWhere it goes
game winner markets (WC, MLB)odds_snapshot as bookmaker 'kalshi'
player props: first/anytime scorer, 2+/3+, score-or-assistodds_snapshot + prop settlement
hourly price candlessteam 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 takeWhere it goes
full international match historycontest 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 takeWhere it goes
probable pitchers + at-capture formcontest.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 takeWhere it goes
observed rain/temp/humidity at kickoffpost-contest facts
pre-match forecastspre-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 takeWhere it goes
ATP match resultscontest spine (tennis)
player biosperson enrichment

Dormant — wired in, waiting on a key or a reason

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 takeWhere it goes
US sportsbook oddsodds_snapshot (when ODDS_API_KEY set)

Planned — mapped, not yet built

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 takeWhere it goes
exchange prices + matched volumesplanned: 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 takeWhere it goes
event-level match dataplanned: 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 takeWhere it goes
shot events with xGplanned: shot-quality features