How to turn expected goals into a fair betting price

A football score hides more than it shows. One team can miss five open goals and lose 1-0 to a shot that hit a defender and went in. Expected goals, written xG, is the number that counts those five chances instead of the one goal.

xG Guide / 5
Chance quality, not luck xG into a fair price Where to find it free
8 minutes · Beginner
Try xG free →
Type Explainer
Free Beginner
From 8 minutes
Best for Bettors new to stats

Pros

  • A plain definition, with no formulas to work through.
  • A worked example that ends in a price you can compare.
  • The step almost every other guide skips: xG to percentage to odds.
  • An honest answer on whether free xG finds value bets.

Cons

  • It does not rate teams or hand out picks.
  • It does not cover xA, npxG or post-shot xG.
  • It does not include a calculator on the page.

Why the final score misleads

A match ends 1-0. That is all the table records.

It does not record that the winner had one shot all evening. It does not record that the loser hit the post twice and missed an open goal. Watch that match and you know the loser was better. Read the result a week later and you cannot tell.

Football has few goals, so luck moves results more than in most sports. One lucky bounce decides a match. Over a season, that adds up to league positions that do not always match how well teams played.

xG exists to measure the chances themselves. Not the finishing, not the luck. Just how good the openings were.

What the number means

Every shot in a match gets a score between 0 and 1.

The score is the share of similar shots that were scored in the past. A shot worth 0.75 means that shots like this one went in 75 times out of 100. A shot worth 0.03 means they went in 3 times out of 100.

Similar means the things a computer can measure. How far from goal the shot was taken. The angle. Whether it came off a foot or a head. What kind of pass set it up. How many defenders were in the way. A model looks at hundreds of thousands of past shots and finds the ones that match.

The number is about the chance, never about the shot you just watched. A 0.75 chance still gets missed one time in four. That is not the model being wrong. That is what 0.75 means.

What a team's match xG means

Add up every shot a team took and you get its total for the match.

A team with 1.6 xG created chances that normally produce 1.6 goals. No team scores 1.6 goals. In real matches that side scores 0, 1, 2 or 3. Play the same match a hundred times and the average lands near 1.6.

So match xG is not a guess at the score. It describes the chances. The score is one outcome that came out of them.

This also means one match tells you very little. A penalty alone is worth about three quarters of a goal. One decision by a referee can move a team's xG more than twenty minutes of pressure.

A price is a percentage

Before xG can become a bet, one thing about prices has to be clear.

A decimal price of 2.00 pays 2 for every 1 staked, so a 10 bet returns 20. Of that, 10 is the stake coming back and 10 is profit. Divide 1 by the price and you get a percentage. A price of 2.00 means 50 percent. A price of 4.00 means 25 percent. A price of 1.50 means about 67 percent. That percentage is the chance the price is built on.

So betting on numbers is one comparison. You work out your own percentage, then you put it next to the bookmaker's. Our "odds converter guide" covers every format and the math behind it.

The bookmaker's cut

Add up the percentages behind both sides of a market and they come to more than 100.

If a bookmaker offers 1.90 on both over and under, each side implies 52.6 percent. Together that is 105.3 percent. The extra 5.3 percent is the bookmaker's fee. It is already inside every price you see.

That is why the fee does not have to be taken out before you compare. You put your own percentage next to the raw price, and the fee works against you exactly as it should. A price that only matches your estimate is not a fair bet, it is a small loss. Your percentage has to beat the price, not tie with it.

Taking the fee out of a price has a different job. It shows what the bookmaker really thinks, which is a good way to check your own number. It is not a step in deciding whether to bet.

Turning xG into a percentage

Say one team is worth 1.6 expected goals and the other 1.1. Together that is 2.7 goals in the match. Say the 1.6 side is at home, because the same squad creates more at home than away.

Goals arrive in a pattern that mathematicians know well, the same pattern as customers arriving at a counter. A standard formula takes an average like 2.7 and returns the chance of seeing 0 goals, 1 goal, 2 goals and so on. You do not need to do this by hand, but it helps to know that the step exists and that it is not guesswork.

Two things about that step are worth saying, because most guides leave them out. The formula treats the two teams as separate, so it returns slightly fewer draws than real football produces. And it uses one average per team, while a stricter method works shot by shot. Both stay close enough to be useful. Both are reasons not to trust the last decimal place.

Here is what those two numbers produce.

Total goals.A common bet is on more or fewer than 2.5 goals in the match. The half exists so the bet cannot end in a tie. At a combined 2.7 xG, the match goes over 2.5 goals 50.6 percent of the time. Turn that into a price and it is 1.97.

Both teams to score.The home side fails to score in about 20 percent of matches at this rate. The away side fails in about 33 percent. Both scoring works out at 53.2 percent, a price of 1.88.

Who wins.The home side wins 49.0 percent of the time. The draw comes in at 24.9 percent. The away side wins 26.2 percent. As prices, 2.04, 4.02 and 3.82.

Those are called fair prices. They are what the bet is worth if the xG estimate is right, before the bookmaker's fee is added on top.

What that comparison looks like in practice

Say a bookmaker offers 2.10 on over 2.5 goals in that match.

Divide 1 by 2.10 and you get 47.6 percent. Your own estimate said 50.6 percent. The fee is already inside that 2.10 and you still beat it by three points, so the price is in your favor.

Now say the price is 1.80. That is 55.6 percent, five points above your estimate. The price is against you, and the same bet is now a bad one.

Nothing about the match changed between those two paragraphs. Only the price did. This is why the number has to become a percentage before it becomes a bet.

Small changes move the price a long way

The estimate has to be honest, because the output is sensitive.

  • A combined 2.2 xG makes over 2.5 goals a 37.7 percent chance, a fair price of 2.65.

  • A combined 2.7 xG makes it 50.6 percent, a fair price of 1.97.

  • A combined 3.2 xG makes it 62.0 percent, a fair price of 1.61.

Half a goal of expected goals moves the fair price from 2.65 to 1.97. No bookmaker's fee is anywhere near that wide. Getting the input right matters more than «looking for the best price», though both help.

The price already knows about xG

One thing has to be said before any of this turns into a betting plan.

Bookmakers do not set prices by watching matches. They use models, and those models measure chance quality the same way xG does, often with better data than any free site publishes. The 2.7 in the example above is not news to them. It is close to what their own price already says.

So a gap between your estimate and the price is usually your mistake, not theirs. Free xG is a way to understand a match and to notice a price that looks odd. It is not a supply of good bets.

The gap is more likely to be real where the model has less to work with. Smaller leagues. A team with a new manager. The first matches after a transfer window.

Scoring above the chances

A team has scored 25 goals from chances worth 18 xG. It is finishing 39 percent above its chances. Another team has 12 goals from 19 xG and is finishing well below.

The usual advice is that both will move back toward their xG. That is mostly right, but the reason is often explained badly.

The first team does not owe anyone goals. Nothing forces it to score less. What is likely is that the next ten matches look like the underlying rate rather than the good run, because most of that run was luck rather than skill.

Some of the gap is not luck. A team of excellent finishers beats its xG season after season. A striker out of form misses good chances for months. Treat a large gap as a signal and a small one as random.

How many matches before it means anything

One match tells you almost nothing. Five is a hint. Around ten matches a pattern starts to hold. A full season is solid.

Two habits keep it honest. Use per-match rates rather than totals, so a team that has played an extra game does not look better than it is. And split home from away, because the same squad creates and concedes at different rates in each.

Recent matches count for more. After a manager change, a transfer window or a long injury, the season average is describing a team that no longer exists.

The same match, two different numbers

There is no single official xG.

Opta, StatsBomb, Understat, SofaScore and FotMob each build their own model from their own data. The same shot can be worth 0.62 on one site and 0.71 on another.

So never mix sources in one comparison. If the season rates come from one site, the match numbers must come from the same site. And a rule of thumb picked up from one site does not carry over to another.

Where to find xG free in 2026

Understat publishes free xG for six leagues: England, Spain, Germany, Italy, France and Russia. It has match numbers, player numbers and shot maps. The Russian coverage has been the patchiest of the six in recent seasons.

SofaScore and FotMob carry their own versions and add live coverage during matches. The Analyst is Opta's own site for readers, so the numbers there come from the source, presented through articles rather than tables.

FBref was the obvious answer until January 2026, when its data provider ended the agreement and the whole expected goals family was deleted. Our FBref review covers what that site still does. 

What xG cannot see

The model looks at the shot. It does not look at the situation around it.

A team leading 3-0 stops attacking, so its xG for that match understates how good it was. A red card does the same in reverse. So does heavy rain on a soft pitch.

The model also treats every player as average. A chance worth 0.2 is worth more to a top striker and less to a defender who has wandered forward. Standard xG adjusts for neither. It also says nothing about who takes penalties, and penalties are one of the biggest single sources of goals in a season.

And it does not measure fairness. A team that loses 1-0 with more xG did not deserve to win. It created better chances and lost. Those are two different statements.

Using xG without expecting too much

xG does one job well. It describes the chances rather than the finishing, which makes it a better guide to the next match than the last result was.

The mistake is treating it as a forecast by itself. A match xG becomes a bet in three steps. It turns into a percentage, the percentage turns into a fair price, and that price is put next to a real one. There is a bet only if your percentage beats the price by enough to clear the fee, and even then how much to stake is a separate question. Everything before that is reading, not betting.


Frequently asked questions

What does xG mean in football?

Expected goals score every shot by how often shots like it were scored before. A shot worth 0.75 went in 75 times out of 100 in the past.

Is there a good xG number for one match?

There is no single good number, because every site builds its own model and its own scale. Judge a team against its own average on one site.

How is xG different from shots on target?

Shots on target counts how many shots hit the goal, while xG scores how likely each shot was to be scored. A weak shot on target adds almost nothing.

Does xG include penalties?

A penalty is worth about 0.76 expected goals, more than almost any chance from open play. Some sites also publish a version with penalties taken out.

Where can I get xG for free?

Understat covers six leagues at match and player level, with shot maps. SofaScore and FotMob publish their own versions and add live coverage.
Cookie Notice: We use cookies to improve your experience.