Expected Goals (xG) Explained: How to Use the Metric and When to Ignore It
Expected Goals is the most important number in modern soccer that most fans still read wrong. The xG model assigns a probability to every shot — how likely it is to produce a goal based on where it was taken, how it was assisted, and what the defensive setup looked like. A penalty is worth about 0.76 xG. A header from a corner is worth roughly 0.06. The number itself is simple. The mistakes people make with it are not.
This is the guide that fixes those mistakes. Not just what expected goals means, but how to actually use it — and, just as important, when to ignore it.
How the Expected Goals Model Works
Every xG model is a classification algorithm — typically logistic regression or gradient-boosted trees — trained on hundreds of thousands of historical shots. For each shot, the model asks: given everything we know about shots like this one, how often did they result in goals?
The key inputs:
- Shot location: Distance and angle to the center of the goal. This is the dominant variable — a shot from 6 yards out at the center is worth roughly 0.40 xG; the same shot from 25 yards at a tight angle might be 0.03.
- Body part: Headers are harder to control than feet. A headed chance from the same location as a foot-strike will have a lower xG value.
- Type of assist: A through-ball that splits the defense creates a higher-quality chance than a cutback that arrives with a defender closing. Crosses, set pieces, and rebounds each carry different modifiers.
- Defensive context: Advanced models factor in defender positioning and goalkeeper location. A shot with two defenders between the ball and the goal is worth less than the same shot with a clear sightline.
The output is a number between 0.00 (no chance of scoring) and 1.00 (certain goal). An xG of 0.15 means that, across all similar shots in the historical database, roughly 15% resulted in goals.
A team’s match xG is the sum of every shot’s individual xG. If a team takes 12 shots with xG values of 0.08, 0.22, 0.05, 0.44, and so on, the total tells you how many goals a statistically average team would have scored with those exact chances.
| xG Value | What It Looks Like | Conversion Rate |
|---|---|---|
| 0.76 | Penalty kick | ~76% |
| 0.35–0.45 | One-on-one with goalkeeper, central, 8 yards | ~40% |
| 0.10–0.15 | Shot from edge of box, some pressure | ~12% |
| 0.03–0.06 | Long-range effort or tight-angle header | ~4% |
Source: xG probability ranges based on FBRef/StatsBomb xG models and Hudl/Opta baseline data, 2024–2026.
The Three Mistakes Everyone Makes With xG
Mistake 1: Treating Single-Match xG as Truth
A team generates 2.8 xG and loses 1-0. The reflexive reaction: “They were robbed.” Maybe. But single-match xG has enormous variance. A team with 2.8 xG might have had 15 low-quality shots (0.05 each = 0.75 total) plus one penalty and one breakaway. That looks like 2.8 xG on the total, but the actual chance profile is heavily front-loaded into two big moments, not sustained dominance.
The fix: use rolling averages over 5–10 matches. A team that consistently generates 2.0+ xG per game over a month is genuinely creating quality chances. A team that hits 3.0 xG once and 0.8 four other times is volatile, not good.
Mistake 2: Ignoring xG Against (xGA)
Most casual analysis focuses on xG for — how many goals a team “should” score. But xG against (xGA) — how many goals a team “should” concede — is equally important and arguably more predictive of long-term results.
At the 2026 World Cup, Spain conceded just one goal in seven matches while reaching the final. Their xGA was among the lowest in the tournament because they combined possession control (Rodri completed 655 accurate passes leading into the final, the most in the tournament) with aggressive pressing that limited opponents to low-quality shots from bad positions. The goal they conceded to Belgium in the quarter-final was one of the few high-quality chances any team created against them all tournament.
Mistake 3: Assuming xG Measures the Finisher
xG measures the chance, not the shooter. A 0.08 xG shot from 25 yards is worth 0.08 regardless of whether Lionel Messi or a League Two striker is taking it. This is a feature, not a bug — it isolates chance creation from finishing ability.
But it means you cannot use xG alone to evaluate strikers. A clinical finisher who consistently outperforms his xG (scoring more goals than the model expects) isn’t “lucky” — he’s genuinely better at finishing than the average player the model assumes. Tracking the gap between actual goals and xG over a full season is how you identify elite finishers versus average ones riding hot streaks.

How to Use xG for Betting and Analysis
xG becomes genuinely powerful when you combine it with market data. Here’s the framework:
-
Identify xG vs. results divergence. Find teams whose actual goal difference is significantly higher or lower than their xG difference over a 10+ match window. The market prices based on results. xG tells you whether those results are sustainable.
-
Favor xGA over xG for. Defensive performance (xGA) is stickier than attacking performance (xG for) across a season. A team with a great xGA tends to maintain it; a team with a great xG for is more likely to regress because finishing variance is high.
-
Use xG for over/under markets, not match results. xG is better at predicting how many total goals a match will produce than who will win. Matches between two low-xGA teams will reliably produce fewer goals. Matches between two high-xG-for teams will produce more. The over/under market often lags behind these trends.
-
Never use single-match xG for next-game predictions. Always use rolling windows. A team that generated 0.4 xG last game but averages 1.6 xG over the last 10 is not suddenly bad — they had one off night.
What xG Cannot Tell You
No metric is complete, and xG has real limitations worth understanding:
- It doesn’t capture pre-shot movement. The runs, decoys, and off-ball positioning that create chances aren’t reflected in xG. Two teams might both generate 1.5 xG, but one did it through brilliant team movement and the other through speculative long-range shots.
- Set-piece xG is noisy. Corner kicks and free kicks produce low individual xG values, but teams that are elite at set pieces (through coaching, height, or rehearsed routines) can consistently beat their set-piece xG. The model treats all corners roughly the same; reality doesn’t.
- It’s only as good as the data it trains on. Different providers (StatsBomb, Opta, FBRef) use different underlying models with different inputs. StatsBomb includes freeze-frame data showing defender positions; simpler models do not. This means the same shot can have different xG values depending on the source. When comparing xG across sources, consistency matters more than precision.
The Real Takeaway
Expected goals is the best tool available for separating what happened in a soccer match from what should have happened based on the quality of chances created. It’s not a crystal ball. It doesn’t replace watching the game. But for anyone analyzing performance, evaluating teams, or finding edges in betting markets, xG — used correctly, over meaningful sample sizes, and with awareness of its limitations — is the starting point for every serious conversation about soccer analytics in 2026.
The teams that consistently generate high xG and suppress opponent xGA are the ones that win titles. The bettors who track the gap between xG and actual results are the ones who find value. The analysts who treat single-match xG as gospel are the ones who get burned. Know the difference.
Frequently Asked Questions
What does xG of 1.5 mean?
An xG of 1.5 means that, based on the quality and location of all shots taken, a statistically average team would be expected to score 1.5 goals from those chances. It does not mean a team “should” have scored exactly 1.5 goals — it is a probability-weighted estimate across all shots in the match.
Is xG accurate?
Over large sample sizes (a full season or more), xG is strongly correlated with actual goals scored. In single matches, it can diverge significantly from the actual result due to finishing quality, goalkeeper performance, and random variance. This is why analysts recommend using rolling averages rather than single-game xG figures.
Why do different sites show different xG numbers?
Different data providers (StatsBomb, Opta, Hudl, FBRef) use different statistical models with different input variables. StatsBomb, for example, includes positional freeze-frame data showing where every defender and the goalkeeper were positioned at the moment of the shot, which produces different values than simpler models that only use shot location and angle.