Accuracy

How accurate are we?

Every gameweek we publish a projected score for every player before the deadline. Once the gameweek finishes we compare those exact numbers to what actually happened. This page is the whole ledger — the good weeks and the bad ones, with the raw data behind each row.

Last updated 14 October 2026.

6Gameweeks graded
1.907Mean absolute error
2-4Model vs crowd — crowd leads
GWPlayers gradedOur MAEFPL ep_next MAEModel squad (proj → official)Consensus squad (proj → official)Duel (model-crowd)Data
GW1582.734captured from GW265.92 → 4460.74 → 530-1 (crowd leads)gw1.json
GW2642.8482.90955.96 → 9352.97 → 841-1 (level)gw2.json
GW3632.4043.19859.52 → 3753.68 → 591-2 (crowd leads)gw3.json
GW46551.2071.24369.57 → 7653.57 → 831-3 (crowd leads)gw4.json
GW56591.1481.16662.63 → 4452.70 → 312-3 (crowd leads)gw5.json
GW66671.1031.17656.74 → 4148.36 → 712-4 (crowd leads)gw6.json

What the columns mean

Our MAE
Mean absolute error: the average gap between what we projected a player would score and what he actually scored, across every player we published a number about. Lower is better on the same population and forecast horizon. There is no universal accuracy threshold: availability and player coverage materially change MAE. Expected-points models should also be evaluated with RMSE and calibration.
FPL ep_next MAE
The same measurement applied to FPL's own projection, ep_next, captured from the official API before the same deadline. It is the fairest benchmark available: same players, same week, same scoring. We started capturing it from Gameweek 2, so GW1 has no comparison and the cell says so instead of showing a zero.
Model squad / Consensus squad
Two real teams, both published before the deadline: ours, picked by the model-assisted process, and a consensus policy based on expert mentions in GW1 and ownership from GW2, with disclosed manual decisions. This is a comparison of managed strategies, not a controlled experiment isolating model quality. The arrow reads projected total → the official FPL score that team actually returned, autosubs and captain fallback included.
Duel (model-crowd)
The running score between those two teams. A gameweek goes to whichever side returned more official points; a tie moves neither column.

How to check us

You do not have to take any of this on trust. The chain is public end to end:

1. The claim was frozen before the deadline. Every gameweek's projections are written to a timestamped snapshot at build time, before kickoff, and committed to the public repository. New full-board archives are content-addressed and the build refuses to create them after the deadline. Legacy GW1–3 retain article snapshots only. GW3’s final article version was committed on 7 September, after the deadline; its internal 3 September timestamp is not independent publication proof.

2. The grading is a published file. Each row above links its raw grading JSON under /api/fpl/accuracy/ — every graded player, our projection, the realized points and the error, not just the average.

3. The projections themselves are downloadable. The full board for every gameweek with a complete archived board is on the open dataset page as JSON and CSV under CC BY 4.0. Missing historical boards are labelled unavailable. Grade us yourself against any scoring you like.

4. The code is open. The simulation, the grading and this page are in the repository.

What we do not do

Published article coverage and complete-board coverage are distinguished. Corrections retain the previous grading artifact. World Cup Round 3, previously excluded from display, was restored during the 7 September audit. The ledger above is every gameweek we have graded, in order. The track record carries the same discipline for the World Cup work.