Solver Apex Insights Model Evaluation Accuracy
THE RECEIPTS

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.

0.882
Average error (goals per team, per match)
356
Matches scored
36
Matchweeks tracked
MW31.143
MW40.924
MW50.566
MW60.808
MW70.583
MW80.934
MW90.925
MW100.836
MW111.145
MW120.821
MW130.781
MW141.178
MW151.012
MW161.071
MW170.746
MW180.687
MW190.893
MW200.832
MW210.961
MW220.924
MW230.885
MW240.927
MW250.737
MW260.678
MW270.915
MW280.864
MW290.937
MW300.862
MW311.059
MW320.831
MW331.130
MW340.659
MW351.023
MW360.797
MW370.796
MW380.813

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
GW12.632.562.63Tool A
GW22.762.872.76Apex
GW32.352.362.40Apex

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.