Graded every gameweek

We mark our own homework, in public

Every projection this site makes is written down before kick-off, scored against what actually happened, and measured against the Premier League's own forecast. If we are not beating it, this page says so.

The scoreboard

This season, so far

The one idea

Almost every fantasy model fails the same way

It treats a small sample as settled fact. A striker scores twice on the opening day and becomes a two-goal-a-game striker. A keeper makes five saves and is projected for five every week. A £12.0m midfielder has one quiet afternoon and drops below a £5.5m one.

EasyFPL refuses that. Every rate it uses is pulled back toward a prior — a sensible expectation for a player of that type, at that price, in that role — and released toward his own numbers only as fast as he earns it. Three good games move a projection a little. Fifteen move it a lot.

How a projection is built

Five terms, in the order they matter

01

Minutes gate everything else

A player who does not play scores nothing, so every other term is scaled by how likely he is to start and how long he lasts. Minutes alone cannot tell a starter from a substitute — ninety minutes across one start and ninety across three cameos look identical, and the second player is not a 92% starter. The official data publishes a starts count, so the model uses that rate directly and lets minutes per game refine it.

p_start = w × (starts / games) + (1 − w) × minutes_signal,   w = min(1, games / 3)
02

Attacking returns, regressed

Goals and assists come from expected goals and expected assists per ninety, not from what has gone in. Finishing is noisy over ten matches and xG is not, so the model leans on the chances a player gets and the quality of them, then pulls that toward the prior for his position and price until the sample is big enough to trust.

03

Clean sheets are a distribution, not a guess

A clean sheet is simply no goals conceded, which makes it the zero bucket of a Poisson distribution at the expected goals against for that specific match. The expected goals against comes from the opponent model — your club's defensive rating at that venue against that opponent's attack at the opposite venue, blended with what has actually been conceded once there is a sample worth blending.

P(clean sheet) = e^(−xGA)
04

Bonus runs on a slower clock

Bonus gets a ten-match window where everything else gets five, for two reasons. It is lumpier — a player takes all three or none, where expected goals accrues in fractions. And it is partly double-counted: the bonus system is driven by the clean sheets, saves, goals and assists the model has already projected, so leaning on past bonus pays a good game twice. On the fast clock, one three-bonus night was enough to make a £4.5m goalkeeper the highest-projecting keeper in the game.

05

The opponent, at that venue

Every fixture is rated both ways: what your club creates against what the opponent concedes, home and away kept separate because they are not the same team. That is what turns a five-gameweek fixture run into a number rather than a colour.

End to end

Where a projection comes from, and where it goes

Four inputs, one number, and a loop back through reality. The dashed return is the part most models leave out.

Official FPL data rebuilt every 4 hours Minutes will he play, how long Attacking returns regressed to a prior Clean sheets a distribution, not a guess Bonus & the opponent venue kept separate Projected points per player, five weeks out Locked at the deadline Graded against reality what was wrong goes back into the model

Nothing in the chain is hand-adjusted after the fact. That is the only thing that makes the last box worth reading.

How it is scored

A number is only as good as what it is compared with

Anyone can publish a projection. The question is whether it beats what you already had for free — so that is what we measure against.

Locked before kick-off

Every projection is written down at the deadline and never touched again. Grading a forecast you were allowed to edit afterwards measures nothing at all.

Against two real baselines

Scored beside FPL's own ep_next and beside points-per-game. Beating nothing is easy; beating the number already on the official site is the test.

Split by who you would pick

Reported for every player, for likely starters, and for players managers actually own — an average flattered by deep-bench nobodies is not the one you play with.

The Lineup Wizard, with a projected points figure for the eleven and a breakdown of which part of the game each point came from.

The same numbers, in the product. Every projection on this screen opens into the terms above — and where the points come from is that breakdown, summed across your eleven.

Honestly

What it cannot do

A model that claims no weaknesses is hiding them. These are ours.

It cannot read a press conference

Rotation a manager has decided but not announced is invisible to it. That is what the news feed and the fitness flags are for.

It cannot price a one-off

A penalty taker changing, a new signing's first start, a tactical switch — all are sample sizes of zero, and a prior is the best it can offer.

It cannot make football predictable

A good projection beaten by a bad week is not a broken model. It is one round. The scoreboard above is measured over a season for that reason.

The inputs

Official data, and nothing else

Everything comes from the official Fantasy Premier League API. No scraping, no private feed, nothing typed in by hand. The core dataset is rebuilt every four hours — timed to catch overnight price changes and Thursday and Friday press conferences — and read live while matches are on, so the pitch and the league tables reflect what is happening now. Every page's footer says how long ago that was.

Read the whole method

Nothing here is a black box. The model, every input and the known weaknesses are written out in full.