how it works
Player projections ← back

What this thing
actually does

The short version

It predicts how many points every Premier League player will score, then works out the best moves for your team.

The predictions come from simulating each gameweek five thousand times, using a model of how good each team is, how much of their team's attacking output each player takes, and how likely he is to be on the pitch. The transfers, captain and chip timing come from an optimiser that searches every legal combination rather than guessing.

Nothing here is bought in from another site. Every number is built from public data and graded, in public, against what actually happened.

5,000simulations per gameweek
114,000player-match records behind the fit
25,000+player-gameweeks it was tested on
1.023calibration slope (1.000 is perfect)

How it works

1. How good is each team, in this fixture

Every club gets an attacking and defensive rating, fitted from years of results and expected goals. Recent matches count for more than old ones. That gives an expected number of goals for both sides of every fixture.

Those numbers are then blended with the bookmaker market. Betting odds absorb team news and money faster than any model does, so ignoring them is stubborn. The blend weight wasn't chosen by taste: it was fitted by replaying past seasons, and it lands at about half and half. Early in a season the market gets more say, because the model has barely any current-season evidence to work with.

2. What share of it does each player take

A player isn't modelled by his raw numbers. He's modelled by the share of his team's chances he's involved in. A striker with 0.6 expected goals per game at Manchester City and one with 0.6 at Burnley are not the same player, and they won't score at the same rate after a transfer or a change in form.

Shares survive a move between clubs. Raw rates don't. Every share is pulled toward what's normal for that position, in proportion to how little evidence backs it, so nobody out-ranks a proven player on the strength of three good games.

3. Will he actually play

This is the part that decides most of it. A forward who doesn't start is worth nothing, however good he is.

Start probability is worked out from a player's own record, his price relative to his team-mates, what the crowd thinks (ownership is the closest thing to a free team-news feed before a deadline), and FPL's own injury flags. Then it's normalised against the shape teams actually field: one keeper, about four defenders, about five midfielders, about one forward. Managers pick a formation, not eleven individuals, and a model that forgets this ends up expecting clubs to field one and a half defenders.

Team news is checked every five minutes. If a player gets flagged, the projections rebuild.

4. Simulate the week, thousands of times

Rather than multiplying averages together, the model plays out each gameweek three thousand times: who starts, who scores, who keeps a clean sheet, who takes the bonus.

The simulations are correlated, which matters more than it sounds. If Arsenal keep a clean sheet, they keep it for every Arsenal defender at once. Your captain hauling and your midfielder assisting him are the same event. That's why the site can show you a range and a chance of a haul, instead of a single number that quietly assumes every player is independent.

5. Turn it into a decision

The solver is a proper mixed-integer optimiser, not a shortlist and a hunch. It handles the budget, the three-per-club rule, formations, free transfers, points hits and chips at the same time, and it returns a plan that is provably the best one available from the players it considered.

It plans over several gameweeks, so it will refuse a transfer that helps this week and hurts the next three. A banked free transfer is treated as worth something, because it is.

How good is it, honestly?

The model is tested by rebuilding it week by week through a completed season from the match results available before each deadline, and scoring it against what happened. Across 25,750 player-gameweeks:

What that test can and cannot see. Each week is rebuilt from match history alone, so nothing about the future leaks into it — and nothing about the team news does either. Every player in it is graded as though he was fit and available, including the ones who were injured, suspended or simply left out. The model you actually use reads the team news; this test does not. The figures above are therefore a measurement of the projection engine rather than of the whole product.

We have since run the same test against the real pre-deadline injury lists, and we are deliberately not quoting the average error it produces. That number falls a long way, and almost all of the fall is bookkeeping: once the model is told a player was ruled out it projects him at nearly nothing, he scored nothing, and the error on him vanishes. Not recommending injured players is a better product — it is the whole point of reading the team news — but it is not evidence that the model got better at football, and printing it beside the figures above would invite exactly that reading. The harder number is the one published here.

The comparison did show one real thing, and it is about the test rather than the model. Because the reconstruction never rules anybody out, it never passes anybody's minutes on either: a club still fields eleven players, and the test quietly under-rates the ones who actually took the field. So the published figures are not uniformly pessimistic. They are the error of a model wearing a blindfold, which is a different thing, and the only kind of error we can measure the same way every season.

A correlation at this level sounds low until you think about what single-gameweek football is. Whether a shot goes in is mostly luck. No model will ever explain much more than this, and one that claimed to would be fitting noise. What matters for picking a squad is that the numbers are calibrated and in the right order, which is what the slope and the ranking measure.

The Model page in the app shows all of this live, including where the model is currently wrong.

Common questions

Why does it sometimes take a while to load?

Because it's recalculating, not fetching. When something changes — an injury, a price change, a match finishing — the model throws away its old answers and runs the simulations again. That takes about forty seconds. Once it's done, every page is instant until the next change.

The alternative is serving you numbers that were correct yesterday. A projection built before this morning's injury news is worse than a slow one.

How often does it update?

Team news and injury flags every five minutes. Live scores every five minutes during matches, so a finished game feeds back into the model within minutes of the whistle. Prices, ownership and full match history four times a day. Bookmaker odds every few hours.

Why is your projection different from another site's?

Usually minutes, not scoring. Most disagreements about a player turn out to be disagreements about whether he'll start, which is a judgement about a manager rather than a calculation about football.

Sites with paid analysts have a real edge here: press conferences and leaked line-ups. There's no model that beats a human watching a Friday press conference. What you get here instead is every assumption written down and gradeable.

Why is it recommending someone almost nobody owns?

Because it doesn't know or care what's popular. The optimiser maximises expected points under your constraints. If a £4.5m defender nobody owns is genuinely the best use of that slot, that's what it will say.

Sometimes it's right and it's an edge. Sometimes it means the model likes someone more than it should. The player page shows exactly which components his points come from, so you can decide whether you believe it.

What am I actually looking at? xPts, xMins, floor and ceiling.

xPts is expected points: the average of five thousand simulated gameweeks. xMins is expected minutes, which folds in the chance he doesn't start at all. Floor and ceiling are the 10th and 90th percentiles of those simulations — a realistic bad week and a realistic good one.

Two players with the same xPts can be very different bets. That's the whole reason for showing a range.

What's free and what isn't?

Free, with nothing more than an email: every player's projection, the fixture difficulty pages, the transfer market and price pages, and the calibration page that shows how accurate the model has actually been. That's the part worth checking before you trust anything else here, so it stays open.

Membership adds the parts that act on it — the solver, draft squads, the weekly briefing, chip timing, and your own squad's analysis. It's £3.50 a month on Patreon and you can stop whenever you like.

Does it need my FPL password?

No. It never asks for it and there's nowhere to enter it. Your squad is read from FPL's public data once a gameweek has locked.

Does it handle double and blank gameweeks?

Yes. A club playing twice gets both fixtures simulated and the points added together, and a club with no fixture scores nothing rather than being quietly averaged. The chip valuations are built for exactly these weeks, which is where Bench Boost and Triple Captain earn most of their value.

Can I tell it that it's wrong?

Yes, and you should when you know something it doesn't. You can override a player's expected minutes or rule him out entirely, and every number downstream — his points, his team-mates' minutes, the whole solve — moves with it. If you heard a manager say someone's rested, that's better information than any model has.

Is it telling me what to do?

No. It's telling you what the numbers say, and showing you how confident they are and where they've been wrong before. Plenty of good FPL decisions are ones a model would talk you out of.

Back to the front page