SoccerDream AI
English Español Português العربية Tiếng Việt ไทย Bahasa Indonesia Deutsch Français Italiano
SoccerDream AI/Football analytics guides/Expected goals explained: what xG measures and what it hides

Expected goals explained: what xG measures and what it hides

xG is the most cited and most misused number in football analytics. It measures the quality of chances created, not the likelihood of a result.

Updated November 6, 2026 Read 6 min
Short answer

Expected goals assigns each shot a probability of scoring based on its location, angle, body part and assist type, then sums those probabilities for a team. It is a description of chance quality, not a forecast of the final score.

What xG actually computes

xG is a sum of per-shot probabilities, built from historical shot outcomes with similar characteristics.

Every shot is described by features — distance, angle to goal, whether it was a header, whether it came from a cross, whether it followed a rebound, how many defenders were between shooter and goal. A model trained on hundreds of thousands of historical shots maps those features to a scoring probability. Add up a team's shots and you get its xG for the match.

The scale is intuitive: 1.0 xG means the chances created were, on average, worth one goal. A team with 2.4 xG and one goal scored underperformed its chances; a team with 0.3 xG and one goal scored got lucky.

Shot typeTypical xGReading
Penalty0.76Fixed by definition
Central box, close range0.25 – 0.45High-value chance
Edge of box, open play0.05 – 0.10Speculative
Header from a cross, 12m0.08 – 0.15Depends heavily on delivery
Outside the box0.02 – 0.04Low-probability, high-variance

Why xG is not a prediction

xG describes what already happened. Turning it into a forecast requires a separate step.

This is the single most common error in football content. A pundit says a team "deserved" three points because it had 2.8 xG. But xG is measured after the shots were taken. It tells you the chances were good; it does not tell you the team will create them again next week, because the opponent will be different.

To forecast, you need to model how xG is generated: which attacking and defensive processes produce it, how repeatable those processes are, and how the next opponent suppresses them. That is a different model, and it is why mature prediction systems treat xG as an input feature rather than as an answer.

Three situations where xG misleads

xG is least reliable precisely where narrative is loudest: small samples, game states and defensive intent.

1. Small samples. Over three matches, xG is mostly noise. A side can post 0.4 xG per game for a month and still be creating the same chances as before; the finishing variance simply ran cold. Three matches is not a signal.

2. Game state. A team leading 2-0 at half time will often stop attacking and concede territory deliberately. Its second-half xG collapses, but that is a choice, not a decline in quality. Reading raw match xG without adjusting for game state punishes teams for winning.

3. Model differences. Providers publish different xG values for the same match, sometimes by 0.5 or more, because their feature sets and training samples differ. Quoting "the xG" as if it were a physical constant is a category error.

How to use it well: track xG over a rolling window of at least ten matches, separate home and away, and always compare it against the same team's actual goals rather than in isolation.

Frequently asked questions

Is xG a good predictor of future results?

It is a better predictor than goals scored over short windows, because it is less affected by finishing variance. But it is an input, not a forecast. To predict a fixture you need to model how the two teams' attacking and defensive processes interact, not just repeat the last month's xG.

Why do different sites show different xG for the same match?

Because each provider trains its own model on its own shot dataset with its own features. Differences in how they treat deflections, blocked shots and rebounds produce visible gaps. There is no single authoritative xG.

Does high xG mean a team will score next week?

Not on its own. High xG shows the chances were created; whether they will be recreated depends on the opponent, the venue and the team's available players. Sustained high xG over ten or more games is meaningful; a single match is not.

See the model output for tonight's fixtures

Every match page shows the inputs, the reasoning and the confidence level — so you can audit the call instead of trusting a tip.

Open today's analysis

Keep reading