The model shows its work.
dc-v1 — time-decayed Dixon-Coles on xG-adjusted goals (decay ξ=1.375, blend 0.85), tuned by 2-D hyperparameter search on 2016–20 and evaluated untouched on 2021–25. The model does not know lineups or injuries.
Held-out performance (1,900 matches, walk-forward)
| Metric | Model | Home-rates baseline | Uniform | Closing market |
|---|---|---|---|---|
| RPS (lower = better) | 0.1987 | 0.2320 | 0.2380 | 0.1949 |
| 1X2 accuracy | 54.2% | — | 33.3% | — |
We finish 0.0038 RPS behind the closing market — the honest price of a fully odds-free model. Published academic ML models sit at ~0.205; the market at ~0.195. We publish this number; they don’t.
Calibration
What we tested and didn’t ship
Every candidate adjustment runs the same held-out walk-forward. It ships only if it improves RPS by a real margin. So far: none have. We publish the failures too.
| Candidate | ΔRPS | n | Shipped |
|---|---|---|---|
| rest days | +0.00024 | 1900 | — |
| congestion | +0.00010 | 1900 | — |
| bounce back | +0.00008 | 1900 | — |
| momentum | +0.00000 | 1900 | — |
| deep history 2000 | +0.00002 | 1900 | — |
| shot profile pb | +0.00013 | 380 | — |
shot profile pb: one shot-data season so far — re-evaluated as the archive grows.
Live track record
This season’s predictions are on the record — grading begins at full time of the first fixture. Nothing is ever edited or deleted.
Method
Team model: time-decayed Dixon-Coles on xG-adjusted goals, weekly refit, scipy MLE with analytic gradients. Match probabilities come from a Poisson scoreline grid with the Dixon-Coles low-score correction: λ_home = exp(c + atk_h − def_a + γ).
Player projections: lambda = team_lambda x share_of_xG(window) x availability; P = 1 - exp(-lambda) — attacking share and expected minutes from each player’s recent match rosters.
xG Index: teams — z-scaled Dixon-Coles ratings (50 = league average); players — position-relative percentile blend of npxG/90 (35%), xA/90 (25%), involvement/90 (20%), xG chain/90 (20%), minimum 450 minutes.
Data: shot-level xG from understat.com (2014→), fixtures and standings from football-data.org, historical closing odds (benchmark only, never displayed) from football-data.co.uk.
The archive rule: every prediction is written before kickoff and never edited or deleted. When we’re wrong, this page says so.