You've seen "xG 1.83" everywhere - on X, on Sofascore, in an Elofoot prediction - without ever getting a clean explanation. xG (expected goals) has become the most useful and most poorly explained stat in modern football. This article gives you the full picture in 2026: a rigorous definition, how it's calculated, why it's more predictive than the raw scoreline, and the seven classic pitfalls that turn a clean stat into number soup.
The short definition
xG (expected goals) = the probability that a given chance becomes a goal, expressed between 0 and 1.
Each shot gets a score based on its quality. A penalty is worth about 0.78 xG (providers use values between 0.76 and 0.79, because a penalty goes in a little over three times in four). A shot from 30 metres is worth 0.03 xG (in 3% of the time). Add up the xG of all of a team's shots in a match and you get its total xG - how many goals that team "should have" scored given the quality of its chances.
That's it. The rest is implementation.
Why the raw scoreline lies
Picture a Real – Barça match where you read:
| Team | Goals scored | xG | Shots on target |
|---|---|---|---|
| Real | 2 | 1.4 | 4 |
| Barça | 0 | 1.7 | 7 |
Data read: Real won 2-0, but Barça created more quality chances. Conclusion: Real was lucky in this match (or its keeper was superhuman). Over the course of a season, that kind of result is rarely repeatable.
This is the classic trap of predicting by eye: you look at the score, not the quality of play. The score is the outcome of a 90-minute sample; xG is a less noisy estimate of actual performance.
How xG is actually computed
Each shot is encoded using around a dozen variables. The main ones:
| Variable | Importance | Why |
|---|---|---|
| Distance to goal | ★★★★★ | The #1 factor, by far |
| Shot angle | ★★★★ | An off-centre shot is worth less than one facing goal |
| Body part | ★★★ | Strong foot > weak foot > head > torso |
| Type of move | ★★★ | Counter-attack > built-up move > set-piece |
| Defensive pressure | ★★ | Number of defenders between shooter and goal |
| Keeper position | ★★ | Off his line, set, poorly placed |
| Previous touch | ★ | Cross, cut-back, rebound |
Opta (Stats Perform), the industry reference, trains its model on a very large history of shots. StatsBomb (now part of Hudl) includes defensive pressure from freeze frames (the position of every player at the moment of the shot). Each provider has its own model, which is why the numbers change from one site to another (see pitfall 5). Elofoot doesn't compute its own per-shot xG: we use the expected goals supplied by our data provider, aggregated by team, as the base of the prediction model (more on that below).
What xG measures well (and less well)
What xG captures very well
- The quality of chances created.
- Defensive performance (xG conceded) - often more telling than the number of goals conceded.
- A team's consistency over a season.
- Overperforming underdogs (xG lower than results = luck that won't last).
- A keeper's performance (xG conceded vs goals actually conceded).
What xG captures poorly
- The clutch factor (ability to score in tense moments).
- The exceptional finishing of an individual (finishers like Messi have beaten their xG for many seasons).
- Wonder shots (long-range strikes, lobs) that fall outside the averaged distribution.
- The psychological dimension (home crowd effect, mental fatigue).
- Own goals and defensive errors not linked to a shot.
Cumulative xG vs xG per shot - pitfall #1
This is probably the most common trap. An xG of 1.5 in a match can be:
- 30 shots at 0.05 xG each (a team peppering without quality).
- 3 shots at 0.5 xG each (a team creating 3 genuine chances).
Both give an identical cumulative xG, but the distribution is radically different. The probability of scoring at least 1 goal from 30 shots at 0.05 each is about 79%. The probability of scoring at least 1 goal from 3 shots at 0.5 each is about 88%. Not the same thing.
Takeaway: also look at the average xG/shot (average quality) on top of total xG.
The 7 common pitfalls when using xG
1. Small sample size
xG calculated over 3 matches means nothing. The sampling noise is huge. Minimum 10 matches for a robust read, 20+ for a stable one.
2. xG without opponent context
xG of 2.5 against a top-of-the-table side ≠ xG of 2.5 against the bottom side. Accounting for the opponent's strength is essential; we explain how we do it in our methodology, where xG is combined with league position and the strength of each division.
3. Confusing attacking xG with win probability
A team with xG 2.0 doesn't win systematically. You also have to look at xG conceded, and the reliance on a single shooter.
4. Ignoring the actual score
If a team leads 3-0 at half-time, its xG in the second half will mechanically drop (it's managing the game). That doesn't mean it's worse - just that the game context changed.
5. Comparing xG across sources
Opta, StatsBomb, Understat, Sofascore and FotMob all give different xG for the same match. The gap can reach ±0.3 xG. Don't mix sources within a single analysis.
6. Underestimating penalties
A penalty is worth about 0.78 xG. Over a season, 5 penalties won = +3.9 xG. That's huge and can artificially inflate a stat. Filter xG into non-penalty xG (npxG) for a fairer read of play quality.
7. Confusing xG with shots on target
A shot on target from 25 metres has a very low xG (~0.04). An off-target shot inside the box can have a high xG. The two metrics are not interchangeable.
Four practical cases where xG changes everything
Spotting an overrated team
If a club is +0.5 goals scored above its xG over 10 matches, it's probably luck. Likely trend: the next results will drift back towards the mean. Likely, not certain.
Spotting an undervalued underdog
The opposite of the above. A team at -0.5 goals below its xG has "had bad luck" - its next matches should align with the chances it creates.
Comparing two seemingly equal teams
Similar score but very different xG? The higher xG is generally more solid. The score can be an accident.
Judging a keeper
xG of shots conceded vs goals actually conceded = a measure of the keeper's overperformance. A keeper conceding 3 goals fewer than his xG conceded over 10 matches is in great form. A keeper overperforming +5 goals above his xG conceded over 30 matches probably isn't sustainable - he'll regress to his mean.
xG vs post-shot xG (xGOT)
An advanced variant you'll see more and more: post-shot xG (xGOT, or xG on target). It's the xG recalculated after the shot, taking into account where the ball is heading in the goal.
- Normal xG: "what was the probability this shot would go in, from where it was taken?"
- xGOT: "given where this shot was placed on target, what was the probability it would go in?"
xGOT measures the quality of the shot itself (the player's finishing). It's very useful for evaluating a striker. A player who turns an xG of 0.2 into an xGOT of 0.7 has produced a perfect strike (top corner, for example).
How Elofoot uses xG
At Elofoot, xG is one of the inputs, never the only one. The statistical model combines each team's recent expected goals with its form, league position, home advantage and the strength of its division to estimate how many goals each side should score in this match. Those expected goals become 1X2 probabilities, a most likely score and goals markets through the Poisson distribution. On big matches where a liquid prediction market exists, its signal is blended in too.
Every figure comes from the model; the AI only writes the text that explains the scenario. The Gold section (Pro and Elite plans) also shows the match's xG and goals projection, likely scorers, half-time and two alternative correct scores. Details in how Elofoot works.
Want to see it on a match this week? Your first full prediction is free, no card needed.
Going further
Three serious resources if you want to dig deeper:
- FBref - free and great for history; but since January 2026 it no longer publishes current-season Opta xG/xA (the Stats Perform deal ended).
- Understat - xG-focused with readable shot maps, great for beginners.
- The Opta blog - a bit technical but scientifically sourced.
xG isn't magic. But understood properly, it's the most robust tool for moving from an emotional read of a match to a quantitative one - and that's exactly what separates a fan from an analyst.