All posts
Stats explainers
19 October 2026

What is xG in football? Expected goals explained

Expected goals, usually written as xG, is a number that measures the quality of a goalscoring chance. Every shot gets a value between 0 and 1 based on how likely it is to result in a goal. A penalty is worth about 0.76 xG because roughly 76% of penalties are scored. A shot from 40 yards might be worth 0.01.

How xG is calculated

Models differ between data providers, but most use the same ingredients:

  • Distance to goal. Closer shots score more often.
  • Angle. A central shot is more dangerous than one from near the touchline.
  • Body part. Headers score less often than foot shots from the same spot.
  • Type of assist. A through ball or cutback creates better chances than a long hopeful cross.
  • Situation. Open play, counter attack, set piece or penalty all change the value.

The model looks at hundreds of thousands of historical shots with similar characteristics and asks: how often did that shot go in?

Why xG is useful

Goals are rare and random. A team can win 1-0 while being completely outplayed. Over one match, the scoreline often lies. Over ten matches, it lies less, but xG tells the story faster.

If a team keeps creating 2.0 xG per game but scoring once, the goals usually come. If a striker has scored eight goals from 3.5 xG, expect the scoring rate to cool down. This is called regression, and it is one of the most reliable patterns in football analysis.

What xG is not

  • It is not a measure of how well a team played overall. A side can win the xG battle and still deserve to lose because of game state.
  • It is not identical across providers. Opta, Understat and StatsBomb all calculate it slightly differently.
  • It does not capture everything. Defensive positioning, goalkeeper quality and defensive errors only show up indirectly.

How we use xG in the Lab

The Streetwise Football Lab predictor uses non penalty xG as one of its main inputs. We blend it with actual results, weight recent matches more heavily, and adjust for home and away strength. That feeds a Poisson model which estimates the chance of every scoreline, and from that we get match odds, over and under goals prices and both teams to score probabilities.

When the Lab suggests a bet, xG is doing a lot of the quiet work in the background: separating teams that are genuinely good from teams that have simply been lucky.

A quick example

Team A beats Team B 1-0. The xG reads 0.4 to 1.8. Team A scored with their only real chance; Team B created several good ones and missed. A fan says Team A were clinical. The xG says Team B were the better side and the result flattered the winner. Over the next few matches, Team B's results usually improve and Team A's usually dip. That is the power of measuring chances instead of just counting goals.

Want the numbers behind the tips?

Create a free account to use the Lab's match predictor, player data and Fantasy tools.

Join the Lab free