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 26 August 2026.

1Gameweeks graded
2.734Mean absolute error
0-1Model 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

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. Around 2.5 is roughly the state of the art for a single gameweek — football is mostly noise, and anyone claiming a much lower number is usually grading themselves on a handful of easy picks.
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 optimiser, and a consensus XI assembled from what the popular FPL sources were recommending that week. 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. The build refuses to write a snapshot once the gameweek has locked, so a number cannot be quietly improved after the fact.

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 is on the open dataset page as JSON and CSV under CC BY 4.0. 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

We do not drop bad gameweeks, re-run the model on a finished week and report the better number, or quote accuracy over a hand-picked subset of players. The ledger above is every gameweek we have graded, in order. The track record carries the same discipline for the World Cup work.