The data the model learns from
The free data stack
4 min
Every prediction starts with data, and the football model is built deliberately on a 100% free stack. That constraint shapes how it works — and it's worth understanding before any of the math.
Two free sources, one job each
- Football-Data.co.uk history is the backbone. It supplies seasons of finished matches — full-time goals (FTHG/FTAG) and, for the top European leagues, corner counts (HC/AC). This is the history the predictions actually learn from, imported into the model's own database.
- API-Football (free tier) supplies the forward-looking pieces: the list of upcoming fixtures (the next week or so), free pre-match odds, and — for competitions with no local history, like the World Cup — recent results, head-to-head, and per-fixture statistics.
There is no paid odds feed here, unlike the basketball product. Everything you see is squeezed out of free endpoints.
Why the budget shapes the design
The free API-Football tier is capped at a limited number of requests per day. To stay inside it, the football model runs on a daily cadence, not the minute-by-minute live loop basketball uses. It fetches fixture lists and odds, then computes predictions locally from stored history rather than hammering the API.
That single design choice — daily, history-first — is why football predictions are pre-game only. There is no live in-match re-prediction; the model commits a read before kickoff and settles it afterward.
Free data is a feature, not a compromise — but it sets the rhythm. Daily, pre-game, history-first is the shape of the whole model.