How it works
The app has a model, and you have opinions. This is how the two get combined, and how it keeps score of whether yours are any good.
1The model predicts
Every player gets an expected-points (xP) figure for the next gameweek and for the horizon you pick. It's built from their own per-90 rates (goals, assists, goals conceded, saves, defensive contributions), blended toward a position average when they haven't played enough minutes to trust their own numbers yet, then adjusted for how hard each upcoming fixture is.
Fixture difficulty comes from expected goals: what each opponent creates and concedes per match. Goals themselves are too small a sample to trust: a side scoring six from twelve xG isn't a good attack in form, it's an average one riding its luck, and a model built on goals keeps calling their next fixture easy long after it stops being. Early in a season, before there's enough to go on, the rate is pulled toward the league average.
Home and away come from three seasons of results. Almost all of that is the home advantage every club gets, because a club's own split turns out not to persist: how much a side beat or trailed the league's home advantage one season barely predicts the next, and for goals conceded it predicts nothing at all. So each club is nudged from the league figure by however much its own record has earned, which is a little for attacking and nothing for defending. Left unshrunk it made a trip to Bournemouth one of the hardest fixtures in the division on the strength of a coincidence.
A promoted club has no record in this division, so its rating comes from its Championship season, marked down by what promotion has actually cost the clubs that went up in the last three years, then pulled toward what a promoted side typically manages. Their own record decides where they rank among themselves; it doesn't get to claim they will keep conceding at Championship rates.
It's arithmetic, not an AI guess: the same inputs always produce the same number, and expanding any player row shows exactly which components it came from. Bonus points are modelled from each player's BPS rate against a curve fitted to the current season, rather than guessed from form. Players on penalties or set-pieces carry that duty in their number, flagged as PEN, FK or COR on the row.
2You disagree
Type what you actually think in plain English: “Gibbs-White's nailed to start but I'm worried they rest him in the cups”. That gets read into structured claims: which player, which part of their game, which direction, how confident you sound, and how many gameweeks you mean it for.
This is the only place an AI model is used, and only for reading your sentence. It never computes a number. Everything downstream is arithmetic you can check.
3Your read moves the number
Each claim moves the specific component it's about. A minutes read hits appearance points hardest, and everything minutes drive a little. How far it moves depends on how confident you sounded:
A read also fades. It carries a horizon, say three gameweeks, and its pull tapers as that horizon burns down. Once it's elapsed it contributes exactly nothing; a hunch from six weeks ago stops bending today's numbers.
4But it can never beat a fact
The caps are the most important thing in the app. However many reads you stack on one player, and however certain you sound, the adjustment is bounded:
And hard facts win outright. If a player is injured, suspended, or unavailable, no amount of bullishness lifts their xP. The optimism is discarded, not capped. Pessimism still lands, because agreeing that an injured player will score less isn't a risk. So a read can move a number a long way, and it is meant to. What it can never do is talk a player the data has ruled out back into your team.
5Disagreements get surfaced
When your read moves a player by more than 0.5 xP, and by enough of a share that it isn't rounding noise, that player is flagged as a conviction point. Open their row and you get both numbers side by side, a plain-English account of what moved and why, and the model's counter-argument where it has one.
You also get the rank framing: at or under 10% ownership a player is a differential, where being right actually moves your rank; at or over 40% they're a template hold, where being right mostly keeps pace. The “holding / changed my mind” toggle changes no number; it just records where you stood, for step 6.
6Then you get marked
Once a read's gameweeks finish and the results are verified, it gets scored against what actually happened, and scored on its own terms. A minutes read is judged on minutes played, an attacking read on returns, a clean-sheet read on goals conceded. Hit or miss, with the evidence shown.
That builds into your record: hit rate overall, by category, and by confidence, which is the real calibration test. If your “certain” calls land no more often than your hunches, the confidence label isn't carrying signal, and the app will say so.
7And the app learns who to trust
Your record per category feeds back into step 3. Reads in a category you're demonstrably good at pull harder; ones in a category running at a coin-flip get damped. The weight is shown on your record page next to the record that earned it.
Weights move slowly on purpose. A few lucky calls shouldn't double your influence, so the observed rate is pulled toward a coin-flip until there's real evidence behind it. And weights only ever change how much of the allowance a category gets; they never raise the caps in step 4.
Is the model any good?
Fair question, and one most tools do not answer. The model is walked forward over three completed seasons: it is shown only what was known at each gameweek, asked to project the next five, and scored against what actually happened. The same test is run on rules you could apply in your head, on identical stops and identical players, so the only thing that changes between rows is the number being predicted.
The measure that matters is rank correlation, because ranking players against each other within a gameweek is what the product actually does with the figure. Higher is better.
Two of those are worth sitting with. Form is the worst rule on the board, below the price list: ranking players by what they have just been scoring forecasts the next five gameweeks worse than ignoring results entirely and reading the price tag. That is why nothing in this app weights its projection by recent form, however much the instinct says otherwise.
And the edge over the market is thinner than the top line suggests. Take the twenty players the model ranks highest and they return 20.85 points each on average; take the twenty most expensive and they return 20.52. Expensive players score, and the model's real advantage is across the whole field rather than at the very top, which is where transfers are decided.
Separately, the whole model is projected across a completed season and compared with what every player really scored. It came out 0.4 points light on a mean of 94.7, and within three points in every position, so the scale is right rather than right on average with errors cancelling.
Fixture difficulty
Difficulty comes from expected goals: what each opponent creates and concedes per match, adjusted for home and away from three seasons of results. It is the same input step 1 uses, so the ticker and your squad page can never disagree about a fixture.
Goals alone are too small a sample to rank on. A side scoring six from twelve xG isn't an attack in form, it's an average one riding its luck, and a model built on goals keeps calling their next fixture easy long after it stops being.
Each side is held toward the league average until it has played 8 matches, so two loud weeks in August don't swing the grid. Before a season starts there is nothing to measure at all, so the ranking carries last season's rates forward, weighted by how much of the squad actually played them. Promoted sides have no record in this division, so theirs is projected from their Championship season and marked down by what going up has cost recently promoted clubs. All of it gives way to this season's xG once matches exist.
A side is rated on its recent football rather than its whole season. Match by match, older games count for less, halving every 4 gameweeks. Measured against what clubs actually went on to do over their next five matches, that is 13% more accurate on attack and 10% on defence than a flat season average, in every season tested.
A change of manager forgets faster still. Football played under someone who has left keeps half its weight, not none: the squad, the injuries and most of what a club is do not change with the manager, and a side rated on the two matches since an appointment swings wildly on one good afternoon. Half was measured too, and it beats both throwing the history away and ignoring the change. Early in a season a club that has just changed is also held closer to the league average, because it genuinely is less known.
Attacking ease ranks by how weak the opponent's defence is; defensive ease by how weak their attack is. They are different questions and they return different orders. A blank gameweek counts as the hardest thing on the board, because no fixture is worse than a hard one.
Transfers
The buy list is ranked on your adjusted xP, the figure steps 3 and 7 have already moved, so two managers selling the same player get different lists. It is filtered to the position you're selling, to players you don't already own, to what you can afford once the sale clears, and to the 3-per-club limit.
Your budget is shown as approximate for a reason. Selling prices here are current market values, but FPL returns only half the profit on a player who has risen since you bought him, and your real selling price is only available from your logged-in FPL account, which this app does not have.
A hit costs 4 points, and whether it is worth taking is not the horizon gain minus 4. That comparison is against never making the move, which isn't the choice you face. The real alternative is making the same move next week with the free transfer you are about to get, and every gameweek after this one is common to both and cancels out. So a hit only buys you this gameweek, and it is worth taking only when this gameweek's gain beats 4. That is a much harder bar, and it is why saving the transfer is usually right.
Free transfers are assigned to the moves with the most to gain this week, since deferring a move costs exactly that week's gain. Not modelled: banking a transfer for a wildcard or a planned move, which raises the bar further, price changes either way, and anything that shifts either player's situation in the meantime.
The shortlist under it answers a different question. The buy list is about one deadline and is thrown away after it; the shortlist keeps the players you are watching between deadlines and says what has happened to them. Each row carries what he returned in his last five appearances, with the opponent on each one, whether he is creating more or less than his own season rate, which way his price has moved since August, and the fixture run ahead of him, drawn the same way so the two read across as one timeline. None of it is a recommendation: the projection is the only opinion on the row, and it is the same projection every other page here shows.
8What it won't do
It won't decide anything for you. It ranks transfer candidates and captaincy options and shows its working, but it doesn't make the move. It won't tell you what other managers are doing beyond raw ownership. It doesn't know about press conferences, and it can't see anything the FPL API doesn't publish.
It is not affiliated with the Premier League or the official FPL app, and the value figure on your record page measures forecast accuracy, meaning how much closer your reads moved the prediction to reality. It is not points won.