Join The Team!

A signing like no other...

Name
Email
Password
Selected Plan:
Pro£19.99/m
Pro w/ API£69.99/m
Season Ticket£179.99

OddAlerts Guides

Learn How to Use Our Football Betting Tools

Expected Goals (xG) Explained: How to Use xG for Football Betting

What Is Expected Goals (xG)?

Expected Goals, commonly written as xG, is a statistical metric that measures the quality of goal-scoring chances in football. Rather than simply counting goals, xG assigns a probability to every shot based on how likely it is to result in a goal.

A shot with an xG of 0.75 means that historically, shots taken from that position and situation are scored 75% of the time. A shot with an xG of 0.03 means it's essentially a speculative effort with only a 3% conversion rate.

When you add up the xG of every shot a team takes in a match, you get their total match xG — the number of goals you'd expect them to score based on the chances they created.


How Is xG Calculated?

Every shot in a football match is evaluated against a model trained on hundreds of thousands of historical shots. The key factors that determine a shot's xG value include:

  • Distance from goal — Shots closer to goal have higher xG
  • Angle to goal — Central positions score more often than tight angles
  • Body part — Headers typically have lower xG than shots with the foot
  • Assist type — Through balls and crosses create different quality chances
  • Situation — Open play, set piece, counter-attack, or penalty
  • Goalkeeper position — Whether the keeper is set or caught out of position

A penalty has an xG of roughly 0.76. A one-on-one from 8 yards out might be 0.45. A long-range effort from 30 yards is typically around 0.03-0.05.


Reading an xG Table: What the Numbers Mean

When you look at an xG league table on OddAlerts xG Stats, you'll see several key columns:

  • xG — Expected Goals For. How many goals a team should be scoring based on their chances.
  • xGA — Expected Goals Against. How many goals a team should be conceding.
  • xGD — Expected Goal Difference (xG minus xGA). The best overall indicator of team quality.
  • xG per game — Average xG created per match. Useful for comparing teams with different numbers of games played.

Here's how a live xG table looks for the Premier League this season — teams ranked by Expected Goal Difference:

Premier League xG Table

Live Data
# Team P xG xGA xGD xG/90
1 Arsenal 38 71.2 33.6 +37.6 1.87
2 Manchester City 38 73.1 47.1 +26.0 1.92
3 Liverpool 38 64.1 46.9 +17.3 1.69
4 Manchester United 38 69.6 52.5 +17.1 1.83
5 Chelsea 38 68.6 52.1 +16.5 1.80
6 Brighton & Hove Albion 38 57.7 52.0 +5.7 1.52
7 Crystal Palace 38 58.8 54.7 +4.2 1.55
8 Newcastle United 38 59.5 55.6 +4.0 1.57
9 AFC Bournemouth 38 63.5 59.9 +3.6 1.67
10 Leeds United 38 60.9 60.3 +0.6 1.60
11 Aston Villa 38 52.2 51.7 +0.5 1.37
12 Brentford 38 59.0 59.1 -0.1 1.55
13 Fulham 38 53.4 54.3 -0.9 1.40
14 Everton 38 50.5 56.3 -5.8 1.33
15 Tottenham Hotspur 38 45.5 53.6 -8.1 1.20
16 Nottingham Forest 38 49.3 60.6 -11.3 1.30
17 West Ham United 38 51.8 67.6 -15.8 1.36
18 Sunderland 38 41.7 59.6 -17.9 1.10
19 Wolverhampton Wanderers 38 36.5 62.2 -25.7 0.96
20 Burnley 38 33.8 81.3 -47.5 0.89

The xG vs Actual Goals Gap

This is where xG becomes powerful for betting. If a team has scored 25 goals but their xG is only 18, they are overperforming. They're either getting lucky with finishing or scoring low-probability shots at an unsustainable rate.

Conversely, if a team has scored 12 goals but has an xG of 19, they are underperforming. Their chance creation is strong but finishing has let them down — and historically, this tends to regress toward the xG value.


How to Use xG for Betting

Over/Under Goals Markets

xG is directly applicable to goals markets. If two teams average a combined xG of 3.2 per game when they play, the Over 2.5 Goals market is statistically likely to hit more often than not.

Look for matches where:

  • Both teams have a high xG per game (above 1.5 each)
  • The league itself is high-scoring

Top 10 Leagues by Goals Per Game

Live Data
# League Played Total Per Game
1 U19 League 45 334 7.42
2 Soccer League 28 198 7.07
3 1. ŽFL 44 308 7.00
4 1. Womens Liga 143 969 6.78
5 Kampionati i Femrave 76 509 6.70
6 U19 League C 52 344 6.62
7 Women League 26 162 6.23
8 U19 League B 55 317 5.76
9 Northern Territory Women's Premier League 40 229 5.73
10 Tasmania Southern Championship 38 217 5.71

BTTS (Both Teams to Score)

xG helps with BTTS markets by revealing whether both teams genuinely create chances. A team might have a poor goals record, but if their xG per game is above 1.0, they are creating enough chances that goals are likely to come.

Combine this with xGA — if a team also concedes a high xGA, that match is a strong BTTS candidate.

Top 10 Leagues for BTTS

Live Data
# League Played Count Rate
1 2. Deild 45 36 80%
2 Queensland Premier League 3 Metro 85 67 79%
3 Future Cup 29 23 79%
4 Soccer League 28 22 79%
5 3. Division - Group 5 63 49 78%
6 U19 Divisie 1 111 86 77%
7 U19 Divisie 2 111 86 77%
8 4. Deild 25 19 76%
9 U19 League B 55 42 76%
10 3. Deild 36 27 75%

Match Result and Asian Handicap

xGD (Expected Goal Difference) is the strongest predictor of future match outcomes. Teams with a high positive xGD are creating far more quality chances than they're conceding, and tend to sustain their league position even through bad runs of form.

Here are the current La Liga and Bundesliga xG standings — compare the xGD leaders against the actual league table to spot mismatches:

La Liga xG Table (Top 10)

Live Data
# Team P xG xGA xGD xG/90
1 FC Barcelona 38 83.4 44.5 +38.9 2.19
2 Real Madrid 38 75.2 43.5 +31.6 1.98
3 Athletic Club 38 53.3 40.3 +13.0 1.40
4 Villarreal 38 61.6 49.1 +12.5 1.62
5 Atlético Madrid 38 56.8 48.1 +8.7 1.49
6 Real Betis 38 55.0 47.8 +7.2 1.45
7 Valencia 38 51.3 47.5 +3.9 1.35
8 Rayo Vallecano 38 54.2 51.3 +3.0 1.43
9 Deportivo Alavés 38 50.7 47.8 +2.9 1.33
10 Osasuna 38 49.9 51.4 -1.5 1.31

Bundesliga xG Table (Top 10)

Live Data
# Team P xG xGA xGD xG/90
1 FC Bayern München 34 91.9 41.7 +50.2 2.70
2 RB Leipzig 34 70.4 48.2 +22.2 2.07
3 Borussia Dortmund 34 62.2 42.6 +19.6 1.83
4 Bayer 04 Leverkusen 34 65.1 47.7 +17.4 1.91
5 VfB Stuttgart 34 61.3 52.5 +8.8 1.80
6 TSG Hoffenheim 34 58.2 49.7 +8.6 1.71
7 SC Freiburg 34 51.4 51.7 -0.3 1.51
8 FSV Mainz 05 34 53.6 56.0 -2.4 1.58
9 FC Union Berlin 34 46.5 50.3 -3.8 1.37
10 Eintracht Frankfurt 34 45.8 51.0 -5.2 1.35

When you see a team on a losing streak but their xGD is still positive, the market often overreacts. That's where value lies — the underlying performance metrics suggest the team is better than their recent results indicate.

Identifying Value in Odds

The core principle: when actual results diverge from xG, odds are often mispriced.

  • A team on a winning streak with low xG may have shorter odds than they deserve
  • A team in poor form with strong xG may have longer odds than warranted
  • Early-season results are especially unreliable — xG stabilises faster than points tallies

xG on Target (xGoT)

xGoT (Expected Goals on Target) is a more refined metric that only considers shots that were actually on target. While standard xG evaluates the chance, xGoT also factors in where the shot was placed.

This makes xGoT better for evaluating individual matches — if a team had 2.1 xG but only 0.8 xGoT, their finishing was poor. If their xGoT exceeds their xG, they're placing shots well and making keepers work.


Common Pitfalls When Using xG

Don't use xG from a single match in isolation

One match of xG data is noisy. A team can have 3.0 xG and lose 1-0. That's football. xG is most reliable over 10+ matches where the sample size smooths out variance.

xG doesn't account for everything

Set-piece routines, individual brilliance, and defensive organisation can cause teams to consistently out or underperform xG. Some teams have structural reasons for their xG gap.

Penalty xG can distort team totals

A team that wins a lot of penalties will have inflated xG. Look at npxG (Non-Penalty xG) for a cleaner picture of open-play chance creation.

Context matters

A team chasing a game at 2-0 down will often rack up xG in the final 15 minutes against an opponent sitting deep. That late xG is real, but the match context is different from 0-0 first-half chances.


Using OddAlerts xG Stats

The OddAlerts xG Stats tool gives you access to xG data across 40+ leagues worldwide, including the Premier League, La Liga, Bundesliga, Serie A, Ligue 1, MLS, and more.

For each league you can see:

  • Full xG table — Every team ranked by xG, xGA, xGD, and per-game averages
  • Home vs Away splits — How teams perform at home versus away in xG terms
  • Individual fixture xG — Shot-by-shot xG breakdown for recent matches
  • Team xG profiles — Deep dives into any team's xG trends over the season
  • CSV downloads — Export full xG data for any league for your own analysis

Here's the current Serie A xG table — click through to explore any league in detail:

Serie A xG Table (Top 10)

Live Data
# Team P xG xGA xGD xG/90
1 Inter 38 73.7 34.3 +39.4 1.94
2 Juventus 38 69.5 38.1 +31.4 1.83
3 Como 38 60.8 34.6 +26.1 1.60
4 Atalanta 38 64.8 44.7 +20.1 1.71
5 Roma 38 56.3 37.7 +18.6 1.48
6 Napoli 38 55.7 40.4 +15.3 1.47
7 AC Milan 38 60.5 47.2 +13.3 1.59
8 Bologna 38 50.2 42.8 +7.4 1.32
9 Fiorentina 38 51.6 54.5 -2.9 1.36
10 Lazio 38 44.5 51.8 -7.3 1.17

You can use this data alongside OddAlerts Value Bets and Quick Filters to build a data-driven approach to finding profitable bets in goals markets.


Key Takeaways

  • xG measures chance quality, not just results — it tells you what should have happened
  • The xG vs actual goals gap reveals teams likely to regress, which creates betting value
  • xGD is the best predictor of future team performance, ahead of points or goal difference
  • Use xG data over 10+ match samples for reliable signals
  • Combine xG with league context — high-scoring leagues produce higher xG across the board
  • The OddAlerts xG tool covers 40+ leagues with full xG tables, home/away splits, and fixture-level data
Browse Guides