MatchAnalyzr is in beta - lock in your early bird discount for good, today.

View pricing

Knowledge Base

What is xG (Expected Goals)?

Expected Goals is the single most important metric in modern football analytics - and once you understand it, you'll never watch a match the same way again.

The Simple Idea Behind a Powerful Number

Imagine you could press rewind on every shot in football history - thousands of penalties, headers, long-range efforts, tap-ins - and ask: how often does a shot like this end up in the back of the net? That's exactly what Expected Goals (xG) does. It assigns every shot a probability value between 0 and 1, representing the likelihood that it results in a goal. A value of 0 means the shot is essentially impossible. A value of 1 means it's an almost certain goal. In practice, most shots land somewhere in between. A routine penalty earns an xG of around 0.76 - meaning if you took the exact same penalty in the exact same conditions 100 times, you'd expect it to go in roughly 76 times. A strike from 35 yards out, at a tight angle, under pressure? That might come in at just 0.03. The beauty of xG is that it strips away luck. A team that hits the post three times and loses 1-0 may actually have outperformed their opponent in xG. The final score tells you what happened. xG tells you what should have happened - and often predicts what will happen next.

How xG Is Calculated

xG models are built by feeding enormous datasets of historical shots into machine learning algorithms. Analysts at companies like Opta and StatsBomb have catalogued millions of shots with their outcomes - goal or no goal - and identified the factors that most strongly determine success.

Shot Location and Distance

The single biggest factor is where the shot is taken from. A shot from six yards out in the centre of the box has an xG of around 0.5-0.6. A shot from the same position at 20 yards drops to 0.1-0.15. Distance to goal and angle to goal are the two most foundational inputs in any xG model - they explain the majority of the variance between shots.

Body Part

Headers are statistically much harder to score from than shots with the foot - even from identical positions. A headed attempt from six yards out carries an xG of roughly 0.45, compared to 0.55-0.60 with a right or left foot. Weak-foot shots may receive a slight reduction compared to strong-foot attempts, though this varies by model.

Type of Assist and Build-Up

How did the chance come about? A shot after a cut-back pass to the edge of the six-yard box is far more likely to go in than a shot after a long punt forward. The assist type - cross, through ball, set piece, dribble, or no touch - meaningfully changes the probability. A shot directly from a corner is nearly impossible (xG ≈ 0.02-0.03); a shot after a pull-back from the byline is significantly more dangerous (xG ≈ 0.3-0.5 depending on position).

Game State and Defensive Pressure

Some sophisticated models also account for game state (is the shot taken while winning, drawing, or losing?), defensive pressure (how many defenders are between the shooter and goal?), and goalkeeper positioning. These factors can nudge probabilities up or down but are generally secondary to location and body part.

A Brief History of xG

Expected Goals as a concept traces back to academic work in the 1990s, but it entered the mainstream of football analytics around 2012-2014. The pioneering analyst Sam Green published one of the first public xG models. Shortly after, analysts like Michael Caley, Colin Trainor, and Constantinos Chappas developed their own versions independently. Opta, the major sports data provider, built one of the earliest commercial xG models and licensed it to broadcasters and clubs. StatsBomb, founded in 2017, pushed the methodology further with open-source data for research and a more detailed shot model that accounts for goalkeeper positioning. Today, every major data provider - Wyscout, InStat, Tracab - offers xG as a standard metric. Broadcasters caught on quickly. Sky Sports began displaying xG on UK broadcasts in 2017. It's now shown routinely in post-match graphics, punditry, and even live during matches on major European football coverage.

See xG in Action: League xG Table

MatchAnalyzr's League xG Table widget shows every team's xG For, xG Against, npxG (non-penalty xG), and Expected Points (xPTS) - alongside their actual points. The over/underperformance column instantly flags which teams are riding their luck and which are due a turnaround. Available for all Premium users across 25+ leagues.

Reading xG Values: A Practical Guide

Knowing the scale helps you make sense of xG in match context. Here are the benchmarks worth internalising:

Per-Shot Benchmarks

0.02-0.05: Speculative long shots, tight-angle attempts, shots under heavy pressure. These rarely go in and shouldn't be celebrated when they do - that's finishing luck. 0.10-0.15: Shots from outside the box with reasonable access to goal. Not high quality, but not negligible. 0.20-0.35: Shots from inside the box with moderate space and angle. These represent good attacking situations. 0.35-0.55: Clear chances - often one-on-one situations, shots from 8-12 yards with minimal pressure. 0.55-0.80: Big chances. A penalty sits at ~0.76. A tap-in from two yards is ~0.90. These are chances that should more often than not result in goals. 0.80-1.00: Near-certain goals. Empty net situations, shots from the goal line. If these don't go in, something unusual happened.

Per-Match xG Totals

In a typical professional football match, each team might generate between 0.8 and 2.0 xG. A match ending 1-1 xG might actually have been quite tightly contested. A team generating 2.5 xG and conceding 0.5 xG was dominant - regardless of the scoreline. Elite teams in top leagues typically average 1.6-2.0 xG per game over a full season, while relegation-threatened sides often hover around 0.8-1.1.

xG vs. Actual Goals: Over- and Underperformance

This is where xG becomes genuinely fascinating. A player or team's actual goals versus their accumulated xG tells a powerful story about finishing quality, luck, and sustainability. A striker who scores 20 goals from 12 xG is overperforming massively. That's either elite finishing, extraordinary luck - or some combination of both. The key question analysts ask is: which one is it, and how long can it last? Research consistently shows that finishing overperformance tends to regress toward xG over time. This is because xG captures the underlying quality of chances, and the laws of large numbers tend to pull results toward their expected values. Conversely, a striker with 18 xG who has scored only 10 goals is underperforming. Perhaps they're shooting under pressure, making poor decisions in the final moment, or genuinely going through a rough patch. Over a full season, this gap often narrows - but some players genuinely are better or worse finishers than average, and truly elite models try to account for this with separate 'post-shot xG' metrics.

Leicester's 2015/16 Fairytale - and What xG Shows

Leicester City's Premier League title in 2015/16 is the most dramatic case study in xG overperformance in football history. Throughout that season, Leicester's xG numbers were solid - but not anywhere near title-winning territory on a pure expected basis. They accumulated xG figures suggesting they were a strong mid-table team, yet Jamie Vardy and Riyad Mahrez converted at extraordinary rates, and goalkeeper Kasper Schmeichel conceded far below the team's xGA. Statisticians flagged this early in the season. Many correctly predicted that some regression was likely - and indeed, Leicester finished a very ordinary 12th the following year. This doesn't diminish the achievement, but it illustrates how xG can tell you when something magical but statistically unusual is happening.

The Remontada: PSG vs Barcelona 6-1

Few matches better illustrate xG than Barcelona's astonishing 6-1 comeback against PSG in the 2017 Champions League. PSG arrived at the Camp Nou holding a 4-0 first-leg lead. The xG model for the second leg showed Barcelona creating chances consistent with a big win - but the sheer magnitude of the actual result (including three goals in the final 6 minutes) was far beyond what any model would assign high probability. The match xG showed Barcelona dominant but the scoreline was a significant outlier even on those numbers. It was one of football's great statistical anomalies.

Team xG: Measuring Attacking and Defensive Quality

xG really shines when you zoom out from individual matches to whole seasons. Over a large sample of games, xG becomes one of the most reliable predictors of future performance - more reliable than actual goals scored or conceded. Liverpool under Jürgen Klopp were perhaps the most dominant team in Europe by xG metrics for several consecutive seasons from 2018 to 2022. Even in seasons where results fluctuated, Liverpool's underlying shot quality and chance creation remained consistently elite. Their pressing game didn't just win the ball - it created high-quality chances and suppressed high-quality chances against them. xG made this visible in numbers. When analysing a team's xG over a season, look at: **xG For (xGF):** Total expected goals generated. High xGF means the team creates quality chances consistently. This reflects the quality of the attack and the system's ability to generate threatening positions. **xG Against (xGA):** Total expected goals conceded in terms of shot quality allowed. Low xGA means the defence limits opponents to poor-quality efforts - long shots, headers from distance, shots under pressure. A team conceding 40 shots per game but all from 30 yards has a very low xGA despite the shot volume. **xG Difference (xGD):** xGF minus xGA. The single best summary number for a team's overall quality. Historically, xGD correlates more strongly with future points than actual goal difference over a full season.

Track Your Team's xG Trend

The Team xG Trend widget plots rolling xG and xGA across the last 10 matches as a line chart. You can watch in real time as a team's underlying performance improves or deteriorates - often weeks before the results table reflects it. It's one of the most predictive widgets in MatchAnalyzr's dashboard.

Defensive xG: The Side Nobody Talks About Enough

Most football discussion focuses on attacking xG - goals scored and chances created. But xGA is equally important, and arguably under-discussed. A team that concedes 1.0 xGA per game is defending very well. They may allow shots, but they're restricting opponents to low-quality positions. A team conceding 1.8 xGA per game has a structural defensive problem - they're allowing opponents into dangerous areas habitually. The difference between a goalkeeper's actual goals conceded and the xGA they faced is called 'Goals Saved Above Expected' (GSAxE or PSxG+/-). A goalkeeper who consistently concedes fewer goals than the xGA they face is performing above expectation. This is how analysts identify genuinely elite goalkeepers versus average ones who happen to play for strong defensive teams.

Limitations of xG: What It Doesn't Capture

xG is a powerful tool, but it's not a crystal ball. Understanding its limitations makes you a better analyst.

Model Differences

Not all xG models are equal. Opta's xG and StatsBomb's xG will give you slightly different numbers for the same shot because they're built on different datasets and use different features. A shot that Opta calls 0.25 xG might be 0.21 in StatsBomb's model. This is why you should never compare raw xG numbers across different data providers - always stick to one source for consistency.

Individual Skill Isn't Fully Captured

Basic xG models treat all shooters identically - they only care about the position and context of the shot, not who took it. In reality, Erling Haaland finishing from 12 yards is fundamentally different from a struggling striker in the same position. Post-shot xG models try to address this by incorporating where on the goal the ball was placed, but even these don't fully capture individual skill. Think of xG as a baseline expectation, not a ceiling.

Small Sample Sizes Are Noisy

xG from a single match is interesting context - but it's noisy. A team generating 2.5 xG in one game tells you they had a dominant performance that day. But three matches of 0.5 xG might just be bad luck in chance creation, or it might signal a real structural problem. You need at least 8-10 matches before season-level xG conclusions start to become statistically meaningful.

Set Pieces Are Complicated

xG models struggle somewhat with set pieces. The quality of delivery, the movement of runners, the specific defensive setup - these are hard to capture without detailed positional data. Some providers, like StatsBomb, have developed separate set piece xG models. Basic models sometimes underestimate or overestimate corner and free kick danger.

Common Misconceptions About xG

As xG has gone mainstream, some misunderstandings have spread. Let's clear them up.

'xG says my team deserved to win'

xG doesn't deal in 'deserve.' A team that generated 2.0 xG and lost 1-0 created better chances - but the other team won. Football is played in actual reality, and results matter. xG helps you understand the underlying quality of a performance, but it doesn't retroactively change outcomes. A team that wins regularly while underperforming xG is achieving something, even if their underlying quality suggests the streak won't last.

'Higher xG always means better team'

Over a full season, yes - xGD is one of the best predictors of team quality. But in a single game, a team can generate high xG through many mediocre shots rather than a few clear-cut ones. A team with 1.5 xG from 18 shots spread across the pitch may actually have created worse football than one generating 1.2 xG from 8 high-quality positions. Shot volume without quality isn't the same as genuine dominance.

'If a player underperforms xG, they're a bad finisher'

Not necessarily - at least not after a small sample. Finishing variance is huge in football. Even elite strikers can go 10 matches scoring below their xG due to natural variance. Statistical noise at the individual level is significant. Look at multi-season xG trends before drawing conclusions about finishing quality.

Player xG Trend: Who's Finishing Well?

MatchAnalyzr's Player xG Trend widget compares a player's accumulated xG against their actual goals match by match. The gap between the two lines tells the story: a player consistently above their xG line is finishing well above expectation; below it, they're either unlucky or struggling in front of goal. Track players on your watchlist across all supported leagues.

Using xG for Match Prediction and Season Analysis

This is where xG becomes actionable - not just descriptive but predictive. For **match prediction**, combining pre-match xG models (based on historical team performance, form, and head-to-head data) with current season xG trends gives you a more nuanced picture than simple form tables. A team might be on a three-game winning streak but consistently creating only 0.8 xG per match - that winning run may be built on shaky foundations. For **season analysis**, tracking a team's rolling xG over the course of a campaign reveals shape and momentum that raw league tables hide. A team whose rolling 10-match xG trend is improving but hasn't yet converted in results is a team poised for a good run. A team whose results have outrun their xG accumulation by a wide margin is a candidate for a correction. For **transfer analysis**, xG per 90 minutes helps evaluate strikers across different contexts. A striker who generates 0.45 xG per 90 at a mid-table club may be creating higher-quality chances than one scoring more goals but accumulating 0.6 xG per 90 at an elite club with far better service.

Frequently Asked Questions

What does an xG of 1.0 mean?
An xG of 1.0 would represent a near-certain goal - essentially an empty net or a shot from the goal line. In practice, you'll rarely see a single shot with xG above 0.90. When a team accumulates 1.0 xG across multiple shots in a match, it means the quality of their combined chances suggests one goal was the expected outcome.
Why do different websites show different xG numbers?
Because different data providers use different xG models. Opta, StatsBomb, and others each build their models from their own shot databases and use different input features. The numbers will be broadly similar but not identical. Always compare xG figures from the same source to keep things consistent - mixing providers is like using different scales to weigh something.
Can xG predict who will win a match?
xG helps estimate probabilities but doesn't determine outcomes. Pre-match xG models can tell you that a match between two teams with certain xG profiles has, say, a 55% chance of a home win - but football has high inherent variance. Over a full season, teams tend to finish near where their cumulative xG suggested, but any individual match can produce any result.
Is a high xG always good for a team?
High xG For (xGF) is generally positive - it means the team is creating quality chances. But xG Against matters just as much. A team with 2.0 xGF and 1.9 xGA might look good offensively but has a marginal net advantage. The meaningful number is xG Difference (xGD): xGF minus xGA. Positive xGD over many matches indicates a genuinely strong team.
What is npxG and how is it different from xG?
npxG stands for non-penalty expected goals. It removes penalties from the xG calculation because penalties have a fixed high probability (~0.76) regardless of how well or poorly a team is playing. A team that wins three penalties in a match and scores all three will have high xG - but npxG strips those out to reveal the quality of open-play chance creation. It's often considered a purer measure of attacking quality.

Your football. Your analysis data. Your dashboards.

Turn raw data into real insights with MatchAnalyzr. Build your own personalised football dashboard with the leagues, teams and players you actually follow.

MatchAnalyzr app screenshot