Sideline Quant
Model feedLoading…

Accuracy record · 2026-27 · settled

Gameweek 2

In Gameweek 2 the model missed by 2.37 points a player across the 203 likely starters it scored, and the real team scored 91.

This page is published for every settled gameweek, good or bad, and is never edited after the fact. What follows is what the model projected before the deadline, what actually happened, how it did against the baselines on the same players, and what the real team scored.

Where Gameweek 2 went wrong

  • Last season's points per game was better than the model at spotting 10+ hauls this week: on the 163 players both scored, it ranked a hauler above a non-hauler 82% of the time, the model 76%.
  • Top-10k effective ownership was better than the model at spotting 6+ hauls this week: on the 203 players both scored, it ranked a hauler above a non-hauler 67% of the time, the model 67%.
  • Top-10k effective ownership was better than the model at spotting 10+ hauls this week: on the 203 players both scored, it ranked a hauler above a non-hauler 74% of the time, the model 72%.
  • The team finished 16.9 behind a sample of top-10k managers (average 107.9, 60 sampled). This early, the sample is chosen on the very weeks it is scored on, so the gap is overstated.
  • 12 points sat on the bench and did not count (no Bench Boost).

What went right

  • A better week than usual: 2.37 points of miss per player, against 2.42 across the season so far.
  • The model was closer than last season's points per game on points per player: 2.34 to 2.39 on the 163 players both scored.
  • The model was closer than last season's points per game on the big misses: 3.21 to 3.25 on the 163 players both scored.
  • The model ordered the players better than last season's points per game: 0.43 to 0.23 on the 163 players both scored.
  • The model was better than last season's points per game at spotting 6+ hauls: 71% to 66% on the 163 players both scored.
  • The model ordered the players better than top-10k effective ownership: 0.36 to 0.27 on the 203 players both scored.
  • The team scored 91, 10 above the average manager's 81.

Not available this week

  • Only 43 players scored 6+ this week — too few to claim a result on the 6+ figure.
  • Only 13 players scored 10+ this week — too few to claim a result on the 10+ figure.

League-wide accuracy

Scored over predicted E[minutes] > 60 (n=203 of 602 player-fixtures). Every figure below is this gameweek only; the season-to-date line beside each one is the pooled figure across all settled gameweeks.

MAE
2.37
season to date 2.42 · mean absolute error, points per player-fixture
RMSE
3.17
season to date 3.13 · punishes big misses harder
Rank corr.
0.36 (0.23–0.48)
Spearman: 1.00 orders the players exactly as the week did, 0 is no relationship. The bracket is a 95% row-bootstrap interval — a floor on the uncertainty.
Rows
203
player-fixtures scored in this gameweek's population
Σ projected
680
points the model projected over that population
Σ realised
666
points those players actually scored — the model was +14 on the total
P(≥6) AUC
0.67 (0.57–0.75)
put a player who went on to haul above one who didn't 67% of the time; 0.50 is a coin flip. 43 hauls — too few to claim a result
P(≥10) AUC
0.72 (0.57–0.85)
put a player who went on to haul above one who didn't 72% of the time; 13 hauls — too few to claim a result

Prediction vintage: 28 Aug, 17:22 UTC run Predictions are the last model run before each gameweek's deadline (first kickoff minus 90 minutes). 'seed' marks gameweeks that predate run retention, scored against the committed pre-season bundle.

95% percentile intervals from a row-level bootstrap (1000 resamples, seeded). Player-fixtures within a gameweek share fixtures and clean sheets, so these intervals understate the true width — read them as a floor on the uncertainty, not the uncertainty. A haul AUC on fewer than 50 hauls is too few to claim.

The same error on every stated population

SPEC §1.6 lets the unconditional figure appear only beside the conditional one. All four are printed so a reader who prefers a different population finds ours already stated — and so a comparison with someone else's figure is made on the same rows or not at all.

PopulationnMAERMSESeason MAE
Every player-fixture with a prediction6021.182.091.25
Predicted E[minutes] > 05561.272.171.41
Played at least one minute (selected on the outcome)hindsight2991.892.832.01
Predicted E[minutes] > 60headline2032.373.172.42

Reliability of the stated probabilities

In each bin of predicted probability, what fraction actually happened, with a Wilson 95% interval. A calibrated forecaster's observed column tracks its predicted column. The minutes model's P(60+) is read on every gameweek, the haul probabilities on the gameweeks whose run retained them.

P(plays 60+ minutes)
played 60+ minutes · every projected player-fixture with a retained p_start60 (n=602 of 602)
PredictedObserved95%n
0%0%0–661
1%0%0–661
1%0%0–659
3%2%0–960
7%2%0–960
16%25%16–3760
44%48%36–6160
77%75%63–8460
88%97%89–9960
93%92%82–9661
P(scores 6+)
scored 6+ points · every projected player-fixture with a retained p_ge_6 (n=602 of 602)
PredictedObserved95%n
0%0%0–662
0%0%0–659
1%2%0–960
1%0%0–660
3%2%0–960
6%2%0–960
10%12%6–2260
16%12%6–2260
23%25%16–3760
33%31%21–4461
P(scores 10+)
scored 10+ points · every projected player-fixture with a retained p_ge_10 (n=602 of 602)
PredictedObserved95%n
0%0%0–661
0%0%0–660
0%0%0–662
0%0%0–659
1%0%0–659
1%0%0–660
2%0%0–660
4%3%1–1161
6%8%4–1859
10%11%6–2261

Against the comparators

Our error, next to something else's, on the same rows. An arm that cannot cover every row the model scored is compared only over the rows it does cover — with the model re-scored on exactly those rows, never against its headline figure for the week.

Comparator arm
Last season's points per game

Each player's total FPL points last season divided by his appearances — the yardstick a human reaches for before a ball is kicked.

Different rows, stated plainly. This arm scored 163 of the model's 203 rows for this gameweek; 40 of the model’s rows are excluded because the arm has nothing to say about them. Every “model” number in this table is the model re-scored on exactly the 163 rows the arm covers — so its headline error for the gameweek (2.37, over 203 rows) is not the figure to read against this arm.

Population: reference arm's predicted E[minutes] > 60, imposed on every arm (n=163 of 398 player-fixtures); players with a prior-season appearance only

Last season's points per game against the model on the 163 rows both cover, Gameweek 2
MetricModel · these 163 rowsLast season's points per game
MAE
model ahead
2.342.39
RMSE
model ahead
3.213.25
Spearman rank correlation
model ahead
0.430.23
Haul AUC, 6+ points
model ahead
0.710.66
Haul AUC, 10+ points
arm ahead
0.760.82

“—” means the payload carries no figure for that metric on this arm; it is not a zero. “No direction stated” means the payload does not say which way is better for that metric, so this page does not call a winner on it.

Comparator arm
Top-10k effective ownership

How heavily the sampled top-10k managers held each player at the last capture before the deadline, captaincy counted — the crowd's ranking of the field. A rank, not a points forecast.

Rows covered. This arm scored 203 of the model's 203 rows for this gameweek, with none of the model’s rows excluded. Every “model” number in this table is the model re-scored on exactly the 203 rows the arm covers, which is the only like-for-like comparison.

Population: reference arm's predicted E[minutes] > 60, imposed on every arm (n=203 of 602 player-fixtures); every model row; double-gameweek rows excluded (ownership is per gameweek, the record is per fixture)

Top-10k effective ownership against the model on the 203 rows both cover, Gameweek 2
MetricModel · these 203 rowsTop-10k effective ownership
MAE
not carried by this arm
RMSE
not carried by this arm
Spearman rank correlation
model ahead
0.360.27
Haul AUC, 6+ points
arm ahead
0.670.67
Haul AUC, 10+ points
arm ahead
0.720.74

“—” means the payload carries no figure for that metric on this arm; it is not a zero. “No direction stated” means the payload does not say which way is better for that metric, so this page does not call a winner on it.

Comparator arm
FPL's own projection (ep_next)

The expected-points figure FPL publishes for each player before the gameweek, captured between the previous deadline and this one. Scored as a rank: it is per gameweek, so it says nothing about a double's second fixture.

Different rows, stated plainly. This arm scored 0 of the model's 203 rows for this gameweek; 203 of the model’s rows are excluded because the arm has nothing to say about them. Every “model” number in this table is the model re-scored on exactly the 0 rows the arm covers — so its headline error for the gameweek (2.37, over 203 rows) is not the figure to read against this arm.

Population:

FPL's own projection (ep_next) against the model on the 0 rows both cover, Gameweek 2
MetricModel · these 0 rowsFPL's own projection (ep_next)
MAE
not carried by this arm
RMSE
not carried by this arm
Spearman rank correlation
not carried by this arm
Haul AUC, 6+ points
not carried by this arm
Haul AUC, 10+ points
not carried by this arm

“—” means the payload carries no figure for that metric on this arm; it is not a zero. “No direction stated” means the payload does not say which way is better for that metric, so this page does not call a winner on it.

How the arms are scored Lower is better for MAE and RMSE; higher is better for Spearman and haul AUC (every metric states its own direction in `metrics`). Each baseline is scored on the model's own likely-starter rows (predicted E[minutes] > 60) and reports the model's score over exactly those rows, so the two numbers are like for like even when the baseline cannot cover every row. Overall Spearman and AUC are means over the gameweeks where BOTH arms have a value — never a cross-gameweek pool, which would rank a GW1 blank against a GW7 haul.

Legal-squad Team of the Week

Picked from the last model run before the deadline, at the prices captured before it, then scored on what actually happened.

Not comparable with the real entry. A fresh £100.0m squad, bought from scratch every gameweek: it pays no transfer hits, carries nothing over from last week and banks no price rises. It is a weekly mark on the model's picks under the real squad rules — not a strategy any manager can run, and not comparable with a managed entry on equal terms.

XI projected
54.9
with captain 61.4
XI realised
81
with captain 92
Capture
57%
of the 143-point hindsight XI — a ceiling with no budget and no club cap, not a squad
Spend
£98.6m
of £100.0m · 3-4-3
The legal-squad Team of the Week for Gameweek 2
PlayerClubPosPoints
RayaArsenalGK6
VirgilLiverpoolDEF1
GabrielArsenalDEF8
GuéhiMan CityDEF2
Mbeumo(C)Man UtdMID11
B.FernandesMan UtdMID23
SzoboszlaiLiverpoolMID4
TavernierBournemouthMID1
IsakLiverpoolFWD8
João PedroChelseaFWD9
WissaNewcastleFWD8
Bench (does not score)
DubravkaSpursGK0
ThomasCoventry CityDEF8
van EwijkCoventry CityDEF2
SlaterHull CityMID2

Against the real entry

TOTW
92
XI with the captain doubled
Entry
91
before hits; none were taken this week
Difference
+1
not a like-for-like contest

Read this as a mark, not a match. A fresh £100.0m squad, bought from scratch every gameweek: it pays no transfer hits, carries nothing over from last week and banks no price rises. It is a weekly mark on the model's picks under the real squad rules — not a strategy any manager can run, and not comparable with a managed entry on equal terms.

Deadline 28 Aug, 17:30 UTC · prediction 28 Aug, 17:22 UTC (run) · prices 18 Jul, 13:53 UTC28 Aug, 17:08 UTC (221 from an earlier capture) · pool 610 of 610 predicted

The real entry · Sideline's Team

The squad the model actually ran — with transfer hits, bench points and continuity, all of which the Team of the Week above is free of.

Points
91
no hits taken
vs average
+10
field average 81 (FPL publishes it net of hits)
vs top 10k
−16.9
sampled average 107.9 from 60 managers, sampled as of the capture
Overall rank
1,980,790
gameweek rank 2,885,921
Projected
59.2
Σ multiplier × xP over 15 of 15 picks, from the last pre-deadline run (28 Aug, 17:22 UTC)
Bench
12
left on the bench
Transfers
0
0 paid
Squad value
£99.7m
£0.5m in the bank · captain Mbeumo
The entry’s squad in Gameweek 2
PlayerClubMinsBonusPoints
RayaArsenal9006
GabrielArsenal9008
O'ReillyMan City8802
VirgilLiverpool9001
CalafioriArsenal90211
TavernierBournemouth9001
B.Fernandes(V)Man Utd90323
SzoboszlaiLiverpool9004
WirtzLiverpool9004
Mbeumo(C)Man Utd90211
João PedroChelsea9029
PhillipsbenchHull City000
TarkowskibenchEverton90212
Walle EgelibenchIpswich Town000
Kusi-AsarebenchFulham000

Cumulative after this gameweek: 150 · captured 4 Sept, 16:27 UTC · 8 squad captures

Where these numbers come from

Predictions are the last model run before each gameweek's deadline (first kickoff minus 90 minutes). 'seed' marks gameweeks that predate run retention, scored against the committed pre-season bundle.

Population scored: predicted E[minutes] > 60 (n=203 of 602 player-fixtures).

This page is a slice of the same /performance/live payload that drives the full record — one derivation, so a gameweek page and the season page cannot disagree. The projections themselves are published in full at /data/gw/2.

The exact rows this gameweek was scored on — the last run before the deadline, as served — are at fpl-quant-api.fly.dev/performance/live/gw/2/predictions with sha256 dc666d46…9013. The digest is of the rows array alone as compact JSON (no whitespace), rows sorted by player then fixture — the response says so beside it. Recompute any number on this page from them.

What this record measures, on which rows, against which comparators and at which checkpoints was fixed in advance: the pre-registration (sha256 27307797…ba4f, checkpoints GW10, GW19, GW38).

Every settled gameweek has a page: GW1, GW2, GW3.