You have seen the number flash up on a broadcast graphic: "xG: 2.3 to 0.8" while the actual score reads 0-1. Somebody in the studio nods gravely, someone else calls it a robbery, and you are left wondering what exactly got measured here. Expected Goals, or xG, is one of the most useful stats football has adopted in the last decade, and also one of the most casually misquoted.
This piece walks through what xG actually counts, how the number gets built, where it runs out of road, and how to read it without either dismissing it as nonsense or treating it like a verdict from the football gods. By the end you should be able to look at a post-match xG chart and know which parts of the story it is telling you, and which parts it is staying quiet about.
What Expected Goals Measures
Expected Goals estimates the probability that a given shot results in a goal, based on the historical outcomes of thousands of shots with similar characteristics. A shot with an xG of 0.35 means that, across a large sample of comparable shots, roughly 35 out of 100 ended up in the net. Add up every shot's xG value across a match and you get a team's total xG for that game.
The key word is chance quality, not chance quantity. A team can register nine shots and post a lower xG total than an opponent who managed four, if those four were closer, more central, or came from better setups. xG is trying to answer "how good were the scoring opportunities," not "how much did this team attack."
It also does not care who actually scored. If a striker skies a tap-in from two yards, the shot still carries a high xG value, because the model is rating the chance, not the execution. This is the part that trips people up most often: xG measures opportunity, not finishing quality.
- xG per shot: the probability value for one attempt, usually between 0.01 and 0.95.
- Team xG: the sum of every shot's value across the match.
- xGA (Expected Goals Against): the same total calculated for shots faced, used as a defensive proxy.
- Non-penalty xG: the same stat with penalties stripped out, since penalties are near-automatic and can skew a low-shot game.
How xG Is Calculated
Every publicly available xG model is built the same basic way: take a large historical dataset of shots (some models use hundreds of thousands, others millions), tag each one with a set of variables, and train a statistical model to predict the likelihood of a goal from those variables. The most common inputs are:
- Distance from goal, measured in metres or yards from the shot location to the centre of the goal line.
- Angle to goal, since a shot from a tight angle near the byline is harder to convert than one from a central position, even at the same distance.
- Body part used, with headers generally scoring lower than the same-distance shot taken with a foot.
- Assist type, distinguishing a through ball, a cross, a cutback, or a rebound, since each changes the defender's positioning and the shooter's balance.
- Whether it was a big chance, such as a one-on-one with the keeper or an open header from six yards.
Different providers, Opta, StatsBomb, and others, weight these variables slightly differently and sometimes add extras like defender proximity or goalkeeper position at the moment of the shot. That is why you will occasionally see two broadcasters quote different xG totals for the same match. Neither is wrong; they are running different models trained on different shot samples with different variable sets.
One practical example: a shot from 12 yards, straight on, taken with the strong foot after a through ball, might carry an xG of around 0.30 to 0.40. Move that same shot to a tight angle near the six-yard box's edge, and the value can drop to 0.10 or lower, even though it is physically closer to goal. Angle often matters more than raw distance.
What xG Does Not Tell You
xG is a chance-quality tool, not a full match report, and it has clear blind spots that get glossed over in punditry.
It does not measure buildup play quality on its own. A team can pass beautifully for 25 phases and still generate a shot from a poor angle, which the model will correctly rate low, even though the approach play looked sharp. xG rates the shot, not the twelve passes that preceded it (some newer models, like xG Buildup or xT, attempt to address this separately, but standard xG does not).
It does not account for weather, pitch condition, fatigue in extra time, or a goalkeeper having an outstanding individual game. A 0.20 xG shot saved brilliantly and a 0.20 xG shot that trickles wide both register the same "expected" value, but the goalkeeper's contribution is invisible to the raw number.
It also treats every shot as an independent event, which is a simplification. In reality, a team pushing hard for a winning goal in the 88th minute might take rushed, lower-quality shots that inflate shot count without meaningfully inflating danger, and the model has no way to flag "this side is now playing with urgency and taking worse decisions under pressure."
Finally, xG does not adjust for scoreline context in real time. A team leading 2-0 with 15 minutes left may deliberately sit back and concede possession, letting the opponent rack up shots from distance. Their xG against will climb, but it reflects game management as much as defensive failure.
Reading an xG Chart After a Match
Post-match xG charts, sometimes called shot maps or xG timelines, plot each shot on a pitch diagram or along a running match clock, with the size of each dot usually corresponding to the xG value of that attempt. Here is a simple way to read one:
- Check the total first. If the final scoreline and the xG totals roughly match, for example a 2-1 win with an xG line of 2.1 to 1.3, the game likely played out close to how it looked.
- Look for a single large dot. A 0.75 or higher xG value on the losing side often points to one glaring miss, a missed penalty, an open goal, or a one-on-one squandered, rather than a pattern of bad luck across the match.
- Count the small dots. A cluster of shots valued at 0.03 to 0.08 each suggests speculative efforts from distance, the kind that pad a shot count without representing real danger.
- Note the running xG line over time. A team's xG climbing steadily in the final 20 minutes while trailing usually reflects a late push, which can mean genuine improvement or simply an opponent sitting deeper.
As an illustration: imagine a match report showing Team A with 1.8 xG from 14 shots and Team B with 1.9 xG from just 6 shots, and the final score is 1-1. That tells you Team B created fewer chances but higher-quality ones, likely including at least one clear opening, while Team A worked more volume from moderate positions. Both approaches produced similar expected outcomes, and the draw looks like a fair reflection of the balance of play.
Common Misuses of the Stat
The most frequent misuse is treating xG as a substitute for the scoreline rather than a companion to it. "They deserved to win on xG" is a reasonable observation about chance quality; it is not a claim that the result was somehow illegitimate. Football keeps the actual score for a reason.
A second common error is comparing xG totals across different leagues or seasons without adjusting for context. A 1.5 average xG per game in a defensively organised league may represent stronger attacking output than the same number in a league known for chaotic, high-shot-count football, because the underlying shot-quality baseline differs.
A third mistake is using a single match's xG to judge a player's finishing ability. One striker scoring three goals from a combined 0.9 xG in one game is not proof of elite finishing; it might be a hot night. Reliable finishing signals, positive or negative, usually need a sample of a full season or more, since even strong finishers have wildly variable single-game outcomes.
| Misuse | Why it is misleading |
|---|---|
| "xG proves the result was unfair" | xG ignores goalkeeping, finishing skill, and randomness inherent to any single match |
| Comparing raw xG across leagues | Different playing styles and shot volumes shift the baseline |
| Judging a striker from one match's xG gap | Sample size of one game is too small to say anything reliable about skill |
| Ignoring game-state effects | Winning teams often "allow" xG late by sitting deep, which is not the same as being outplayed |
Common mistakes
Beyond the misuses above, a few smaller habits are worth flagging. Quoting xG to two decimal places as if it were exact, when the underlying model carries its own margin of error, gives a false sense of precision. Treating post-shot models (which factor in where the shot actually travelled, sometimes called xGOT or Expected Goals on Target) as identical to standard pre-shot xG is another mix-up; they answer slightly different questions and are not interchangeable in the same sentence.
Also worth watching: assuming every provider's model agrees. If two outlets show a 0.4 xG gap for the same match, that is normal model variance, not evidence one of them made an error.
How to Use xG Alongside What You See
The most reliable approach treats xG as one input among several, not a final ruling. Watch the match first, form an impression of who created the better openings, then check the xG chart to see whether the numbers support or challenge that impression. Disagreement between your eyes and the chart is often the most interesting part, since it usually points to a specific moment worth rewatching, a wonder save, a sitter missed, a deflection.
For following a team across a season, look at cumulative xG and xGA trends over 8 to 10 matches rather than single-game figures. A team consistently outperforming its xG for or against over that stretch is either finishing exceptionally well, defending with an outstanding goalkeeper, or riding a run that may not hold. None of those explanations is obvious from one match alone.
If you want to go one step further, compare a team's shot count to its xG total: a high shot count with modest xG suggests low-quality volume, while a low shot count with high xG suggests efficient, high-value chance creation. Neither pattern is automatically better; it depends on whether the team is chasing a game or controlling one.
Used this way, xG becomes a second set of eyes rather than a scoreboard override. Watch the game, note what struck you, check the numbers, and let the two conversations inform each other rather than compete for the final word.

