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 36 67.4 32.2 +35.1 1.87
2 Manchester City 36 70.1 43.1 +27.0 1.95
3 Chelsea 36 66.9 48.9 +17.9 1.86
4 Liverpool 37 61.3 45.4 +15.9 1.66
5 Manchester United 36 64.2 49.6 +14.7 1.78
6 Crystal Palace 36 56.1 50.3 +5.8 1.56
7 Newcastle United 36 57.6 52.4 +5.2 1.60
8 Leeds United 36 58.7 54.6 +4.1 1.63
9 AFC Bournemouth 36 60.3 56.3 +4.1 1.68
10 Brighton & Hove Albion 36 53.6 50.1 +3.5 1.49
11 Brentford 36 55.7 54.5 +1.2 1.55
12 Aston Villa 37 50.5 51.3 -0.8 1.36
13 Fulham 36 50.7 53.8 -3.1 1.41
14 Everton 36 48.9 54.2 -5.3 1.36
15 Tottenham Hotspur 36 42.9 52.2 -9.3 1.19
16 Nottingham Forest 36 45.7 55.5 -9.9 1.27
17 West Ham United 36 48.5 64.6 -16.1 1.35
18 Sunderland 36 39.0 57.7 -18.7 1.08
19 Wolverhampton Wanderers 36 33.1 59.2 -26.1 0.92
20 Burnley 36 33.2 78.4 -45.2 0.92

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 Soccer League 21 161 7.67
2 Kampionati i Femrave 70 491 7.01
3 1. ŽFL 44 308 7.00
4 1. Womens Liga 130 893 6.87
5 U19 League 25 165 6.60
6 U19 League C 45 289 6.42
7 Northern Territory Women's Premier League 25 157 6.28
8 Women League 20 122 6.10
9 Meistaradeildin Women 24 138 5.75
10 Tasmania Southern Championship 30 172 5.73

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 Queensland Premier League 3 Metro 66 55 83%
2 Soccer League 21 17 81%
3 U19 League B 43 34 79%
4 Future Cup 29 23 79%
5 U19 Divisie 1 105 83 79%
6 3. Division - Group 5 49 38 78%
7 2. Deild 30 23 77%
8 U19 Divisie 2 106 81 76%
9 South Australia State League 1 Reserves 59 44 75%
10 Jugendliga U15 120 89 74%

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 36 81.2 41.8 +39.4 2.26
2 Real Madrid 36 72.3 41.5 +30.8 2.01
3 Villarreal 36 58.0 46.4 +11.6 1.61
4 Athletic Club 36 49.1 38.6 +10.5 1.37
5 Atlético Madrid 36 53.3 43.2 +10.0 1.48
6 Real Betis 36 52.7 44.8 +7.9 1.46
7 Rayo Vallecano 36 51.2 48.1 +3.1 1.42
8 Valencia 36 48.5 45.8 +2.8 1.35
9 Deportivo Alavés 36 47.3 45.8 +1.5 1.31
10 Real Sociedad 36 50.7 52.1 -1.4 1.41

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.1 +22.2 2.07
3 Borussia Dortmund 34 62.1 42.5 +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.4 49.6 +8.8 1.72
7 SC Freiburg 34 51.4 51.7 -0.4 1.51
8 FSV Mainz 05 34 53.3 56.1 -2.8 1.57
9 FC Union Berlin 34 46.4 50.3 -3.9 1.36
10 Eintracht Frankfurt 34 45.8 50.9 -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 36 70.0 31.9 +38.1 1.94
2 Juventus 36 65.0 36.4 +28.6 1.81
3 Como 36 56.1 33.3 +22.8 1.56
4 Atalanta 36 62.3 43.0 +19.2 1.73
5 Roma 36 52.0 36.7 +15.3 1.44
6 AC Milan 36 56.9 43.1 +13.8 1.58
7 Napoli 36 52.8 39.1 +13.6 1.47
8 Bologna 36 47.9 40.4 +7.5 1.33
9 Fiorentina 36 50.1 50.7 -0.5 1.39
10 Lazio 36 42.7 48.8 -6.1 1.19

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