Model accuracy, published in the open.
Every prediction model claims it works. This page is where FPL Apex proves it — a full-season match tracker and a live forward test against the leading paid tools, where every projection is locked before the deadline and scored after. Wins and losses both published.
Last season, against the paid tools
In June 2026 we replayed the engine of the day over six late-season gameweeks of 2025/26 and scored it against Tool A’s published projections on the same players, matched by FPL player ID. The result: statistically level across all players, behind on the players who actually started. That engine has been rebuilt since, so the figure no longer describes what ships — which is why we no longer print it. The live forward test below, where every tool’s book is frozen before each deadline and scored after, is the record that counts.
2025/26 — match prediction accuracy
A walk-forward backtest over the 2025/26 Premier League season: for every matchday the model is refit on the matches played strictly before it, then its goal projection for each side is scored against the actual score. The number tracked is MAE — the average size of the miss, in goals per team per match (the home-side and away-side misses averaged). Lower is better. This is a backtest re-run with the current model, not a record of predictions published at the time; the live record is the forward test below and on Model Evaluation.
Tracking begins at matchweek 3 — the model holds off until the new season has given it real in-season data to work with.
Live forward test — 2026/27
From GW1 of 2026/27, projections from all three tools are snapshotted before each deadline and scored after the gameweek finishes. Point-in-time honest: predictions are locked in advance, never recomputed, and the results land here weekly — wins and losses both. Each row is the MAE against actual FPL points, on the same set of players.
| GW | Apex MAE | Tool A MAE | Tool B MAE | Closest |
|---|---|---|---|---|
| GW1 | 2.63 | 2.56 | 2.63 | Tool A |
| GW2 | 2.76 | 2.87 | 2.76 | Apex |
| GW3 | 2.35 | 2.36 | 2.40 | Apex |
Scored by scripts/forward_test/forward_log.py — every tool’s book captured before the deadline, scored after the final whistle, published either way. All three tools are compared on the common set of players every tool projected, matched by FPL player ID, and Closest is whichever of the three had the lowest miss that week. † marks a gameweek where Tool B could only be scored on a smaller sample; in that week it does not decide the Closest column.
How to read this page
Scoreline vs xG
Most people judge football by results. The scoreline tells you what happened; xG — expected goals — tells you what should have happened, based on the quality of chances created. The difference is luck. Apex is built on xG because performance predicts the future better than results do.
Why MAE
MAE — mean absolute error — is the average size of the miss. Predict 5 points, the player scores 7: that's an error of 2. Average it over every player, every week. Lower is better; zero is impossible. It's the fairest single number because a few lucky calls can't game it.
Why point-in-time matters
Anyone can show you a backtest that works — built after the results were known. A point-in-time record can't be massaged: the prediction is locked before kick-off, then scored against what actually happened. That's the standard betting markets are held to, and the standard this page holds Apex to.