Accuracy
How accurate are the projections?
Every xP figure shown comes from our unique model. We tested it against real results, season by season, using only what was known before each deadline, and set it beside the simpler ways of guessing that most managers rely on.
2026-27 gameweeks 2 to 6 · model xp-0.3
We tested our model against 2,999 real player performances in gameweeks 2 to 6. Each one is a single player in a single match: the points the model predicted before the deadline, and the points FPL actually gave them. Its typical error was 9.0% lower than the best simple method (Last 5 games average).
This is an early look: only 2,999 predictions have been tested so far (the last gameweek may be only partly played). The top-1 and top-5 figures in particular move a lot with so few gameweeks.
| Predictor | Typical error (RMSE) | Average miss (MAE) | Error vs ours |
|---|---|---|---|
| Our model | 2.130 | 1.229 | – |
| Last 5 games average | 2.340 | 1.305 | +9.9% |
| Season-to-date average | 2.470 | 1.286 | +16.0% |
| 30-day form (like FPL's own projection) | 2.497 | 1.288 | +17.2% |
Lower is better. All players count, including those who didn't play, because leaving them out would flatter every method. Looking only at players who played 60+ minutes, the model's RMSE is 3.35 against 3.61 for the last-5 average.
Does it pick better players?
Average points actually scored by the players the method ranked highest each gameweek:
| Top… | Our model | Last 5 average | Season average |
|---|---|---|---|
| 1 | 8.00 | 2.60 | 2.80 |
| 5 | 5.04 | 4.72 | 4.00 |
| 10 | 5.18 | 4.32 | 3.86 |
| 20 | 4.67 | 3.92 | 4.11 |
Is the size of the prediction right? (calibration)
| Prediction decile | Average predicted | Average actual |
|---|---|---|
| 1 (lowest) | 0.07 | 0.04 |
| 2 | 0.11 | 0.09 |
| 3 | 0.17 | 0.13 |
| 4 | 0.40 | 0.31 |
| 5 | 0.82 | 0.64 |
| 6 | 1.26 | 1.12 |
| 7 | 1.89 | 1.84 |
| 8 | 2.51 | 2.66 |
| 9 | 3.06 | 3.21 |
| 10 (highest) | 3.91 | 4.01 |
The five lowest deciles are players who rarely play; the model slightly over-predicts them. The top deciles, where decisions get made, are close to what happened (within about 0.15 points), with the sixth decile a little low.
2025-26 gameweeks 6 to 38 · model xp-0.3
We tested our model against 26,159 real player performances in gameweeks 6 to 38. Each one is a single player in a single match: the points the model predicted before the deadline, and the points FPL actually gave them. Its typical error was 5.1% lower than the best simple method (Season-to-date average).
| Predictor | Typical error (RMSE) | Average miss (MAE) | Error vs ours |
|---|---|---|---|
| Our model | 1.914 | 0.988 | – |
| Last 5 games average | 2.075 | 1.026 | +8.4% |
| Season-to-date average | 2.018 | 1.045 | +5.4% |
| 30-day form (like FPL's own projection) | 2.124 | 1.031 | +11.0% |
Lower is better. All players count, including those who didn't play, because leaving them out would flatter every method. Looking only at players who played 60+ minutes, the model's RMSE is 3.36 against 3.60 for the last-5 average.
Does it pick better players?
Average points actually scored by the players the method ranked highest each gameweek:
| Top… | Our model | Last 5 average | Season average |
|---|---|---|---|
| 1 | 5.61 | 5.15 | 6.45 |
| 5 | 5.30 | 4.32 | 5.03 |
| 10 | 5.06 | 4.02 | 4.57 |
| 20 | 4.50 | 4.05 | 4.24 |
Is the size of the prediction right? (calibration)
| Prediction decile | Average predicted | Average actual |
|---|---|---|
| 1 (lowest) | 0.06 | 0.04 |
| 2 | 0.10 | 0.03 |
| 3 | 0.11 | 0.02 |
| 4 | 0.12 | 0.02 |
| 5 | 0.18 | 0.15 |
| 6 | 0.61 | 0.72 |
| 7 | 1.34 | 1.44 |
| 8 | 2.20 | 2.20 |
| 9 | 2.92 | 2.93 |
| 10 (highest) | 3.80 | 3.82 |
The five lowest deciles are players who rarely play; the model slightly over-predicts them. The top deciles, where decisions get made, are close to what happened (within about 0.15 points), with the sixth decile a little low.
2024-25 gameweeks 6 to 38 · model xp-0.3
We tested our model against 24,072 real player performances in gameweeks 6 to 38. Each one is a single player in a single match: the points the model predicted before the deadline, and the points FPL actually gave them. Its typical error was 4.9% lower than the best simple method (Season-to-date average).
| Predictor | Typical error (RMSE) | Average miss (MAE) | Error vs ours |
|---|---|---|---|
| Our model | 1.905 | 0.996 | – |
| Last 5 games average | 2.059 | 1.034 | +8.1% |
| Season-to-date average | 2.002 | 1.050 | +5.1% |
| 30-day form (like FPL's own projection) | 2.110 | 1.047 | +10.8% |
Lower is better. All players count, including those who didn't play, because leaving them out would flatter every method. Looking only at players who played 60+ minutes, the model's RMSE is 3.19 against 3.45 for the last-5 average.
Does it pick better players?
Average points actually scored by the players the method ranked highest each gameweek:
| Top… | Our model | Last 5 average | Season average |
|---|---|---|---|
| 1 | 9.45 | 8.48 | 9.09 |
| 5 | 6.98 | 5.55 | 5.75 |
| 10 | 6.05 | 4.83 | 5.00 |
| 20 | 5.10 | 4.35 | 4.40 |
Is the size of the prediction right? (calibration)
| Prediction decile | Average predicted | Average actual |
|---|---|---|
| 1 (lowest) | 0.06 | 0.04 |
| 2 | 0.09 | 0.02 |
| 3 | 0.10 | 0.03 |
| 4 | 0.13 | 0.07 |
| 5 | 0.31 | 0.34 |
| 6 | 0.79 | 0.80 |
| 7 | 1.40 | 1.49 |
| 8 | 2.04 | 2.01 |
| 9 | 2.69 | 2.70 |
| 10 (highest) | 3.82 | 3.82 |
The five lowest deciles are players who rarely play; the model slightly over-predicts them. The top deciles, where decisions get made, are close to what happened (within about 0.15 points), with the sixth decile a little low.
2023-24 gameweeks 6 to 38 · model xp-0.3
We tested our model against 26,367 real player performances in gameweeks 6 to 38. Each one is a single player in a single match: the points the model predicted before the deadline, and the points FPL actually gave them. Its typical error was 4.8% lower than the best simple method (Season-to-date average).
| Predictor | Typical error (RMSE) | Average miss (MAE) | Error vs ours |
|---|---|---|---|
| Our model | 1.905 | 0.937 | – |
| Last 5 games average | 2.043 | 0.978 | +7.3% |
| Season-to-date average | 2.000 | 0.999 | +5.0% |
| 30-day form (like FPL's own projection) | 2.103 | 0.987 | +10.4% |
Lower is better. All players count, including those who didn't play, because leaving them out would flatter every method. Looking only at players who played 60+ minutes, the model's RMSE is 3.37 against 3.55 for the last-5 average.
Does it pick better players?
Average points actually scored by the players the method ranked highest each gameweek:
| Top… | Our model | Last 5 average | Season average |
|---|---|---|---|
| 1 | 6.73 | 5.09 | 6.64 |
| 5 | 5.70 | 5.05 | 5.60 |
| 10 | 5.43 | 4.93 | 5.24 |
| 20 | 5.06 | 4.44 | 4.52 |
Is the size of the prediction right? (calibration)
| Prediction decile | Average predicted | Average actual |
|---|---|---|
| 1 (lowest) | 0.05 | 0.02 |
| 2 | 0.08 | 0.03 |
| 3 | 0.10 | 0.03 |
| 4 | 0.11 | 0.04 |
| 5 | 0.19 | 0.18 |
| 6 | 0.56 | 0.65 |
| 7 | 1.14 | 1.17 |
| 8 | 1.84 | 1.86 |
| 9 | 2.53 | 2.61 |
| 10 (highest) | 3.53 | 3.77 |
The five lowest deciles are players who rarely play; the model slightly over-predicts them. The top deciles, where decisions get made, are close to what happened (within about 0.15 points), with the sixth decile a little low.
What this does not tell you
- Football points are mostly luck. The typical miss on one player in one match is still about 2.1 points even for the best method here, because one goal changes a player's week by 4 to 6 points. The aim is to be better calibrated than simple averages.
- Past-season runs have no injury or press-conference information (it wasn't saved as of the deadline), so they under-state how well the live model does on news-driven weeks. The live model does use FPL's own availability flags.
- Several settings were chosen while building the model on 2024-25 and 2025-26, so those two seasons are not a clean test. 2023-24 and the current season (a genuine forward test) are the cleaner evidence.
- FPL's own "ep next" projection is just recent form times the chance-of-playing flag; the 30-day form row above imitates it (without the flag).