How the predictions work, and the receipts. Every pick this site makes is frozen in a database before kickoff and scored against the real result — the charts below are computed from that ledger, not curated after the fact.
The core idea — the most likely score is the wrong pick
The engine models both teams' goals as Poisson processes (Dixon-Coles), which produces a probability for every scoreline. But it never picks the most likely one — it picks the scoreline that maximises expected points under the game's scoring rules. Drag the sliders: in tight matches the two answers split.
Outcome: home 41% · draw 31% · away 27%
Most likely score: 1–1(15.0% · EP 0.612)
Best pick: 1–1(EP 0.612)
same pick here — try a tighter match
0
1
2
3
4
5
0
11
7
5
2
1
0
1
9
15
7
3
1
0
2
8
9
5
2
0
0
3
4
4
2
1
0
0
4
1
1
1
0
0
0
5
0
0
0
0
0
0
rows = home goals · cols = away goals · solid ring = best pick · dashed ring = most likely
Frozen picks scored102
Correct result63%
Points / game0.86
Exact scores12
Brier score0.166lower is better · 0.333 = guessing
Calibration — when it says 60%, is it right 60% of the time?
Every win/draw/loss probability the model published, binned and compared with what actually happened. Points on the dashed line = honest probabilities. This is the chart most prediction sites won't show you.
Performance over the tournament (cumulative)
The pipeline
Model: Dixon-Coles bivariate Poisson, maximum-likelihood fit (Python/scipy) on 1,591 international matches with time decay, 3× tournament weighting and a FIFA-ranking prior · refit twice daily by GitHub Actions · predictions calibrated to a de-vigged 41-bookmaker consensus · knockout markets convolved through extra-time + shootout models.
Honesty box
Squad star-ratings hurt accuracy in backtests (96 → 86 pts), so their model weight is zero — they live on the Players page as scouting context only.
The model ran on stale data for two weeks mid-tournament (a permanent cache on a live feed). The refit date now lives in the nav bar so that can never hide again.
Football is ~⅓ irreducible chaos. A model claiming 90% is lying; this one tells you which picks are coin-flips.