The metrics, explained
Every number on FPL Value is either published by Fantasy Premier League or derived from FPL's own data with a formula shown on this page. Nothing is a black box. Here is what each one means, how it's calculated, and when it will mislead you.
How FPL scores a player
Everything below is built on the FPL points system, so it's worth having it to hand. A player earns 1 for playing up to 60 minutes and 2 for 60 or more. Goals are worth 6 for goalkeepers and defenders, 5 for midfielders and 4 for forwards. An assist is 3 for everyone. A clean sheet is 4 for goalkeepers and defenders, 1 for midfielders and nothing for forwards, and only counts if the player was on the pitch for 60 minutes. Goalkeepers and defenders lose 1 for every two goals their team concedes. Goalkeepers also get 1 per three saves and 5 for a penalty save. Defensive contribution pays 2 when a defender reaches 10 combined clearances, blocks, interceptions and tackles in a match, or a midfielder or forward reaches 12 including recoveries. Then there are the usual deductions for cards, own goals and missed penalties, and up to 3 bonus points per match for the top performers on the Bonus Points System.
The reason this matters: two of those components, appearance and bonus, are earned almost regardless of what a player does, while goals, assists and clean sheets are the ones that separate good picks from bad. Several metrics below exist to strip out the first group and focus on the second.
Points per game PPG
The most basic rate stat and still the most useful single number for comparing players who play similar minutes. It answers "when this player is on the pitch, what do I get?" FPL publishes its own version on the site; ours is recomputed for whatever gameweek window and venue you've selected on the dashboard, so you can ask for PPG over the last six weeks, or PPG at home only.
Its weakness is that a one-minute cameo counts as a game. A player who comes on for the final minute and scores has a PPG of 1.0 for that match, which drags his average down; conversely a sub who scores from the bench in ten minutes looks like a superstar on PPG. Per-90 figures (below) fix this at the cost of exaggerating players with tiny minutes.
Points per million PPM
How many points a player has returned for every million spent. It's the simplest value measure and the one most people mean when they say a player is "good value". A £4.0m defender on 20 points (5.0 PPM) has done more for your budget than a £15.5m forward on 15 (0.97 PPM), even though you'd obviously rather have the forward's ceiling.
PPM has two blind spots. It's a total, not a rate, so it favours players who have simply played more games. And it doesn't account for the points everyone gets for showing up: a £4.0m defender who plays 90 minutes every week and does nothing else collects 2 points a game, or 0.5 PPM per match, purely for existing. That baseline is what VAPM removes.
Examples on this page use data after GW2 of 2026/27 and will drift from the live dashboard.
Value added per million VAPM
VAPM is points per million with the appearance points removed. Subtracting 2 from a player's points per game leaves only what he actively earned — goals, assists, clean sheets, bonus, saves — and dividing by price tells you how much of that active return you're getting per million. It was popularised on r/FantasyPL as a way to find the cheap players who genuinely contribute rather than just fill a bench slot.
The subtraction changes the picture more than you'd expect. A £4.5m defender averaging 3.0 PPG looks respectable on PPM (0.67 per game per million) but has a VAPM of just 0.22: two-thirds of his points were for turning up. Meanwhile a premium on 8.0 PPG at £12.5m has a VAPM of 0.48, so despite the price he's adding more than twice as much per million above baseline. That is the comparison VAPM is designed to make.
Two practical notes. VAPM can be negative: a player averaging under 2 PPG is costing you relative to a blank. And because it's built on PPG, it inherits PPG's small-sample problem — after two gameweeks a single haul dominates. Use the minimum-minutes filter on the dashboard (90 or 180 early on, 450 or more once the season settles) before reading anything into a VAPM ranking. When the dashboard's metric basis is set to per 90, VAPM uses points per 90 instead of PPG.
Expected stats
FPL publishes Opta's expected-goals family for every player and every match. These are estimates of the quality of chances rather than the outcome — they answer "how often would a typical player score from these situations?" — which makes them the best predictor we have of what happens next, because finishing luck evens out and chance creation tends to persist.
xG, xA and xGI expected goals · assists · involvements
xG sums the probability of each shot a player took being a goal, based on shot location, angle, body part, type of assist and defensive pressure. A tap-in from two yards is worth about 0.9 xG; a speculative 30-yarder about 0.03. xA does the same for passes: the xG of the shot that followed each pass a player made. xGI adds the two and is the number to look at for attacking returns, since FPL rewards both.
The dashboard shows totals for the selected window, or per game or per 90 depending on the basis toggle. Per 90 is the fairest way to compare players with different minutes, and 0.5 xGI per 90 is roughly the line between a good attacking asset and an elite one. In the detail panel for each player you'll also see xGI against actual goals plus assists — a big positive gap means he's been finishing above his chances and is due a quieter spell; a negative gap means the reverse.
xGC expected goals conceded
The defensive equivalent: the total xG of the shots a player's team faced while he was on the pitch. It's the right lens for goalkeepers and defenders because clean sheets are noisy — a team can keep three clean sheets while conceding 4.0 xGC and it will catch up with them. Lower is better, and the dashboard shows it per 90 in the player detail. Under about 1.0 xGC per 90 is a defence you want a piece of; over 1.6 and clean sheets are a lottery.
Expected points xPts
FPL's own "expected points" figure (ep_next in its data) is, on inspection, just the player's form with a small fixture adjustment — for 94% of players it's identical to form. So FPL Value calculates its own. The idea is simple: take the points a player actually scored in each match and replace the four components that depend on finishing and defensive luck with what the underlying chances say they should have been. Everything else stays as scored.
− (goals × goal value + assists × 3 + clean sheet × CS value − ⌊conceded ÷ 2⌋)
+ (xG × goal value + xA × 3 + P(clean sheet) × CS value − xGC ÷ 2)
where goal value and clean-sheet value are the position-specific points from the scoring table above, the conceded deduction applies only to goalkeepers and defenders, and the probability of a clean sheet is estimated from xGC as e−xGC (the chance of zero goals if goals arrive at the expected rate) for players who played 60 minutes. Appearance points, bonus, saves, cards, penalties and defensive-contribution points are taken exactly as scored. Doing this per match and then summing over the window is what the dashboard calls xPts.
| Component | Actual | Expected |
|---|---|---|
| Goals | goals scored × 6 / 5 / 4 | xG × 6 / 5 / 4 |
| Assists | assists × 3 | xA × 3 |
| Clean sheet | 4 / 1 / 0 if kept and 60+ mins | e−xGC × 4 / 1 / 0 if 60+ mins |
| Conceded (GK, DEF) | −1 per 2 goals | −xGC ÷ 2 |
| Appearance, bonus, saves, cards, DefCon | as scored (not modelled) | |
What xPts is for: it tells you how many points a player's performances deserved. Two players on 25 points after four games can have very different xPts — one earned it through 3.5 xGI and steady involvement, the other through two 30-yard screamers and 0.6 xGI. The second player's 25 points are real and count, but they tell you little about his next four games. His xPts does.
Bonus points are left as scored even though they partly follow goals and assists, so a player's Δ slightly understates luck in both directions. Leaving them is more honest than inventing a bonus model.
Over- and under-performance Δ = points − xPts
The gap between what a player scored and what the model says he should have. A large positive Δ is a warning sign for anyone thinking of buying: the returns have been real, but they rest on finishing or clean-sheet luck that tends not to repeat. A large negative Δ is the more interesting case — a player generating chances and getting nothing for it is exactly who you want to buy before his price and ownership catch up.
The dashboard's Δ column and the "Most over expected" card use the same figure, and both respect the gameweek window, so you can check whether an over-performance is a two-week blip or a season-long pattern (some players — elite finishers, set-piece takers — do sustain a positive Δ, and the window view is how you tell them apart from the lucky ones).
ICT, DefCon and form
ICT index is FPL's composite of Influence (decisive actions in the match), Creativity (chance creation) and Threat (goal threat). It's a reasonable proxy for involvement when you don't want to read three columns, but it's opaque and unit-less, so use it for sorting rather than for reasoning. DefCon is the raw count of defensive actions — clearances, blocks, interceptions and tackles for defenders, plus recoveries for midfielders and forwards — that feeds the 2-point defensive contribution bonus. The per-game view is the useful one: a defender averaging 10+ is banking those 2 points most weeks, which at £4.5m is a quietly large return. Form is FPL's own figure, average points over the last 30 days; it's shown on the site for reference but the window-based PPG does the same job with control over the period.
Windows, per game and per 90
Every metric on the dashboard is computed over the gameweek window you select — the whole season, the last 3, 6 or 10 gameweeks, or a custom range — and can be restricted to home or away matches. This is worth using deliberately. Season totals reward availability; a six-week window catches a change in role or a new manager; the home/away split shows the players whose returns are heavily venue-dependent, which matters when you're deciding on a captain.
The basis toggle changes how counting stats are expressed. Total is the raw sum over the window. Per game divides by appearances (matches with at least one minute) and is the right basis for VAPM and for comparing regular starters. Per 90 divides by minutes and scales to a full match, which is the fair comparison between starters and substitutes but will produce absurd numbers for players with 20 minutes — always pair it with a minimum-minutes filter.
When not to trust the numbers
Small samples. Everything on this page is a rate, and rates from two or three games are mostly noise. Set a minimum-minutes filter of at least 180 before ranking anything, and treat any early-season list as a set of names to watch rather than a set of transfers to make.
Expected stats are about the chance, not the player. A deliberately elite finisher will outscore his xG year after year; xG models don't know who is shooting. Persistent positive Δ over a whole season is usually skill, not luck. Persistent positive Δ over three weeks usually isn't.
Penalties. A penalty is worth about 0.78 xG, so penalty takers carry structurally higher xG and xPts. That's correct — they really will score more — but it means comparing a taker's xGI to a non-taker's tells you as much about set-piece duties as about open play.
Fixtures aren't in the model. xPts is a measure of what a player's performances were worth, not a forecast of next week. For that, combine it with the fixture planner: a player with strong underlying numbers and a soft run of fixtures is the combination you're looking for.
Price changes. VAPM and PPM use the current price, not what you paid or what he cost at the time of the points. A player who has risen £0.5m looks slightly worse value than he was for the people who bought him early — which is the right way round if you're deciding whether to buy now.
Source data: the official Fantasy Premier League API, refreshed weekly by the fplproject pipeline. Expected stats are Opta's, as published by FPL. xPts and Δ are FPL Value's own calculations as described above.