The season record

Our projections are frozen before every deadline and marked in public after — misses first, every figure with its sample size, always against a naive baseline. A projection you can't verify is just marketing. This page is the alternative.

Gameweeks marked so far: 3 of 38. Updated 8 September 2026.

Gameweek 3 — marked

What we got wrong (always first)

  • 80 players we rated did not play a minute — 82.7 projected points given away (GW1: 71 players, 100.4; GW2: 82, 107.6). The count barely moved. What improved is that the misses were cheaper ones.
  • Of the 23 players we rated at 60%+ to start who did not start, 20 carried no availability flag at all in the file we froze. Nico O'Reilly (5.59 projected, 83.7% to start) and Phil Foden (5.40, 82.3%) headline, both Manchester City, and neither was injured. We rate the player; we do not model the manager, and that is now the largest recurring miss on this page.
  • We under-projected the players who played by 0.59 points a row (n=289), the third gameweek running with the same sign. This week it landed on goalkeepers (+0.89, n=20) and defenders (+0.88, n=104), where GW2's landed on midfielders and forwards. The clean-sheet table below says why: in the 0.35 to 0.50 bucket we predicted 0.397 and realized 0.588 (n=17). We under-predicted clean sheets, so we under-projected the people who get paid for them.

What we got right

  • Coverage held where it counts: 3 starters had no number from us, worth 6 points, against 4 and 6 in GW2 and 43 worth 166 in GW1. 98.6% of the players who started the gameweek carried a projection.
  • The points handed to players who never appeared fell from 107.6 to 82.7 on a near-identical count, which is the ghost problem getting cheaper rather than rarer. Rarer is the harder half and it has not happened yet.
  • Frozen 2 hours and 56 minutes before the deadline, mechanically gated, digest below.

The honest headline

On the 289 rated players who played, our projections' rank correlation with actual points was 0.291. Sorting the same players by ownership percentage — free, on the FPL site — scores 0.287. Paired difference +0.004, 95% interval −0.108 to +0.113. A tie with the crowd for the third week running. Including the rated players who did not play (n=369) we lead 0.486 to 0.420, difference +0.066, interval −0.029 to +0.154: still not separable, but the sign sits where it has all season, because our correlation with minutes (0.496) stays higher than our correlation with points.

Captaincy gave no signal this week. Our implied captain and the most-owned captain were the same player, Haaland, who returned 9. Season head to head after three gameweeks: 1 win, 2 ties, 0 losses.

Populations matter: correlations quoted on players who played (minutes > 0) unless stated. Three gameweeks prove nothing in either direction. The season gets published like this regardless.

Gameweek 2 — marked

What we got wrong (always first)

  • 82 players we rated did not play a minute — 107.6 projected points given away (GW1: 71 players, 100.4). Of the 19 rated at 60%+ to start who did not start, 16 were never flagged by FPL at any point: benchings, rotation and shape, not injuries. Richarlison (4.76 projected, 87.5% to start) headlined; two players we rated at exactly 100% to start both failed.
  • Post-freeze transfers are a class we did not have: Emiliano Martínez moved Villa → Chelsea after our 15:45Z freeze and started; we had rated Sánchez (Chelsea) at 92.6% to start — he did not play — and Villa's rated keeper Bizot did not play either. Three goalkeeper misfires in two gameweeks. A roster diff at freeze time joins the pre-deadline checklist.
  • Level bias: we under-projected players who played by 0.67 points a row (n=283) — midfielders and forwards by about a point each. Same sign for midfielders two weeks running; logged, not acted on yet.

What we got right

  • Coverage: unrated starters fell from 43 (166 points) in GW1 to 4 (6 points). 91% of the players who played had a projection, up from 76% — the promoted-club gap closed by players earning ratings.
  • Captain: our implied captain (Bruno Fernandes, 6.49 projected) returned 23; the most-owned captain (João Pedro, 68.2% owned) returned 9. Season head-to-head: 1 win, 1 tie, 0 losses — n=2, a coin that has landed twice.
  • Odds drift between our freeze and closing was nil: mean change in home-win probability 0.013, maximum change in any clean-sheet probability 0.016, across all 10 fixtures. Nothing we froze was stale.

The honest headline

On the 283 rated players who played, our projections' rank correlation with actual points was 0.305. Sorting the same players by ownership percentage scores 0.316 — paired difference −0.011, 95% interval −0.110 to +0.091. Indistinguishable from the crowd again. Including the players who did not play (n=365) the model leads, 0.416 to 0.366, because knowing who plays is still what it does best: its correlation with minutes (0.493) remains higher than with points.

Populations matter: correlations quoted on players who played (minutes > 0) unless stated. Two gameweeks prove nothing in either direction. The season gets published like this regardless.

Gameweek 1 — marked

What we got wrong (always first)

  • De Cuyper scored 17 points; we ranked him #139 of 308 rated players.
  • Our implied captain (Bruno Fernandes, 6.43 projected) returned 2 — exactly what the most-owned captain (Haaland) returned. A tie with the crowd. Season head-to-head: 0 wins, 1 tie, 0 losses.
  • 71 players we rated to start never played a minute — Watkins headlined that list. The minutes model is our biggest measured miss, and its fix is evidence, not tuning.
  • GW1's breakout scorers — Mendy 15, Ajayi 14, Sangaré 14 — got no projection at all. When we have no evidence we show no number, and promoted-club players had none. They earned ratings by playing; that is the only way in.

What we got right

  • Hinshelwood ranked #13 of 308 → 16 points. Palmer (#24) → 13. Gakpo (#21) → 12.
  • Clean-sheet probabilities: 27.8% predicted vs 28.6% realized across the 84 goalkeepers and defenders who played 60+ minutes. Ten fixtures is a tiny sample — the running table below is what will eventually be citable.
  • No player we showed nothing for outscored the top of the rated pool — the no-evidence rule cost visibility, not correctness.

The honest headline

On the 237 rated players who played, our projections' rank correlation with actual points was 0.227. Sorting the same players by ownership percentage — free, on the FPL site — scores 0.220. Week one was a statistical tie with the crowd. One gameweek proves nothing in either direction, which is exactly why the whole season gets published like this.

Populations matter: correlations quoted on players who played (minutes > 0). We will never quote a bare accuracy number, and if a week is bad, it goes here anyway.

Accumulating tables (nothing is claimed until n is honest)

GWClean-sheet bucketnpredictedrealized
10.00–0.20120.1300.000
10.20–0.35620.2690.306
10.35–0.5050.4770.000
10.50–1.0050.5411.000
20.00–0.20410.1540.220
20.20–0.35340.2810.206
20.35–0.50260.3890.231
30.00–0.20370.1440.162
30.20–0.35480.2720.333
30.35–0.50170.3970.588

How to verify the freeze

Each gameweek's projection file is frozen before the deadline and its SHA-256 digest is published here. The bytes the app serves are the bytes that were hashed; change one character and the digest breaks.

GWgeneratedSHA-256 of the frozen file
12026-08-22T02:00:21Z 64f30a875e99262d2bd70cead107986971f0832f8ac5075b8962048f2e85e932
22026-08-28T15:45:24Z 76de41dbf946e42cc64f5a5bfff71102f8824898059ba0c017bb351fb5c07133
32026-09-04T14:34:06Z fd8637f985164970f7cc993049f90635461c4a9255de5a00703f48c337f65022

Full disclosure on GW1: the file above was regenerated on 22 August under a newer model version, from inputs snapshotted before the deadline — the model was chosen after Friday's matches, the inputs were not. Its own freeze note says so. From GW2 the freeze is mechanical and gated: generated, hashed and locked before the deadline, with rewriting refused by the tooling afterward. We marked our own record as qualified rather than pretending otherwise; that is the standard this page holds.

FPL Now is an unaffiliated fan app, not endorsed by the Premier League or FPL. Projections use betting-market odds as one transparent input. The live matchday experience is free forever; the decision engine is $6.99 for the year, or $0.99 a month.