Expected Goals have been frequently used and debated within football analytics circles for the best part of a decade.
However, with the metric increasingly being adopted by Opta, Match of the Day and other major football media, the casual reader now needs to make sense of the numbers.
For the football punter, whether you are a casual Saturday accumulator builder or have a more serious interest, they should become more important than any league table you ever digest.
What are Expected Goals, and why should we care?
Let’s start with what they are not. Expected Goals are not a prediction of how many goals we expect to see in a future match between two teams (despite what the name suggests), but they absolutely can be used as an important input into determining the answer to that particular puzzle.
So what are they then?
Have you ever attended a football match where one of the sides absolutely pummel the other for 90 minutes without respite, only to ultimately lose the match 1-0? Yes, thought as much!
We’ve all witnessed games like that and in a sport as low-scoring as football, shock results do occur. Very often that unexpected outcome is not because the underdog truly played well enough to win the match, but rather that lady luck simply didn’t show her face in equal measure to the two sides on the day. This is where Expected Goals come in – also known as xG.
Expected Goals is a numerical value assigned to every potential scoring opportunity throughout a football match, based on the likelihood that that chance produces a goal. Add up all of those expected goals, and you achieve an expected number of goals produced by each team in the match.
The Penalty Example
Take a penalty kick for example. We’ve been watching penalties for years. Thousands of them, and large samples have allowed us to predict pretty confidently how many of them produce a goal. In the long term, almost every team in top flight European football will convert around 78% of their spot kicks.
In other words, for every 100 penalties, there will be 78 scored as a direct result. Or put another way, for any given penalty, that team would be expected to score 0.78 goals.

Building up xG numbers
No two xG models are identical. They are produced using a variety of different metrics which are used to predict the number of goals a team might reasonably have expected to score in a match given the removal of luck one way or another. Sometimes they will score more than their chances deserved; sometimes fewer.
Let’s start with the simplest models, and work up towards the more complex.
Iteration 1 – Shots and Shots on Target
The simplest (and actually reasonably good) measure of a team’s success in any given match is the number of chances they create. Lots of shots increase your chance of lots of goals. If you don’t take a shot, you definitely won’t score a goal. It’s as simple as that – well almost.
Throughout the football league for instance, a team will, on average, score a goal for around every 10 shots they take in a match. The same applies to shots-on-target, with roughly a goal scored for every three shots which are on target. Early in the season, looking at simple shots taken numbers is often a great indication of how a team are performing while the variance associated with goals or shots-on-target might still be clouding things.
By assigning a proportion of a goal to each shot or shot on target we can quickly produce a crude “xG” value. Let’s say we expect to score a goal for every 10 shots we take. If a team out-shoot another side in a game 16-5 we can assign a simplistic metric of 1.6 Expected Goals to the home team, and 0.5 Expected Goals to the away side.
Similarly, imagine it takes on average three shots on target to score each goal in a given league. The same match sees the shots-on-target statistic read 4-1. Here our most basic shots-on-target model may suggest that the home team Expected to Score 1.33 goals and our away side just 0.33. Perhaps we might choose to use a hybrid of the models to weight them together?
Iteration 2 – But not all shots are equal….
Building a model from shot numbers alone has a number of advantages – it’s quick, cheap and easy to scale given the availability of data on a wide range of leagues. Unfortunately, it also hides all manner of sins - not every shot was made equal. A shot from inside the six-yard box for example, from a striker's natural foot, would typically convert into a goal around 45% of the time. A speculative effort from 25 yards would spark celebrations nearer to 3-4% of the time.
In order to produce an effective model, we therefore need to start to assign a variety of parameters to each and every shot. To simplify this we first look to use the X,Y co-ordinates of the shot to assign a danger metric. The closer to the goal and more central the position, the higher the probability assigned to the chance.
Similarly, we increase the chance of scoring if the ball was kicked, versus say a headed effort. A simple table might look something like this for example:


Layer in this level of detail and you’ll be pretty close to having a decent xG view of how any given match might have played out had everything been 'fair'.
Iteration 3 - Competitive Advantage
The majority of xG models you see will usually come from Iteration 2. The data is usually relatively accessible for top European Leagues and available at player level as well. Sites such as Understat.com and Infogol.com for example do a very good job, but to a limited depth of leagues. To get the additional edge here, you need to start to build not just a good model, but a better model than everyone else.
If you had a bigger budget (in terms of time or financial clout) you could begin to iterate further. This is the where the best syndicates operate for instance. You’re into diminishing returns, but if you need to be more exact, there are opportunities.
- Where in the goal was the shot heading? (break the goal up into vertical and horizontal zones for example)
- What type of shot/header was it? (Free Kick, Cross, Open Play, Corner)
- What was the game state? (was the team chasing the game or sitting on a lead)
- What was the nature of the game phase? (A corner, normal open play, a break-away)
Ultimately, the more detail you can add into the collection process, the better chance you have of assigning an accurate expectation of a goal, and the more accurate and predictive your model will be when applying it to team strengths.

Summary and 'So what next?'
Hopefully, you’ve followed the journey through understanding what xG numbers mean, and how they are derived. This allows you to understand how many goals a team might reasonably have expected to score in any given game.
Early in the season especially, this is going to tell you when the league table is telling some significant lies to the lazy observer and which teams might be performing at a different level than their results suggest. Later in the season, looking at game-by-game data can help you identify which sides are improving and which are regressing.
Now you know what the xG numbers represent, we’ll look to move on in the future to understand how you might apply these numbers to predict the outcomes of games and how you might go about turning these thoughts into odds.
It’s only when we do this that we can move from “Team A is better than the league tables makes them look” to “Team A has an ?% chance of beating Team B”.
@StattoBets Dave has worked in the betting industry for almost 20 years and loves nothing more than to talk about football, football data and how these translate to the betting markets. He is also a regular tipster and columnist for www.bettingemporium.com covering UK and European football.