Every prediction, graded
FPL 2026/27 — the graded ledger
One row per graded gameweek: our mean absolute error on player projections (against FPL's own ep_next where captured), both published squads' frozen projected totals against realized official points, and the running model-vs-crowd duel score.
| GW | Our MAE | ep_next MAE | Model squad (proj → official) | Consensus squad (proj → official) | Duel (model-crowd) |
|---|---|---|---|---|---|
| GW1 | 2.734 | — | 65.92 → 44 | 60.74 → 53 | 0-1 (crowd leads) |
| GW2 | 2.848 | 2.909 | 55.96 → 93 | 52.97 → 84 | 1-1 (level) |
| GW3 | 2.404 | 3.198 | 59.52 → 37 | 53.68 → 59 | 1-2 (crowd leads) |
| GW4 | 1.207 | 1.243 | 69.57 → 76 | 53.57 → 83 | 1-3 (crowd leads) |
| GW5 | 1.148 | 1.166 | 62.63 → 44 | 52.70 → 31 | 2-3 (crowd leads) |
| GW6 | 1.103 | 1.176 | 56.74 → 41 | 48.36 → 71 | 2-4 (crowd leads) |
Method. Projections frozen pre-deadline; grading JSONs public.
Grading data: gw1.json · gw2.json · gw3.json · gw4.json · gw5.json · gw6.json
The full working: the accuracy page — per-gameweek error, the method in plain language and how to check it yourself. The projections themselves: the open dataset (JSON + CSV, CC BY 4.0). How we stack against the other public models, on one frozen sample: the open benchmark.
World Cup 2026 — the retrospective
Before every round locks, we publish our picks as a frozen, timestamped snapshot. Once the round finishes, we grade that exact snapshot against the official FIFA World Cup Fantasy points — no do-overs, no rebuilding the model after the fact. Misses are shown alongside hits. Rounds marked retrospective were reconstructed after results were known — from frozen closing odds — and are shown for context, not credit.
Round 7
This round is still in progress — matches have not all finished, so we have not graded it yet. The published prediction snapshot is already frozen and will be graded automatically once the round completes.
Round 6
This round is still in progress — matches have not all finished, so we have not graded it yet. The published prediction snapshot is already frozen and will be graded automatically once the round completes.
Round 5
This round is still in progress — matches have not all finished, so we have not graded it yet. The published prediction snapshot is already frozen and will be graded automatically once the round completes.
Round 4
Reconstructed after the fact from frozen closing odds (research overlay off, fixed seed). NOT published predictions.
Our top captain pick, Kane, was projected 8.0 pts and actually scored 13.0. The published best XI projected 65.6 total points; it actually scored 54.0.
| Article | MAE | Rank corr. | Matched | Top pick (proj.→real) | Best in list (real) |
|---|---|---|---|---|---|
| Best Xi | 3.48 | 0.63 | 11/11 | Kane (8.0→13.0) | Mbappé (14.0) |
| Captains | 3.41 | 0.62 | 18/20 | Kane (8.0→13.0) | Mbappé (14.0) |
Name-match coverage vs the official FIFA fantasy feed: 20/22 players.
Honest misses
- Round 4 captains: left 1.0 pts on the table — Mbappé (14.0 pts) outscored our top pick Kane (13.0 pts).
Round 3
This round is still in progress — matches have not all finished, so we have not graded it yet. The published prediction snapshot is already frozen and will be graded automatically once the round completes.
Method. Market odds (de-vigged) → Dixon-Coles scorelines → 50k Monte-Carlo simulations, scored on the official FIFA World Cup Fantasy points table. Grading: MAE compares our projected expected points to realized official points across matched entries; rank correlation (Spearman) checks whether our ordering matched reality, not just our top pick; captain regret is the gap between the best-scoring player in our own published list and the one we actually named captain. A round is graded only once every one of its fixtures has finished.