← Back to Learn

What Is xG in Soccer Betting? Expected Goals Explained

The single most important stat in modern soccer prediction — what it measures, why it beats raw goals, where to get it for free, and how to use it without overpaying for noise.

Updated May 2026 · 10 min read

1. What xG Actually Measures

xG (expected goals) is a per-shot probability. For every shot taken in a match, an xG model estimates the historical conversion rate of similar shots — based on shot location, angle to goal, defensive pressure, body part used, and shot type (header vs foot vs free kick). A tap-in from 3 yards out might have xG of 0.85; a speculative shot from 35 yards might have xG of 0.02.

Summing all xG values in a match gives total xG — a shots-quality-adjusted measure of attacking output. A team with 2.21 xG in a match created chances that, historically, would convert into 2.21 goals on average across similar circumstances. They might actually score 0, 1, 2, 3, or 4 — but the underlying attacking performance is captured by the xG number.

Real example from our data: Liverpool 4-2 Bournemouth (EPL 2025-26)

From our API-Sports historical pull of this fixture:

  • Liverpool home xG: 2.21 (created chances worth 2.2 expected goals)
  • Liverpool actual: 4 goals (overperformed by +1.79)
  • Liverpool total shots: 19 (10 on target)
  • Bournemouth away xG: 1.70
  • Bournemouth actual: 2 goals (overperformed by +0.30)

The scoreline says Liverpool won 4-2 — comfortable victory. The xG says it was much closer: 2.21 vs 1.70. Liverpool got lucky with finishing, scoring 4 goals from chances worth 2.21. Across a 10-match window, this kind of overperformance typically regresses — Liverpool is unlikely to keep converting at 180% of their expected rate. A model that incorporates this regression signal predicts future Liverpool matches more accurately than one that just uses goals.

2. Why xG Beats Raw Goals for Prediction

Goals are extremely noisy. Consider a striker who takes 4 shots per match: one tap-in (xG 0.7), one close-range header (xG 0.3), and two long-range efforts (xG 0.04 each). Their total xG per match is about 1.08. Over a single match, they might:

  • Score 0 goals (~25% of similar match profiles)
  • Score 1 goal (~45%)
  • Score 2 goals (~22%)
  • Score 3+ goals (~8%)

That variance is huge. Across 10 matches, however, the actual goal count converges toward 10 × 1.08 ≈ 10.8. A model built on goals over a 10-match window is essentially modeling the noise — it gets a random sample from that distribution. A model built on xG models the signal directly.

The empirical evidence

We tested goals-only vs xG-included Dixon-Coles models on 1,810 walk-forward EPL+Serie A fixtures spanning 28 months. Results:

ThresholdGoals-DC onlyGoals + xG ensemble
p≥0.55~64%~67%
p≥0.60~67%~70%
p≥0.65~69%~73%
p≥0.70~71%~76%

Adding xG lifts model accuracy by +3-5 percentage points across every confidence threshold, in both leagues, on 28 months of out-of-sample data. That is the single largest improvement we found across four different model architectures tested in our research.

3. xG Overperformance: The Regression Signal

xG overperformance = goals scored − expected goals. A team that has scored 15 goals over 10 matches from 12 xG has +3 overperformance. Over the next 10 matches, this team will most likely regress — they will score closer to their xG rate, which means fewer goals than recent form suggests.

This regression is one of the most exploitable patterns in soccer betting. Consider two teams entering the same week:

  • Team A: 15 goals from 12 xG over 10 matches (+3 overperformance). Recent form looks elite, market prices them as a strong favorite.
  • Team B: 8 goals from 11 xG over 10 matches (−3 underperformance). Recent form looks weak, market discounts them.

Both teams have similar underlying xG (12 vs 11), but Team A's lucky finishing has masked Team B's actual quality. A model that uses xG predicts these teams as roughly equal; a model that uses goals predicts a large gap. Over 10+ future matches, the xG model wins.

Caveat: persistent overperformance is real for elite finishers

A small number of strikers consistently overperform their xG year after year — Mohamed Salah, Erling Haaland, Lionel Messi historically, Kylian Mbappé. Their finishing quality is genuinely above league average. For these specific players (and the teams they play for), the regression signal is weaker. Sophisticated models use a Bayesian shrinkage approach: assume overperformance regresses toward zero by default, but allow specific player priors to deviate based on long-term track record.

4. Where To Get xG Data (Free and Paid)

The four authoritative xG data sources, ranked by cost and coverage:

Understat — best free option for top-5 EU leagues

Understat covers EPL, Serie A, La Liga, Bundesliga, Ligue 1, and Russian Premier League from 2014. Each match has per-shot xG with shot location, body part, and situation tags. The site does not provide an official API but the data is straightforward to scrape with a simple Python script. Most independent soccer analysts start here.

Limitations: no Champions League, Europa League, or MLS coverage. Understat's xG model is good but less sophisticated than commercial alternatives.

FBref — broader coverage, powered by StatsBomb

FBref provides match-level and player-level xG across top-5 European leagues plus MLS, Champions League, Europa League, and Eredivisie. Data is powered by StatsBomb's event-data model — generally considered the highest-quality public xG source. FBref is best for player-level analysis and for leagues Understat doesn't cover.

StatsBomb Open Data — for academic/research use

StatsBomb publishes select event-level data on GitHub, including detailed shot information that lets you compute your own xG values. Coverage includes Women's Super League, historical World Cups, and select other competitions. Useful for academic research or building your own xG model from scratch.

Opta / Stats Perform — commercial, sportsbook-grade

The xG source most professional sportsbooks and broadcasters use. Coverage spans nearly every professional league globally. API access costs thousands per month — not relevant for hobbyist bettors but is the ground truth that commercial models are typically benchmarked against. For building a production betting system, the practical alternative is API-Sports football (which we use) — it includes xG for top leagues from 2023 onwards at a fraction of Opta's cost.

5. How Soccer Prediction Models Use xG

There are three common ways xG enters a soccer prediction model:

Approach 1: Rolling xG-for and xG-against as features

The simplest approach. For each team, compute average xG-for and xG-against over the last 10 matches. Use these as features in any model (linear regression, XGBoost, neural net). The model learns that high-xG-for teams score more, and high-xG-against teams concede more.

Strength: easy to implement, works in any ML framework. Weakness: doesn't directly model goals; relies on the model to learn the relationship between xG and outcome probability.

Approach 2: Replace goals with xG in a goal-based model

For models like Dixon-Coles (bivariate Poisson on goals), substitute xG for actual goals in the likelihood. The model now fits team attack/defense ratings on smoothed expected goals rather than noisy actual goals. This is mathematically clean and reduces variance significantly.

Strength: directly models the cleaner underlying signal. Weakness: requires xG data for the entire training set, and treating xG as if it were goals can be an oversimplification.

Approach 3: Ensemble of goals-model and xG-model

Train two separate models — one on actual goals, one on xG. Average their predictions. This captures the signal from xG without losing the information present in actual goal outcomes (which include things xG misses, like crucial last-minute goals from defensive errors). Our production model uses this approach: 50/50 ensemble of goals-Dixon-Coles and xG-Dixon-Coles. See our Dixon-Coles methodology page for the full implementation details.

Strength: empirically the best of the three approaches in our walk-forward testing. Weakness: requires fitting two models instead of one, slightly more computation.

6. The Limits of xG (What It Doesn't Capture)

xG is the best single feature for soccer prediction, but it is not a complete picture. Things xG misses:

  • Game state. A team chasing a 2-0 deficit takes more shots from worse positions than a team protecting a 1-0 lead. Their xG-for goes up while their actual conversion probability goes down. xG models that don't control for game state systematically inflate trailing-team quality.
  • Goalkeeper quality. The same shot has different conversion probability against Alisson vs an average keeper. xG models that ignore the specific goalkeeper apply a league-average save rate, which mis-prices matches with elite goalkeepers.
  • Set pieces vs open play. Set-piece xG is generally more repeatable than open-play xG because the situation (corner, free kick) is more controlled. Models that don't split these can over-weight a team's open-play form.
  • Sequence quality. A 12-pass move ending in a tap-in has the same xG as a long-ball-into-the-box tap-in, but the former represents much higher attacking quality that's more likely to repeat.

None of these limitations are fatal — xG remains the single most predictive stat in soccer modeling. But sophisticated models incorporate corrections for these factors, typically through additional features (game-state-adjusted xG, post-shot xG that accounts for shot placement, goalkeeper saves above expected).

7. Frequently Asked Questions

Is xG the same as expected points?

No. Expected goals (xG) measures shot quality per match. Expected points (xPts) takes xG one step further by converting a team's xG distribution into a probability of winning, drawing, or losing, then multiplying by points awarded (3/1/0). xPts measures how many league points a team "deserved" based on the quality of their chances. The two are related but distinct — xG tells you how a team attacked, xPts tells you whether their attacking quality should have earned points.

What is xGA?

xGA (expected goals against) is the same idea as xG but applied to shots a team has conceded. A defense that has conceded 5 goals from 8 xGA has overperformed (allowed lucky non-conversions). A defense that has conceded 12 goals from 8 xGA has underperformed (allowed unlucky conversions). xGA is used to evaluate defensive quality independent of goalkeeper performance and luck.

How does xG compare to other shot-based stats like shots-on-target?

Shots and shots-on-target are dimensionless counts that don't weight shot quality. A team with 12 shots that include four close-range chances and eight desperate long-range efforts has the same shot count as a team with 12 shots that are all mid-range tap-ins. Their xG numbers would differ significantly. Shots-on-target is a step in the right direction (good shots are more likely to be on target) but still misses the quality component. xG is shots-on-target adjusted for shot quality — a meaningful upgrade for prediction.

Should I just bet on whichever team has higher xG?

No — the market has already priced in xG to some extent. Sharp bookmakers like Pinnacle account for xG when setting their lines. Naive xG-vs-market betting won't consistently win. The edge comes from using xG in a more sophisticated way: combining recent xG with team strength ratings, opponent quality, schedule density, and other context. Models that do this well achieve 67-73% accuracy in their high-confidence picks (our walk-forward result), but raw xG alone is closer to break-even.

What is post-shot xG (PSxG)?

Post-shot xG is computed only on shots that are on target, and it incorporates the shot trajectory and placement (corner, top corner, straight at keeper) to estimate the goal probability given the shot has been struck. PSxG-vs-actual-goals is the gold standard for evaluating goalkeeper performance — a keeper who concedes fewer goals than the PSxG of shots they faced is performing above expected. Useful for betting on goalkeeper-specific markets and for team-totals when one team has a clear keeper edge.

See today's soccer picks from our xG-enhanced model.

Start 5-Day Free Trial

Responsible Gambling

Educational content only. Past performance does not guarantee future results. Sports betting carries financial risk and may be illegal in your jurisdiction. Must be 21+ in legal US states.

If you or someone you know has a gambling problem, call 1-800-GAMBLER or visit ncpgambling.org.

5-day free trial — all sports

Try Free