What is xG?

So, what is xG? And how should it, and shouldn’t it, be used?

“we didn’t play well today but got away with it”

“can’t argue with the result, they were worthy winners

“a draw would have been a fair result”

“if we keep playing like this, results will pick up”

“we wont keep getting away with it like we did today”

If you’ve ever said anything similar to the above, you were employing a manual version of xG. 

xG = Expected Goals. It is the amount of goals on average that a team or player would be expected to score given the chances they had. It is simply a way to get a pretty accurate summary of a teams’ performance, beyond the actual result. 

Most xG models will use various factors to come to a final number for each individual chance – shot location, shot type, assist type, defensive pressure, goalkeeper position etc. For example, assuming we are comparing like-for-like chances:-

  • a shot from the centre of goal will be rated higher than one from an acute angle.
  • an attempt with the foot is better than the head.
  • an assist pulled back from the byline will generally be rated better than, say, a long floated ball from an angle.
  • a shot where the player has space and time will be rated better than one with close defensive pressure on him.
  • a header with the keeper in a standard position will be rated less than if the keeper has flapped at a cross and is in no mans land.

…..and so on. I’m sure you get the point.

A standard long range shot with defence and keeper in standard positions will generally be around a 1% chance of goal (0.01 xG)

The majority of shots/headers will be in the 0.01 – 0.10 range. Usually difficult shots, headers from set pieces under defensive pressure etc

A chance in a good area but with some defensive pressure (or low pressure but from a tricky position) will usually be around the 0.10 – 0.20 xG range depending on exact location/defence proximity.

A chance with an xG of over 0.24 is defined as a “big chance”.
These will generally be chances in a good location and with little defensive pressure on the player taking the shot. 

The average conversion rate of a penalty is 76% so a penalty kick is worth a standard 0.76 xG

Keeper out of position, defence not directly pressuring, striker close to goal, so a big % chance of a goal. The above shot was 0.86 xG  

I’ve gone through a match shot by shot on the xG Match Example page so you can get an idea there how it works in real time.

From the chances created we can then get an Expected Goals total for the match. We can also simulate it and see how many times Team A would win/draw/lose with those xG numbers and what their average expected points would be.   

The main thing to know is xG is doing nothing different to what you or I do in our heads when we are watching a game of football. We instinctively know whether a chance is a low % chance, a good chance or a great chance. That’s because we have likely seen 10’s of thousands of chances over the years and we instinctively know which ones have a high chance of resulting in a goal.

xG ratings are the exact same thing. There are hundreds of thousands of shots in the records and from that the model can give a pretty accurate number of what the % chance is of that particular chance resulting in a goal.

Our Own xG Numbers

In terms of our xG numbers here at xGstats, we add a second layer to the process to ensure as much accuracy as possible. We manually visually check (or in plain English, we watch) every single shot in every single game in the top 5 English divisions. This ensures that things like defensive pressure, goalkeeper position etc are 100% accurately recorded. Defensive positioning is very difficult for an automated model to always accurately record so watching the shots give that 2nd layer to really boost accuracy.

For us that is a time consuming, labourious process but the end result is you guys getting super accurate xG numbers. As far as I’m aware there’s no other xG numbers available publicly that includes these manual checks.  

So How Do I Use xG?

A lot of the xG related stuff you have seen before is probably giving the xG totals for individual matches. While that is fine, and can be interesting, I don’t think it really does justice to the potential xG has. Where xG really comes into its own is when you start to put a few games together and we can see 6, 8, 10+ game runs.

Variance can often make the random look like there’s some kind of meaningful pattern going on. As a low scoring sport, football is ripe for variance clouding judgements when in reality nothing meaningful is actually happening. xG can help you avoid falling victim to the narrative and see the bigger picture.

A good example from last season was in League One. After 10 games played Peterborough were top of the league with 22 points from a possible 30. However their Expected Goals numbers told a very different story.

The xG numbers couldn’t say any more clearly that Peterborough seemed to have gotten results much, much better than their performances suggested they “deserved”. On average with the chances they created you’d have expected them to score around 14 – 15 goals, have conceded around 19 – 20 and picked up around 10 – 11 points. 

After a closer match-by-match inspection, it was obvious that marginal moments had pretty much all gone their way in almost every game. They were scoring at a completely unsustainable rate – over 25% of their 102 total shots and 74% of their “big chances” resulted in a goal. They also got 3 penalties at crucial times in tight games. Their opponents also missed their big opportunities at an unsustainable rate. Basically, anything that could go their way, was going their way. There seemed little chance they could keep up that level of good fortune.

I remember someone tweeted Posh owner Darragh Macanthony sometime around this point pointing this out and he replied sarcastically something along the lines of “yeah we are just really lucky. Top of the league but rubbish. Cant wait until we get it right!” P’boro fans were pretty much in unanimous agreement with replies of “it’s a results business”, “whatever we are doing it’s working”, “the only stat that matters is the league table” etc etc

4 months later and manager Steve Evans was sacked after claiming just 26 points from their next 20 games. The numbers suggest their overall performance level didn’t change in any meaningful way. They just stopped getting all the breaks they had previously got earlier in the season. They were now in the position their overall play merited, a solid but unspectacular 6th – 8th range. You wonder if the breaks had fell in a more even pattern, whether owner and supporters would have been perfectly content with their league position and Evans would still be in the job? 

Unless you were a regular Peterborough spectator it would have been difficult to spot that early season overperformance without xG. Even if you suspected it, having the stats laid out to prove the theory is incredibly useful.    

Incidentally the other 3 teams in League One that xG identified after 10 games were in a false position were:-

  • Luton Town – despite being 12th in the league table, Luton were one of 3 sides (along with Barnsley and Portsmouth) putting in elite League One xG numbers. They ended up winning the league.
  • Walsall – 7th in the table, only outside the playoffs on goal difference, but their xG numbers suggested they were playing to a bottom 6 standard. Walsall were relegated come the end of the season.
  • Southend United –  were 13th but xG numbers had them as playoff contenders. OK, that one didn’t work out! They almost got relegated and only survived on the final day. But 3 out of 4 aint bad!

The results of any kind of 8 – 10 game period at any point in the season are always going to be heavily influenced by luck/variance, call it what you will. xG is great for letting you check out teams that are supposedly going through a good or bad patch and see if their underlying performances are actually as good or bad as their current results suggest.   

There are numerous other ways xG can help build a better picture. Seeing as we’ve just spoke about Peterborough I’ll use them as an example again. In those first 10 games of the season mentioned above, they scored 26 goals (the highest in the division) which on paper made them look a strong attacking outfit. Only 2 of their first 10 league games finished with less than 3 goals. But in reality they were actually creating a low amount of chances, they were just scoring an unsustainably high amount of them. They scored just 10 goals in their next 10 league games, with 7 out of 10 games finishing with 0 – 2 goals. 

Sometimes games can finish with 3 or 4 goals from barely any chances. Sometimes games can finish 0-0 or 1-0 with a combined 40+ shots. Going beyond the scoreline gives a much better insight into a teams future scoring and conceding potential.

What xG Isn’t

While the benefits of xG are numerous, it is important to also state what it isn’t. It is not and never will be perfect. There is no substitute for actually watching games. But in the top 5 English leagues alone there are 58 matches on a normal weekend. With usually another 20 – 40 additional games most midweeks. It is obviously not physically possible to have time to watch even a fraction of those games so the next best thing (in my opinion anyway) is xG. If you watch a team week in week out, you will likely already have seen anything xG can tell you. But the beauty of xG is a) it can confirm any suspicions you have about teams you’ve watched and b) you can get that same gist for every other team in the country.

xG is pretty accurate in summing up the gist of how a game went.  There will obviously be occasions when individual shots are not rated accurately. Especially when it is something of an unusual shot or chance where there is unlikely to be lots of comparable shots in the database. Our visual checks here at xGstats will help with that and will correct anything that the model hasn’t interpreted correctly.

Things like red cards, penalties and game state can also produce misleading xG numbers in an individual game. Again, at xGstats, we will point those kind of things out in our reports or you can check this easily and quickly yourself with our match timelines.

Not For Me, Clive

While football clubs themselves have long been on the xG bandwagon, most of the mainstream football media coverage of xG ranges from disinterest to distrust.    

Jeff Stelling certainly isn’t a fan……


And it seems to make Craig Burley physically angry……


“None of this nerd nonsense about expected goals!”  Not sure Craig’s subscribing anytime soon. I’ll put him down as a maybe.

Who am I to argue with the Don of football broadcasting, but I think Jeff may have misunderstood what Expected Goals is. To be fair to him, I think he thinks it is a pre-game prediction of the amount of goals expected to be scored by each team. He would, of course, be right that would be a completely ridiculous stat for a manager to quote after a game. But obviously that isn’t what Expected Goals is.

I’d be willing to bet that later in the same show Jeff would have asked Merse, Le Tiss, Thommo and Charlie if the teams they watched deserved to win? Did a losing team create enough chances to have gotten something? Or something along those lines. How many times have you heard the panel say “they could have lost that by 4 or 5 Jeff” or “if they play like that every week they’ll be fine”

That is all xG is. It is simply a way to give a numerical answer to the question “how did they play?” rather than just who won and who lost. Merse might call a 30 yarder hitting the back of the net “a worldie” and we call it a “0.01xg long shot” but we are both saying the same thing. Our way just lets us look at hundreds of matches per week, and gives us numerical values to contrast and compare with. 

What Does xGstats.com Provide?

Here at xGstats, we provide you with all the info you need to become fully informed on all things xG. You will get……

  • xG numbers and match timelines for every game in the Premier League, Football League, National League, FA Cup, Carabao Cup and the Champions League and Europa League games involving English sides. This includes our visual checks on every shot to ensure accurate numbers. 
  • xG league tables and rankings with 57 customisable categories. 
  • Regular xG articles and analysis
  • “Master Sheet” of all the data via a downloadable excel sheet.

We think we have a very unique offering that offers a clear and obvious way to improve your work – be it for sporting, journalistic or betting purposes.  

You can take a 14 day free trial now. No obligation, just give us a try and see if you like what you see! 


Start your free trial

No obligation, try us for 14 days

Free trial is for 14 days. After the 14 days , if you wish to subscribe, the trial subscription will automatically roll over to full membership @ £179.99 per year. If you don’t wish to carry on with us after your trial simply cancel the subscription before the end of the 14 day trial period.

Already taken your trial?  Subscribe as a full member now

By clicking ‘Sign up’, you agree to xGstats’ Privacy Policy & Terms of Use