๐Ÿ”ง Behind the Build โฑ๏ธ 2 min read

Inside the Algorithm: How our FPL AI predicts points

No black box. A component-by-component walkthrough of how every projected-points number on this site is produced, and what the model refuses to claim.

ยท Describes the projection model in scripts/pitch-snapshot.js

What the projection actually does

Every projected-points figure on this site comes from one function. It is worth being specific about what it does, because "AI" is doing a lot of unearned work in most FPL tools.

1. Minutes first

Nothing else matters if a player does not play. The model estimates a probability of starting from minutes per appearance, then blends a starter's minutes with a substitute's cameo. A player with a fitness doubt has that probability scaled by his published chance of playing.

2. Attacking returns, regressed

Per-90 rates from a small sample are wild โ€” one goal in one appearance is a huge xG/90. The model regresses each player's rate toward his position's average until there is roughly five full matches of evidence, then lets his own numbers stand alone.

3. Clean sheets from the defence, not the fixture alone

Clean-sheet probability comes from goals conceded and a defensive rating, adjusted by fixture difficulty, and is capped at both ends. No defence is a certainty and none is hopeless.

4. Then the scoring rules

ComponentHow it is derived
AppearanceStart probability against 2 points for 60 minutes, 1 otherwise
AttackRegressed xG and xA per 90, scaled by expected minutes and fixture
Clean sheetClean-sheet probability by position value, scaled by start probability
SavesSaves per 90 divided by 3, for goalkeepers
BonusBonus per game, capped
ConcededGoals conceded against the chance of no clean sheet, as a negative

What it deliberately does not do

The model uses FPL's own ep_next only as a floor while a player has little history, and only for the immediate gameweek. Three gameweeks out it is ignored entirely โ€” it is an estimate for the next match and means nothing beyond it.

The projection is calibrated against FPL's published average entry score. It is a model, not a prophecy, and the numbers it produces are only as good as the sample behind them. Early in a season that sample is small, which is why this site says "too early to rank" rather than inventing a ranking.
Every figure in this piece was read from the FPL dataset at the moment it was published, and has not been edited since.