Methodology5 min read

What 'expected goals' actually means, and what it doesn't

xG is the most cited and most misunderstood football statistic. What it is, what it is not, and how Goalsforge uses it as one input among many.

xG is the most cited and most misunderstood statistic in modern football. A probability-backed analysis treats it as one input among several, not the headline number. Here is what it does, what it does not, and how to read it.

What xG actually is

Expected goals is a per-shot probability. Each shot in a match is assigned a number between 0 and 1, representing the historical likelihood that a shot in that situation produces a goal.

A shot from six yards out, central, with no defenders between the attacker and the goal, might have an xG of 0.5. About half of all comparable shots in the training data became goals.

A long-range effort from 30 yards, with two defenders closing, might have an xG of 0.03. About three in a hundred comparable shots produced a goal.

A team’s match xG is the sum of every shot’s xG in that match. A team that registers 2.4 xG has, in aggregate, created chances that historically convert at a rate of 2.4 goals per match.

Where the number comes from

xG models are trained on large historical datasets of shots. The model takes a set of features for each shot: the location, the body part, the type of assist, the number of defenders between the shooter and the goal, the game state, sometimes the recent form of the goalkeeper. The output is a learned conditional probability that a goal was scored.

The model does not know who is shooting. It does not know the score. It does not know whether the attacker is having a good game. It only knows the geometry and the defensive pressure.

That is a feature. It is also a constraint.

What xG is useful for

xG is the cleanest available measure of chance quality. It allows us to compare the chances created by two teams in the same match, or by the same team across matches, on the same scale.

The most useful applications are aggregative. Over a season, a team’s total xG correlates strongly with its goals scored. A team with a sustained gap between goals scored and xG, positive or negative, is finishing above or below the historical rate. That gap is a real signal, though it is noisy in any single season.

xG is also useful for projection. A team averaging 1.8 xG per match over the last ten matches is more likely to keep producing than a team averaging 0.9. The model’s pre-match probability of a win can be calibrated against the underlying xG of recent matches.

What xG is not useful for

A single match is too small a sample. Twenty-five shots at an average xG of 0.08 will, on average, produce 2.0 goals. The standard deviation of that sum is roughly 1.3 goals. The actual goals scored will be somewhere in the 0.7 to 3.3 range, with non-trivial probability in either tail.

Saying a team had 2.4 xG and only scored 1, so they were unlucky, is mostly a statement about the normal distribution of goals, not a comment on the team’s finishing.

xG does not measure finishing skill on its own. A striker who consistently takes only high-xG shots will have a high xG and may still underperform it, because the model expects those shots to be converted at a high rate. A striker who takes low-xG shots but converts them at an unusual rate will have a low xG and a high conversion rate. Neither is a complete picture.

xG also cannot account for off-ball movement, defensive shape, or game management. A team can be perfectly positioned to defend a 0.15 xG shot and still concede, because shot quality does not capture what happened in the five seconds before the shot.

The most common misreading

The phrase “the team deserved to win” is often attached to an xG comparison. The team with the higher xG is said to have deserved the three points.

This is a category error. xG measures chance quality. Match outcomes integrate chance quality with finishing, goalkeeping, refereeing, set-piece execution, and luck. A team can have 2.4 xG, take 25 shots, and lose to a team that took 8 shots and scored twice. That happens regularly in elite football. The losing team did not fail to win. They lost, and the xG says the loss was somewhat unlikely.

How an analysis uses xG

A probability-backed analysis does not surface xG as a headline number. The headline is the match-outcome probability, calibrated against the recent record of both teams.

xG sits underneath that probability. It is one input among several: recent form, head-to-head, fixture congestion, home advantage, the cohort of incoming players. Each input is given weight based on its predictive value over the recent past.

The published probability is what the model actually believes about the match. The xG is the model’s reasoning. They are not the same thing, and conflating them is how readers end up thinking that a 60% home win call is the same thing as the home team having 60% of the xG.

What this means for following the model

An analysis labelled 60% home win is a probability about the entire match. It already accounts for the variance in goals that any single match produces. It is not a statement about how many goals the home team should score. It is a statement about how often the home team wins when the same fixture is replayed many times under the same conditions.

xG helps the model build that probability. It does not help the reader interpret it directly. The reader sees a number that means: in 60 out of 100 similar matches, the home team wins. That is the whole of what the analysis says. Everything else is inference.

A read is a lens for separating signal from noise. xG is the input. The probability is the output. The reader’s job is to keep them separate.

See the signal in every match.

Explore Goalsforge analyses across thirty football competitions, with a public record you can inspect after the final whistle.