Football IQ
Full-Stack ML - Football Analytics - Prediction Platform
A full-stack football analytics and match prediction dashboard combining historical football data, machine learning, betting-market context, and interactive visual analysis.
Problem
Betting markets already price football matches well. Any model that ignores them is competing with thousands of people who do not, so the question is what a model adds on top of the market rather than instead of it.
Approach
A scikit-learn/XGBoost pipeline over Europe's top 7 leagues predicting Home/Draw/Away, built on ELO ratings, rolling team form, head-to-head history and normalised Bet365 odds. Data ingests daily, with production and debug model versions kept side by side so a candidate model can be compared against the live one before it replaces it.
Trade-off
Draws are the hard class and the one most models quietly give up on, because predicting Home or Away almost always scores better. Keeping draw performance in the objective costs headline accuracy, but a football model that cannot see draws is not much use.
Architecture
Built with a FastAPI backend, Supabase/PostgreSQL storage, a React/Vite dashboard, and a scikit-learn/XGBoost prediction pipeline for Home/Draw/Away fixture outcomes. The system tracks rolling team form, ELO ratings, head-to-head history, league trends, normalized Bet365 odds, production model versions, debug model comparison, scheduled refreshes, and optional AI-generated match insights.
Results
65% back-tested accuracy across held-out seasons, with scheduled refreshes and model versioning so it keeps running without supervision. The same ELO engine was later extended into the WC2026 Control Centre.
Highlights
- Production/debug model workflows
- ELO and rolling form engine
- Bet365 odds normalization
Technologies
- React
- Vite
- FastAPI
- Supabase
- PostgreSQL
- Scikit-learn
- XGBoost
- ELO
Screenshots



