How the model works
Most fantasy football sites hand you a number and ask you to trust it. This page is the whole method — every input, every assumption, and the places it is likely to be wrong.
The short version
For each player, we estimate how many minutes he will play, how often he creates and scores per 90 minutes on the pitch, how likely his team is to keep a clean sheet, how often he racks up defensive actions and bonus points — then we adjust all of it for who he is playing and whether it is home or away. Add the pieces together and you get a projected score for one fixture. Repeat across the next five gameweeks.
Nothing in that chain is a secret ingredient. It is all built from data Fantasy Premier League publishes itself.
Every component
1. Expected minutes
This is the single biggest driver, and the one most models get quietly wrong. A brilliant player who plays 25 minutes is worth less than a dull one who plays 90.
We start from a player's total minutes divided by the number of games his club has played, which needs no assumptions at all. Two adjustments follow. A player who has started every available game is floored at 80 minutes, so one early substitution does not drag a nailed-on starter below the threshold. A player who has started at least 70% of games is floored at 68. Then we scale by availability: FPL's own chance-of-playing percentage where one is published, otherwise 100% for an available player, 50% for a doubt, and zero for anyone injured, suspended or out of the squad.
Appearance points fall out of that. The chance of playing at all rises to certainty by about 25 expected minutes; the chance of reaching the 60-minute mark that earns the second point scales from 20 minutes up to 70.
2. Goals and assists
We lean on expected goals and expected assists per 90 rather than actual output, because they stabilise far faster. Four games of finishing is noise; four games of chance quality is signal.
But not entirely. A genuinely elite finisher does beat his expected goals over time, and a model that never believes him will under-rate him all season. So we blend in actual output with a weight that grows with sample size — around 16% at 300 minutes, rising to a hard ceiling of 35% at 900 minutes. Raw output never takes over.
2a. How much evidence is behind a number
A season total tells you nothing about its shape, and that turns out to matter more than almost anything else. Consider a midfielder with 2.25 expected goals from three matches. That is a rate of 0.75 a game — among the very best in the league. Now consider that 2.02 of it arrived in a single afternoon, and the other two games produced 0.08 and 0.15 between them. His scores were 2, 23, 2.
Both players have identical totals. They are not remotely the same bet, and a model working from season aggregates cannot tell them apart. Ours could not either, until it started reading every gameweek individually rather than the summary.
We measure the spread with the participation ratio — the sum squared over the sum of squares. Three equal games score 3.0. One game carrying 90% of the output scores about 1.2, which is the honest reading: one good match, not three. That figure, not the raw count of games, is what decides how far a player's rate is pulled toward the baseline for his position.
Zero is treated differently, and deliberately. Three quiet games are not an absence of evidence — they are real evidence that a player does not threaten, and they count in full. The discount applies only where there is output to be lopsided about.
Every card shows the actual recent scores for this reason. An average of nine looks the same whether it came from 9, 9, 9 or from 2, 23, 2, and you should be able to see which one you are looking at without taking our word for it.
3. Clean sheets and goals conceded
We compute each club's expected goals conceded per 90 from its own players' figures, weighted by minutes and ignoring anyone under 180 minutes, whose numbers are too noisy to mean anything. That gives a team-level defensive rating rather than an individual one.
Then — and this is the part most models skip — we regress that rating toward the league average by how much football has actually been played. Three games tells you very little. Early this season one side showed an expected-goals-conceded rate of 0.29 while the next best was 1.00, a gap no defence in the history of the league has sustained. Taken at face value it implied a 76% chance of a clean sheet and filled the top of every table with that one club's defenders.
So each club's rate starts life as six games of league-average defending and earns its way out. After three games the prior carries two thirds of the weight; by midseason it is a light touch; by the run-in it is almost nothing. The same side above now reads at 35% — high, as it should be, but a number you could defend. No club is ever credited with form the season has not yet earned, and a team with a freakishly bad opening is not written off for it either.
Adjust for the fixture, and the probability of a clean sheet is the Poisson probability of conceding zero. The goals-conceded deduction — one point per two conceded, for keepers and defenders — is the expected value of that same distribution rather than a flat guess.
4. Defensive contributions
Defenders earn two points for ten clearances, blocks, interceptions and tackles. Midfielders and forwards need twelve, and recoveries count toward their total. This rule reshaped what a cheap defender is worth, and any model that ignores it is working from an outdated game.
We compute each player's rate of the relevant actions per 90 from the raw components rather than a summary field, then take the Poisson probability of clearing his threshold. Defensive actions rise slightly against stronger opponents — more time without the ball — so we scale by fixture difficulty, damped to 40% of the full effect.
5. Bonus points
Bonus is the noisiest thing in fantasy football, and we treat it with suspicion. We map a player's BPS per 90 onto an expected bonus figure with a deliberately flat curve: nothing below about 12 BPS per 90, rising to roughly 1.15 points per 90 for the very highest scorers. It is an estimate, not a forecast of who tops the chart in any given match.
6. Fixture difficulty
We start from FPL's own published difficulty ratings, which run from 1 to 5. Attacking output scales from ×1.36 against the easiest opposition down to ×0.66 against the hardest. Goals conceded moves the other way, from ×0.58 to ×1.60. Home advantage then adds 6% to attacking output and takes 7% off goals conceded, and away matches get the reverse.
But those five ratings are set by hand before a ball is kicked, and they cannot tell two fixtures apart once both are rated the same. In Gameweek 4 they gave Chelsea at home to Hull and Liverpool at home to Forest an identical 2 — while our own numbers had Forest among the meanest defences in the division and Hull at dead average.
So the attacking adjustment is a 50/50 blend of FPL's rating and what the opponent's defence is actually conceding, measured as expected goals against per 90. A defence leaking 20% more than the league average lifts the attackers facing it, whatever number FPL put next to the fixture. The ratio is capped either side so that one thrashing in September cannot dominate a projection, and the clean-sheet side of the model has always worked this way — the attacking side simply did not, which was inconsistent.
What it handles that simpler tools do not
- Double gameweeks. A club with two fixtures in one gameweek gets both projected and added, so a double shows up as roughly double.
- Blank gameweeks. A club with no fixture scores zero for that week, and the player's summary says so explicitly rather than silently averaging it away.
- The new defensive points. Cheap high-volume defenders are properly valued rather than treated as clean-sheet lottery tickets.
- Availability. An injured player projects zero, not a reduced average.
Where it will be wrong
This matters more than the parts that work, so here it is plainly.
- It cannot read a press conference. A manager saying a player is "not quite ready" moves nothing until FPL updates that player's status. Rotation for a midweek European tie is invisible to it.
- Fixture difficulty is half static. FPL sets its ratings before the season and does not move them with form, so a promoted side playing well is still rated as a promoted side. We correct for this with measured goals conceded, but only half — and early in the season that measurement is itself pulled hard toward the league average, which means no defence can yet look as bad, or as good, as it really is.
- Early season, everything is thin. Four games of data is not much. Expect the projections to move around considerably until roughly ten games in.
- Bonus and clean sheets are lumpy. Both are modelled as probabilities. Over a season the expected values are reasonable; in any single gameweek they will look badly wrong in individual cases.
- Defensive contributions are modelled as if actions arrive at random. They do not. A side pinned in its own half gives its defenders far more to do than the same side a goal up at home, so the real spread is wider than the maths here assumes. That makes us slightly too cautious about high-volume defenders reaching the threshold in the games where they were always going to be busy.
- It does not know about new signings. A player with no Premier League minutes has nothing to project from, and will be under-rated until he plays.
Use it as one input among several. It is a good way to find players you had not considered and to sanity-check a transfer you have already half-decided on. It is not an oracle, and anyone selling you one is selling you something.
Why we show FPL's own number too
Every player page shows our projection for the next gameweek alongside FPL's own published expected-points figure. They use different methods and will often disagree. Where they diverge sharply, that is worth a second look before you commit a transfer — and it keeps us honest about the fact that ours is one estimate, not the truth.
Where the data comes from
All player, fixture and price data comes from the publicly available Fantasy Premier League game. We fetch it on our own servers, recompute the projections roughly every five minutes, and serve the same result to everyone. Nothing about your visit is sent to the Premier League, and we do not need your FPL login for anything — the squad analyser reads only the team information FPL already publishes for every manager.
Who makes this
Deadline FPL is an independent site built by a fan, funded by advertising so that it can stay free. It has no relationship with the Premier League, Fantasy Premier League, or any club. If you spot something wrong — and in a model this size there will be something — please tell us.