Under the Radar xG Stories: Gabriel Jesus Struggles, Eintracht Frankfurt's Three Stars, and Kevin Gameiro's Quietly Strong Season

While you were paying attention to things that mattered like who won matches and who lost, some under the radar storylines are bubbling along that might eventually impact teams in important ways.

Can Gabriel Jesus Score?

This seems like the most absurd question in the world. He’s averaging 0.49 non-penalty goals per 90 minutes, so clear he can score. That’s a pretty good, if not absolutely spectacular number. For player that have played over 1000 minutes in Europe’s big five leagues this season, he’s narrowly in the top 50. That’s…fine. It’s probably even good enough to be the back up on perhaps the best team in Europe. It’s also significantly behind the man he backs up, Sergio Aguero who clocks in at 0.71 non-penalty goals per 90.

Expected goals, on the other hand, tells a much much rosier story. Jesus’s xG per 90 is at a whopping 0.70, that’s the fourth best total across Europe’s big five leagues, and a whisker ahead of Aguero’s 0.69. Jesus is also just 22 years old. Aguero is, of course, now on the wrong side of the 30. So, if the only thing that matters is xG then expect Jesus to be inheriting the reins of the attack any year now.

There are of course, mitigating factors here. Jesus is generally a substitute and generally plays against weaker opposition than the first choice forward, so his numbers probably get a bit of a boost. Everybody on that City machine reinforces everybody else, a training dummy parked at the penalty spot could probably put up a positive xG total. It’s nice to be the tip of a spear wielded by the likes of David Silva and Raheem Sterling. But still, there’s no denying that Jesus’s underlying numbers are excellent.

But, boy does that kid miss a lot.

Does it matter? From an analytics perspective it does not, the best bet is to play the kid, let him shoot through the yips and expect, as the numbers suggest, that he’s about to be a superstar. But, part of the reality of leading the line at the very top of the game is that if you haven’t proven you can do it, you don’t get a lot of time to prove you can do it. People (and coaches) remember the misses, the pressure mounts, fans get restless and eventually you become Alvaro Morata (who to be fair has never had xG like Jesus’s, but who has also, to be fair, never gotten to play striker on a team quite like City), and everybody just kind of agrees that while the numbers are fine, maybe it’s time for a change of scenery.

For now, Jesus has the luxury of being a backup, but if he does eventually get the job then he’s not going to have the luxury of all these whiffs going basically unnoticed.

Eintracht Frankfurt’s Other Star Forwards

Luka Jovic gets the most attention, and well he should. He’s averaging 0.56 xG per 90, the 11th best total across Europe’s top five leagues, and it doesn’t hurt the old hype-o-meter that his actual goal scoring rate of 0.73 non-penalty goals per 90 is ahead of that pace. But, it’s not happening in a vacuum and the team’s other two main attackers, Sébastien Haller and Ante Rebić are right there with him with 0.40 and 0.42 xG per 90 and 0.48 and 0.52 non-penalty goals respectively.

While Jovic does a little bit of everything his teammates have slightly more defined roles. Haller as the more traditional forward gets the bulk of his shots from point blank range. He’s ruthlessly disciplined and almost always fires from 12 yards or closer.

Rebić on the other hand is as often a playmaker behind the striker partnership ahead of him as he is a striker himself. Consequently his output is less about efficiency, he averages 0.14 xG per shot as opposed to Haller’s excellent 0.21, and more about volume, he takes 2.93 shots per game as opposed to Haller’s 1.93.

Jovic, given his age and production, has garnered much of the hype, but the story of Eintracht Frankfurt’s season is that they have three attackers all of whom are 25 or younger, all of whom are putting up strong numbers and all of whom are outperforming those numbers. Either by strong planning or dumb luck, the team has put together the perfect attacking unit, one that is young, dynamic, and perfectly complementary. It’s no wonder that in addition to currently being the only German team alive in European competitions (even if only barely) they’re also holding onto fourth place in the Bundesliga and on track to qualify for next season’s Champions League.

The Old Man of Valencia

Valencia have had a fascinating season. It’s not just that they started so slowly and are now coming on so strong, it’s that the team as currently constructed is an interesting hodgepodge of young and old.

The kids, players like Carlos Soler,  Gonçalo Guedes, Ferrán Torres (as well as Mouctar Diakhaby further back on the field) provide skill and hope for the future, but it’s some of the old hands who have done much to steady the uncertain ship. Specifically, Kevin Gameiro, less than a month from his 32 birthday continues to put up important numbers leading the line for Valencia.

Despite his age, he’s an active defender. He’s happy to drop into Valencia's shape and harass the opposition as they attempt to enter the ball into midfield.

He pairs that defensive willingness with a lethal nose for goal. He only has four goals this season, though his expected goal total is somewhat higher at 5.41. But, he’s also only taken 27 total shots. He’s one of only six players across Europe’s top five leagues this season who have managed at least 0.33 xG per 90 and over 0.20 xG per shot.

Gameiro has shown to have a perfect set of skills for this Valencia side. He doesn’t need the ball a lot, which allows their younger, more exciting players to feature but he’s happy to do all sorts of dirty work from the striker position that lets them shine. Then, on the rare occasions when he does shoot, he does it from absolutely lethal positions. His game is perfectly suited to letting the kids have the spotlight, because he has enough edge to pounce when the opposition fails to take him into account. If Valencia manage to finish their remarkable second half of the season comeback, and nip fourth place at the wire, it will provide them a Champions League platform to feature their exciting prospects next season, but it will be thanks in no small part to the veterans that they got there.

The Can't Shoot Straight Club, the Premier League's Biggest Expected Goals Underperformers

All player struggles are not created equal. Some dips, like the mysteriously disappearing shots of Harry Kane (the currently drop is from 5.19 last season to 2.84 now), should be cause for concern. Others are less worrisome. Like, if a player is getting into good positions, taking good shots, and just, well, missing. Players who are underperforming their expected goal totals are, by and large, just fine. Here’s the list of players that are probably fine, the top 20 underperformers by expected goals this season. It doesn’t mean that there can’t be something specifically going wrong with some of these players, it just means that our default assumption should be that everything’s fine, and that’s where our analysis should begin. The list consists of a handful of different kinds of players. There are the great players who take a lot of shots. Those are the guys you really shouldn’t worry about. Mohammed Salah is totally fine, he’s just missed a few shots. Granted, the city of Liverpool seemingly went an entire season without being subjected to the indignity of Salah missing a good chance, but it really does happen to everybody. Dele Alli and his lone goal show up here as well. But, similar to Salah, Alli has a long track record of good goal scoring rates, he’s still doing all the other things that make him a wonderful player and if he’s healthy and on the pitch Spurs should have no concerns about him eventually coming good. The pair of Manchester City attackers on this list also should raise zero signs of alarm. It’s incredibly that Leroy Sane and Gabriel Jesus have even generated enough chances to make this list. Between them they’ve barely played 600 minutes. Sane has taken 10 total shots, Jesus has taken 15. The fact that they’ve both missed a couple of really good chances and ended up on this list is more indicative of just how bananas good Manchester City’s attack is, and how fast and furious the great chances are flying over at the Etihad than of anything potentially problematic with Sane and Jesus’s games. Elsewhere on the list are a handful of truer midfielders. Paul Pogba is here. He’s yet to score any non-penalty goals this season. What lands him on the list though isn’t so much the fact that none of his Pog-bombs have detonated yet, it’s that he’s had too relatively high value shots from relatively close range saved. That’s similar to Mateo Kovacic who makes the list despite only taking 12 shots. It just so happens that one of them was a great chance after Olivier Giroud (himself on the list and nothing to worry about) played him clean through on goal. When it comes to players that don’t take a ton of great shots, performance against expected goals is going to be very very swingy. Slam one into the corner from 30 yards and you’ve bought yourself a bucket of potshots to miss while your numbers stay pretty. Fall victim to a fingertip save when you’re clean through on goal and you may not come across a similar chance to claw back your bad luck for a month. It’s just another example of why the level of expected goals is important, and the level of performance as compared to expected goals is going to fluctuate wildly. That doesn’t mean you always ignore those fluctuations. Christian Benteke is on this list. Benteke has no goals from 14 shots, and that’s exactly the kind of thing you’d ignore if it wasn’t for the fact that he also had two goals from open play last year on 57 shots, significantly undershooting his 8.36 expected goals. This might be nothing. But he’s also 27 with a horrific injury history and an unorthodox game that has always combined typical target man skills with some outrageously outlandish goals. It is reasonable to be skeptical of Benteke right now and to suspect that perhaps his game has deteriorated in a way that is opaque to expected goals. That doesn’t mean we should assume that to be the case, but we should at least be open to the possibility. In a related case, Danny Ings has a very robust 3.9 expected goals and a much less robust two actual goals. At 26, he’s actually not all that much younger than Benteke. After several years in the wilderness thanks to injury and lack of form at Liverpool, his Southampton revival marks a return to relevance for the striker. It’s worth asking whether his underperformance should raise similar concerns to Benteke’s given their similar age and injury history. The short answer is no. While Benteke’s underperformance has been going on for over a year, Ings is now only eight games into his renaissance. If he keeps missing at an understated rate all season long, then maybe it will be time to reconsider at the end of the season. If there’s one slight niggling concern with Ings it’s that he’s never put together a strong top-flight season before and he’s only had two total seasons where he’s scored double digit goals. He scored 21 goals on the way to getting Burnley promoted in 2013-14, and then scored 11 Premier League goals for Sean Dyche on the way to relegation in 2014-15. That’s kind of a thin track record for a 26-year-old. The question is how to reconcile that history with the current eight games which feature a robust expected goal tally, and a more limited goal tally. The easiest thing to do is just to adjust the excite-o-meter from super optimistic to cautiously optimistic. Ings looks good, his goal scoring should catch up to his numbers, but it’s worth being aware that without a track record things could end up not being quite as rosy as they seem. This, by the way, is equally applicable to Raul Jimenez at Wolves who has similarly impressive numbers at a similar age and with a similarly thin top-level track record. There are stories you could tell about why any given player might or might not be performing to the level expected goals predicts. It’s important to remember that most (but, crucially, not all) of these stories are wrong. Usually, everything works itself out eventually. But rarely, something weird is going on. To be nerdy about it, using tools like expected goals allows us to set a very strong null hypothesis. Expected goals is almost always right in the end. Good analysis means internalizing that fact while also being on guard for the potential exceptions. It’s a constant dance of assuming the stories you’re looking for will be wrong, but looking for them anyway just in case this one time is the exception to the rule.

Explaining xGChain Passing Networks

(Editor's Note: This was originally published on the StatsBomb Services blog, but the URL was lost in a server move. We have re-published it here so it can be referenced in future work.)

Some of the work we need to do on the StatsBomb Services side involves teaching people how to use what we create. If it’s not practically applicable and/or can’t be taught, then it’s just a piece of art, not analytics.Today I’m going to discuss passing networks, with a specific emphasis on the xGChain passing networks you’ll find on the StatsBomb IQ platform and also on our Twitter feed.

What is a Passing Network?

It’s the application of network theory and social network analysis to passing data in football. Each player is a node, and the passes between them are connections.

The first time I saw them used in football was either a presentation by Pedro Marques of Man City at the first OptaPro Forum, or Devin Pleuler’s work at Central Winger on the MLS site.

We also used them at Brentford to do opposition analysis, specifically to find which players we might want to aggressively press whenever they get the ball, or looking at valuable connections between players we wanted to break.

The application is simple.

  1. Look at a bunch of recent matches for a club and you will often start to see patterns of play and interesting details you care about.
  2. Investigate a little further in the data to find usage information
  3. Go to the video and see what shakes out.

In many cases, analysts only have time to watch and analyse the last 3 matches of opposition on video. Using the passing networks gives them quick info in an easily digestible format that doesn’t cost them an extra 10-20 hours of video time.

Before we go any further though, I think it’s important to speak about the limitations of passing networks. These are a tool and meant to be part of an analytics suite to help you analyse games, but like any tool, you need to understand their weaknesses.

First, each node consists of the average location of a player’s touches. If they switch sides of the pitch regularly, their average will look central, even if they never touch the ball in that area. This is a limitation of the vis and why we ALWAYS use video to back stuff up.

On the other hand, if you want to stay data-based, you could use things like heat maps, or even dot touch maps for every place a single player touched on the pitch to get more accuracy. This is a bit like using shot maps to supplement aggregate data in player radars to get a clearer picture.

The second limitation is that this info is an extrapolation of what actually happened. Did the fullback pass 15 times to the left wing, exactly along the path in the vis? No, of course not. That information is also easily visualized, but it’s just not contained here.

The third limitation is that these don’t actually explain that much by themselves. They take snapshots of actions through a match and combine them into a bigger picture. It’s like a movie where you only see 20 of 50 scenes without seeing the whole thing. Sometimes, you’ll end up with a clear idea of the plot. Other times, you are going to be really surprised when your friends start talking about the whole Verbal Kint/Kaiser Soze thing. They are still useful, but this is another reason why - in practice - we almost always pair this analysis with video work to complete the picture.

Design Stuff

Right, so we have passing networks. Some people do them vertically. We do them horizontally.


For starters, most humans are accustomed to looking at football matches left to right. High angle tactical cam footage from behind the goal is quite useful if you can get it, but the vast majority of the audience views football in a left to right perspective.

The next thing you notice is that we stack ours on top of each other. This happened as a bit of a happy accident where I noticed a pressing team had a map very high up the pitch. I then put the map from their opponent underneath, and voila! we had a fairly clear view of territoriality in the touch maps.

If you take a step back, it seems fairly obvious, right? There are two teams on the pitch, and each of their actions impacts the other one, so visualize both together. However, actions between two teams aren’t always linked. The shot locations of one team don’t have any impact on the locations of the opponent. Passes do though, so at least in my opinion, pairing them as part of this vis makes sense.

We also have them both going the same direction, which seems to strike some people as odd. All I can tell you is I think the territory element is much clearer if they go in the same direction, but people are welcome to test their own implementations and judge for themselves.

What else do we have… ah yes, the big difference: colour.

With passing networks, there is a real danger of adding so much information that your vis basically becomes unusable. It’s an incredibly info-dense visualization to begin with, so adding more elements is likely to make understanding what you are trying to display harder instead of easier. I think Thom walked this tightrope perfectly, adding the extra xGChain layer of data while still leaving it interpretable, and to be honest, totally gorgeous.

That said, it may take looking at these a number of times before you become comfortable with what they are trying to display. The same caveat was true of radars and shot maps, and is another reason why analysis blends elements of art with data science.

The xGChain Layer

First you need to understand what the xGChain metric is. So, any time a player is involved in a pass in the possession, they get xGC credit, and then we sum up their involvement over the course of a match and colour their node based on that.


Because this allows us to take the network vis beyond basic counting stats and starts to examine the value of a player’s contribution to the match. Because the colour scales are tied to the 5%/95% cutoffs I started back with the radars, you also get an easy reference for whether a player’s attacking contribution was pretty great (RED), pretty poor (GREEN), or somewhere in between.

We also start to get a sense of how non-attacking players are contributing to valuable build-up play in a way that just makes sense (at least to me).

Quick Reference

  • Size of node = number of touches
  • Thickness of line = number of passes between two nodes
  • Colour of node = linear scale from green to red (.6-1.4 xGCh based on 5%/95% cutoffs)
  • Colour of line = the total xGChain of possessions featuring a pass from A->B (0-.5 values based on 5%/95% cutoffs)

We Still Use Numbers

On Twitter, you will generally see just the visualization. This is mostly due to the limited, bite-size nature of the format. However, on the StatsBomb IQ app, Passing Networks also include all the individual and combination numbers you see below.

The combination of the vis and the numbers represents the whole of the analysis. The vis gives you basics, the numbers specifics, but both are still constrained by the limitations of this visualization format.


In this one you see Liverpool pushed quite far forward and had massive amounts of possession and created reasonable chances. Pretty much everyone is involved, but Coutinho and Lallana only put up good, not great xGChain numbers for the match. On the Swansea side, Llorente is the only guy up high most of the time, while he and Wayne Routledge both put up big numbers for the game, and Swansea came away with a vital win.

Just a single plot this time from Liverpool’s trip to Bournemouth earlier in the season, mostly to compare same team performance. Here Firmino is posted out wide instead of central, and had comparatively little impact in creating big scoring chances for LFC that match. Normally he’s a fiery red circle, but for this match he’s ineffective green. That’s another cool element these plots allow. Instead of focusing on the full match, you can isolate one player across a number of positions and games and see what it does to their performance.

I posted this one because both team’s maps are pretty incredible. City’s front three have average touches nearly on the 18, and nearly everyone except Claudio Bravo is red or orange. Meanwhile Boro had almost none of the ball and created almost nothing as well. The match ended 1-1, with Boro scoring a very late equalizer. 90% of the time our simulations think City win that match.

It’s always fascinating to see what happens to these maps when two elite teams square off. This is from the 1-0 Dortmund home win earlier this season. Bayern dominated the touches, but Dortmund just edged then in xG, 1.40 to 1.24. Aubameyang was rampant the entire game, and every time Dortmund touched the ball, they felt dangerous while doing a pretty good job of stymying Bayern’s great attackers.

How Do You Use This Inside a Professional Football Club?

Typically what I would do would be take passing networks for the last 10 matches from the next opposition and divide them into home and away games. Stick the numbers next to each of them for reference, and start to look for patterns.

Which players provide the engine for plan A when this team attacks?

Which players have the most valuable touches?

Does their fullback tend to get really high in possession and can we play behind them?

Which players should we look at for potential pressing triggers?

If we have a choice, which center back would we allow to play the ball forward?


This is already long, so I will wrap it up here. We view passing networks as an integral part of data-based football analysis. Provided you understand their limitations, they can provide a huge productivity boost to opposition and own team analysis. We also think the addition of our xGChain metric adds a layer of value to a visualization that previously only contained counting stats.

If you work in football and want to see what else the StatsBomb IQ platform has to offer, please get in touch.

--Ted Knutson



Lies, Damn Lies, and Germany's Expected Goals

If you just looked at Germany’s expected goal numbers you’d think they were extremely unlucky to be eliminated in the World Cup. That’s a good reason to not just look at expected goals numbers.

In their three group stage games, Germany averaged 1.84 xG per game. Only Belgium, Brazil, England and Spain averaged more. Defensively they weren’t quite as strong, they gave up 1.17 expected goals per match. That was pretty average for the tournament, 15th give or take a rounding error. Put it all together and you get the sixth best xG difference in the tournament. Hard not to look at just that numbers and come to a very simple conclusion. If the team with the sixth best xG difference doesn’t make the last 16 teams there’s nothing much to be done. Bad luck happens, shrug your shoulders, go get 'em next time.

This, of course, would be an incredibly incomplete analysis. Let’s take a look at the games individually. Here’s the Mexico match which started it all off.

Two important things to note. When the game was even, Germany trailed from an xG perspective before they conceded and started trailing from an actual goal perspective. The bulk of their xG accumulated as they were chasing the match, ultimately unsuccessfully.

And, hey, what do you know, they same thing happened in their second match

Germany were not only chasing the match, but chasing their survival in the tournament and ultimately they snuck ahead thanks to all that pressure, and an amazing set piece strike from Toni Kroos.

Match three is a bit of an eye of the beholder situation, and also demonstrates the limits of game state analysis in a tournament structure. Germany needed to win to advance, they started the match accordingly. As the match progressed they were increasingly (correctly) playing tactically as if they were down a goal.

And, of course, they kept missing. It’s certainly reasonable to look at the entire match and understand that Germany were unlucky not to score, but also that if they had scored earlier, their xG total would likely have ended up lower as they switched modes to preserve their lead.

Imagine a world where Germany came out and scored against South Korea in the first minute. It’s obviously impossible to know exactly how the rest of the game would play out but, at a minimum it’s hard to imagine that protecting a lead with advancement on the line, two forwards, Mario Gomez and Thomas Mueller would have come on for two midfielders in Sami Khedira and Leon Goretzka. Of course, the flip side is also true, if Germany weren’t ramping up the pressure and desperately chasing the game, they certainly wouldn’t have been so wide open, like Manuel Neuer in midfield leaving an empty net wide open, in the dying minutes of the match.

Small sample size isn’t just a problem when it comes to the difference between goals and xG, it’s also a problem when it comes to what xG says about teams themselves. It takes only a passing understanding of xG to look at Germany and correctly point out that they were unlucky not to score more. But, it’s also true that if they had not been unlucky, then on the attacking end their xG would have been more modest.

Three games is only three games, and it can only tell us so much about at team. In the same way that goal scored and conceded don’t tell us the whole story and there aren’t enough matches to even out the whims of the finishing gods, so too there aren’t enough matches to get past how the whims of the finishing gods can influence xG. We don’t know what Germany’s xG totals would have looked like if they hadn’t spent so much time chasing matches. But, what we do know is that in two games, against two teams they were supposed to be better than, they played roughly equally until falling behind.

Over the course of a season, of course, these things even themselves out. Sometimes a team will chase a handful of games in a row, and sometimes they’ll be chased. Sometimes they’ll get exceptionally hot or exceptionally cold for a match or two or six, and that will impact their xG totals, but eventually, the finishing evens out, and so does the xG. Not over three matches though, and especially not over three matches when a team spent one of them chasing the match from kick-off.

There are two separate ways that xG is predictive. We talk a lot about the first, that it's better at predicting future goals than just about anything else out there. But, there’s a second factor as well, and that’s that xG is very predictive of itself. Generally speaking, teams find their xG levels fairly quickly and those levels remain fairly stable going forward. That’s why the metric can underpin predictive models. But, even if xG is a fairly reliable fairly quickly, it’s not settled after only three games. And even if it was, outliers remain, and part of the task of doing analysis involves looking at outliers and evaluating whether there’s any reason for their outlier status…like say spending an entire game running up the xG score specifically because there’s no actual scoring going on.

Ultimately, it’s difficult to say anything definitive about Germany in just three games. We can’t say for sure whether a more normal slate of games would have served to increase or decrease their xG difference, but it certainly could have changed it. Over three games, looking at xG without the context of what happened will often lead to getting the wrong impression. Statistical tools are great, but the smaller the sample size the more they need context. And the World Cup is an absolutely tiny sample size.

The Dual Life of Expected Goals (Part 2)

Yesterday, in part one, we talked about how expected goals came to be. Today, we’re going to look at what StatsBomb is doing with it.

The way the world started using xG for single games, combined with the shortcomings of that usage, presents an awkward point. Given how the stat was constructed, and the way it works, we know a lot more about how it operates mechanically than we do about why.

Broadly, teams eventually score and concede roughly the number of goals they're statistically predicted to, but the day to day decision making and minutiae of managing a team, the actual process that results in goals and expected goals ending up close together is largely opaque. Hopefully, StatsBomb can start pulling back that curtain. And to do that, we need to talk about our favorite thing. It's data time (but not Lore, never Lore).

The Limited Eyesight of Data

Much of the work that goes into building xG models has to do with getting around the limits of the data available. Location is recorded, so is the body part used to take a shot, the kind of pass that led to the shot, any instances where the player dribbled around a defender, and a handful of other specific events. Still, using on ball data is like trying to figure out what's in a giant warehouse with a tiny flashlight. What you see in front of you offers clues as to what you can’t. But you’re still left doing guesswork to fill in the blanks.

Did the shot come after a fast attack?

If so that means the shot ends up being a little bit better on average than after a slow one. Why? Because the speed of the attack means that the defenders were likely less set and more likely out of position. Did the player dribble by the keeper before the shot? Well then that gets a big boost because that means the goal is most likely wide open. Was it from a through ball? Great, there are probably less defenders in the way, give that shot a boost. And on and on and on.

Clues in the data let analysts extrapolate out to what they can't see. Additionally one thing that data collectors have done to help build more data sets is use some sort of signifier to indicate if a chance is an extremely good one. Recognizing that nothing in the data set will distinguish particularly good chances from similar looking but mediocre ones, data collection leaned on creating a label that let everybody know


Tautologically, knowing that a chance was good helps xG models determine if a chance was good. It's also a bit of outside information being slipped into recorded data. Big chances aren't a depiction of what's going on on the pitch, rather they're a tiny bit of analysis used to supplement it, a recognition, and attempt to compensate for, the necessarily incomplete data. StatsBomb isn’t doing that.

We’re Going to Need a Bigger Flashlight

Rather than use a big chance moniker, StatsBomb is trying to do a better job including more information about every single chance created. To that end, StatsBomb data, as Ted Knutson talked about in his presentation at the launch event, records all sorts of stuff. One big difference is defensive positioning. Any defender on screen when a shot gets taken gets recorded. The same is true of keeper positioning and shot velocity. All of these are additional pieces of information that help illuminate what’s going on on the pitch.

The reason to do this isn’t necessarily because it will make an xG model more predictive (though hopefully once there’s lots of data in, and the testing is done, and the smart people who do the number things are done doing their number things it will), but rather that SBxG (StatsBomb xG, get it? We're really good at naming things here.) will better describe reality. Let’s take an example. Back in March, Leicester City hosted Bournemouth.

In the 73rd minute, Leicester won a corner. After the ball ricocheted around, Harry Maguire managed to pass it to Kelechi Iheanacho, who had the ball on his right foot directly in front of the goal. Somehow he managed to put it wide. This is a chance it’s easy to rate quite highly. He’s right on top of goal, he’s got it on his foot, he had the ball past to him from nearby instead of reacting to a scramble. All pretty good indicators. Here’s what the shot looks like to a typical xG model. It ranked it 0.93.

Here’s what it looks like to StatsBomb.


And here’s what the play looked like to watch.

Pretty different. Should we do another one?

This one is from Swansea and Jordan Ayew. He scored from just outside the box away against Crystal Palace in late August. Here’s a typical xG evaluation. This particular goal is the little green dot at the top of the box. Seems like a pretty unlikely shot from distance. This xG model gives the shot a 0.06.

Now here’s the SBxG.

And here’s the video.

Seems like keeper location was pretty important for evaluating this shot.

SBxG and Cautious Optimism

Those two examples are unfair.

They’re extreme outliers, situations in which missing information, either on the keeper or on defender location are particularly damaging to a typical xG model’s ability to correctly measure a shot. In the grand scheme of things those shots are the exception, not the norm. Also, in the grand scheme of things those exceptions don’t particularly hurt xG’s ability to do the job for which it was designed. But, outliers are valuable to coaches.

They’re valuable to analysts, and they’re valuable to fans. And they're valuable to understanding small sample sizes like a single game. It’s pretty clear watching the tape that xG gets that Iheanacho shot wrong. It obviously misses the Ayew one. StatsBomb data picks up on that. Old data showed Bournemouth’s defense breaking down, and somehow avoiding conceding. Our data shows a Bournemouth defense standing strong in a difficult situation. Old data shows Ayew getting lucky from distance, scoring a low percentage shot that coaches would be happy to give up. Our data shows a dreadful defensive mistake.

This data is all new, so we’ve got a long way to go before we can actually make definitive claims about, well about anything really. But, the design is for StatsBomb data to be granular enough to describe chances as accurately as the vague moniker “big chance” while also giving a wealth of descriptive information about shots. It's impossible to say for certain what the future of using this data looks like. We simply don’t know how often examples like the ones above occur, or if they occur in measurably consistent ways. It’s possible that at the end of the day all this data doesn’t actually improve overall predictability much, but it improves precision a lot.

It’s possible it only improves precision a little, and in obvious situations like the ones above.

That is, rather than revealing something new, this data only confirms what close watchers of the game can see. That has value. It certainly has value for coaches looking to evaluate performances, or fans looking to understand what happened.

It’s also possible that as this data becomes more robust, and we have more games and seasons and leagues under our belts, patterns will start to emerge. Perhaps certain teams or players will stand out as doing something that fooled earlier xG models. Maybe the model will pick up on errors in defensive positioning more reliably, or be better able to quantify teams that pack the box. It’s impossible to know until the work gets done. The exciting thing is that now that all this new data is here, there’s finally something to do that work on. It’s too early to know exactly what goodies this data has in store for more robust xG models. But, it’s definitely time to get excited about finding out.

The Dual Life of Expected Goals (Part 1)

“Let me explain... No, there is too much. Let me sum up”  --Inigo Montoya

The great thing about running a football stats website is that you get to do things like devote thousands of words entirely to a single statistic, and there’s nobody to tell you not to. So, let’s get into expected goals, what it is, where it came from, and most importantly where it’s going from here. Lots of football fans have only experienced the good ol’ xG as a single game number, either included on the bottom of a TV scroll, next to shots, fouls and assorted other stats, or on twitter as a pretty little shot map. That wasn’t what it was designed for though. Single game xG is a useful tool (and one we here at International StatsBomb Headquarters are committed to making more useful) but it was originally developed for something entirely different.

Goals: The Only Stat that Matters

In the beginning there were goals. Just goals. That was the only thing that was counted. Whoever had the most goals won the most games. You play to win the games. Therefore, the only thing that mattered was counting goals. There were some exceptions of course. Charles Reep notably counted passes by hand well before the rest of the world decided to do the same. But, for the most part, people watched football and counted goals, and the years went by. Eventually, somebody decided to count the passes leading to goals as well. And voila, there were assists.

At that moment, at the dawn of statistical time, a schism was born. On a team level, the statistic of goals gives you more information, than if you didn’t have it. Not only is it the way in which we keep score, but also the knowledge of a team’s goal difference helps observers determine how good they are with more accuracy than if they knew whether they had won or lost. On the other hand, knowing about a team’s assists doesn’t give an outside any more information about how good the team is. There’s a reason that goal differential is a thing and assist differential isn’t.

Statistics, at their heart, serve two purposes. The first is predictive. What do knowing these numbers tell us about the future? Knowing how many goals a team scored and conceded makes people better able to predict how likely a team is to win future games. The second is descriptive. What do these numbers tell observers about how things happened? Assists are a descriptive statistics, and a useful one, but they aren't especially predictive. If assists were zapped out of existence overnight there'd be very little impact on the world's ability to predict the outcome of football matches.

That’s a tension that has always existed, and it’s one that remains at the heart of how the football world is increasingly using xG.

Shoot Your Shots

Before getting to modern statistical times, there’s one more stop to make. One of the first things that statisticians began regularly counting was the number of shots teams were taking. It’s an obvious statistic to look at, and it turns out that it’s pretty important. You cannot score (for the most part) if you do not shoot. This is not rocket science. It’s not even bottle rocket science.

As Ted and James talked about on the last StatsBomb podcast the groundwork for looking at shots in football was laid in hockey. In hockey shots served both a clear descriptive purpose and provided predictive utility. Shots in hockey are a pretty good way of describing who has possession. Descriptively, by saying teams have a lot of shots, you can also say that teams have a lot of the puck. Predictively they also have a lot of value. In hockey the best teams reliably take a lot more shots than their opponents, but it’s very hard to control how often the shots a team takes are scored. By measuring how many more shots a hockey team takes than their opponents, it gets easier to predict which hockey teams will do well in the future.

Those findings were applicable to football, but only in a limited way. The first major problem is that descriptively comparing shots is not a particularly good way to measure possession. The relationship between possession and shooting is a lot looser in football than hockey (this will surprise nobody who has watched either sport for more than ten minutes. It’s mostly down to one sport being played with feet on grass and the other one being played with sticks on ice. Small things like that.). Using shots as a proxy for possession doesn’t really work. Broadly speaking football uses passes played to measure possession, which is better, but not perfect.

Despite that, measuring shots is still pretty good as a predictive tool. Knowing how many shots a team has taken and conceded makes you even more able to predict how they’ll do in the future than if you only knew about their goals scored and conceded. That’s great. It’s also frustrating. The gap between shots’ predictive power and descriptive power makes it impossible to turn the information we get from shot differentials into anything resembling insight.

The information those stats contains does a pretty good job of explaining what will probably happen next, and a terrible job of explaining why. If a team is scoring a particularly high percentage of their shots, or on a particularly cold run, looking at shot numbers doesn’t offer any answers as to why it’s happening. All that they have to offer is an assurance that it probably won’t continue.

One thing that’s important to note here is that just because these stats can’t provide a reason for the divergence between shooting and scoring doesn’t mean there isn’t one (or many), it just means that those reasons are incidental to predicting what comes next. That’s an answer that’s useful to only a very small group of people (mostly the ones looking to put a bet down). It doesn’t help people interested in understanding what’s going on, people like, say, coaches who have to make the hundreds of daily decisions which go into running a team.

And now, finally, we get to the good stuff.

What to Expect When You’re Expecting Goals

Using past shots to predict how will teams will do in the future is good. Further modifying that to factor in what type of shots teams are taking is even better. That’s, in effect, what xG does. Notably what xG was not developed to do is accurately describe a single shot or a single game. Rather, it was designed to take lots of information, thousands and thousands of shots, synthesize it, and use that information to represent how many goals a team might reasonably be expected to score or concede given the types of shots they’ve taken and given up.

This is good and useful information. There are ample studies showing how this process is better at predicting how a team will do in the future than pretty much anything else out there. It takes the old information, based purely on the volume of shots and improves it. It turns out that sometimes when a team is shooting better or worse than average it’s because on average they’re taking better or worse shots.

There are two problems with xG as currently constituted. The first is that just like with a basic shot based metric teams frequently spend stretches of time doing better or worse than where the metric thinks they’ll end up. And, just like with shots, xG doesn’t offer many answers other than the (quite good) prediction that eventually that will stop. It explains part of what shots miss, but there’s still plenty of room left blank.

The problem of what xG might be missing in the short term is encapsulated by how it’s used for single games. It’s important to start off by saying, that xG maps contain more information than pretty much any other form of quick glance game recap. But it’s not what it was designed for. The total goals a team score will often differ wildly from what xG predicts. Frequently this is by design. If a player misses a sitter, xG and actual goals should differ. That’s the point. The model is crediting the team for creating the chance, understanding that in the future creating those chances will lead to goals.

So, there’s a way in which single game xG totals differing from the result is a direct sign that the model is working. But, there’s another reason they can differ as well. The value that an xG model assigns to any given specific shot is based on an average of past similar shots. So,  it takes into account things like location, whether or not it’s a header, the kind of pass that led to the shot, etc etc, mixes them all together and spits out a value.

The problem with averages is that they’re averages. Any single chance can differ significantly from that average. Because we know that xG works, and is quite predictive, we know that over the long run the ways those individual shots differentiate from average more or less cancel each other out. But, during a single game, that definitely doesn’t happen. A team with a high xG total but no goals might have missed a bunch of good chances, or the chances they had might have been harder than the model predicts. Single game xG totals don't differentiate between the two.

Luckily StatsBomb can help with that problem. To find out how, stay tuned for part two.

On Burnley and Expected Goals

Expected goals has found itself outside the confines of the analytics community this season, which has brought renewed questions regarding its flaws, foibles and failures. The poster-child for expected goals flaws has been Burnley and their over-performing defence, even finding themselves in the New York Times courtesy of Rory Smith. Smith's article is a fine piece blending comments and insights from the analytics community and Sean Dyche himself. Smith quotes Dyche describing Burnley's game-plan when defending:

The way it is designed is to put a player in a position that it is statistically, visually and from experience, harder to score from.

Several analyses have dug deeper into Burnley's defence last season, including an excellent piece by Mark Thompson for StatsBomb. In his article, Mark used data from Stratagem to describe how Burnley put more men between the shooter and the goal than their peers, which may go some way to explaining their over-performance compared with expected goals.

Further work on the EightyFivePoints blog quantified how the number of intervening defenders affected chance quality. The author found that when comparing an expected goal model with and without information on the number of intervening defenders and a rating for defensive pressure, Burnley saw the largest absolute difference between these models (approximately 4 goals over the season). If there is a quibble with Smith's article it is that it mainly focuses on this season, which was only 12 games old at the time of writing. Much can happen in small samples where variance often reigns, so perhaps expanding the analysis to more seasons would be prudent. The table below summarises Burnley's goals and expected goals conceded over the past three and a bit seasons.

Burnley's non-penalty expected goals and goals conceded over the past four seasons. Figures for first 13 games of 2017/18 season.

Each season is marked by over-performance, with fewer goals conceded than expected. This ranges from 5 goals last season to a scarcely believable 15 goals during their promotion season in the Championship. The above table and cited articles paint a picture of a team that has developed a game-plan that somewhat flummoxes expected goals and gains Burnley an edge when defending. However, if we dig a little deeper, the story isn't quite as neat as would perhaps be expected. Below are cumulative totals for goals and expected goals as well as the cumulative difference over each season.

Burnley's cumulative non-penalty goals and expected goals conceded (left) and the cumulative difference between them (right) over the past four seasons. Figures for first 13 games of 2017/18 season.

In their 2014/15 season, Burnley were actually conceding more goals than expected for the majority of the season until a run of clean sheets at the end of the season saw them out-perform expected goals. After the 12 game mark in their Championship season, they steadily out-performed expected goals, yielding a huge over-performance. This continued into their 2016/17 season in the Premier League over the first 10 games where they conceded only 12 goals compared to an expected 19. However, over the remainder of the season, they slightly under-performed as they conceded 39 goals compared with 36 expected goals.

The above illustrates that Burnley's over-performance in previous Premier League seasons is actually driven by just a handful of games, rather than a systematic edge when examining expected goals. This leaves us needing to put a lot of weight on their Championship season if we're going to believe that Burnley are magical when it comes to expected goals. While the descriptive and predictive qualities of expected goals in the Premier League is well-established, there is less supporting evidence for the Championship. Consequently it may be wise to take their Championship figures with a few grains of salt.

This season and last has seen Burnley get off to hot starts, with what looks like a stone-cold classic example of regression to the mean last season. If we ignore positive variance for a moment, perhaps their opponents got wise to their defensive tactics and adapted last season but then you have to assume that they've either forgotten the lessons learned this season or Dyche has instigated a new and improved game-plan. The cumulative timelines paint a different picture to the season aggregated numbers, which might lead us to conclude that Burnley's tactics don't give them quite the edge that we've been led to believe. In truth we'll never be able to pin down exactly how much is positive variance and how much is driven by their game-plan. However, we can state that given our knowledge of the greater predictive qualities of expected goals when compared to actual goals, we would expect Burnley's goals against column to be closer to their expected rate (1.3 goals per game) than their current rate (0.6 goals per game) over the rest of the season.

Time will tell.

xG is on TV. Now What?

It's been ten months since I wrote xCommentary, which came out of frustration from hearing my 7-year-old, who is fully addicted to Sunday morning Match of the Day binges, parroting factually wrong commentary.

I don't want to repeat what I said there because I think the piece stands on its own quite well. However, with the announcement that Match of the Day will now be using expected goals as part of the program combined with what is a clear push for Sky to move forward in this area, I did want to cover a bit about how to use these silly numbers in the first place.

The short answer, at least at first is: with caution.

First of all, this move is a good thing.

The fact that broadcasters in the UK are willing to move in this direction is a positive for analytics in the sport. Period. Huge credit to Opta, Sky, and the BBC for making this possible. I'm still quite staggered that it is happening at all, and using and explaining these numbers daily has been my job since 2014.

Yes, there may be rough patches to start, but everything new has those. Yes, there may be quibbles about the precision of the model(s) used, but the remarkable fact here is that a model is going to be used at all. I have barely seen the numbers, but if there is a backlash about general discrepancy, then presumably there will be a push to improve the error of the models.

That's part of the natural process of data science. Yes, expected goals discussion might be best served by having a smart stats guy on air to explain them clearly and concisely, but let's give all of this a chance before we kill it.

Second of all, please be gentle...

Okay, so we've got an expected goals model.

What do the numbers it spits out actually mean?

This is where you have to be really careful in making claims about what single shot xG numbers do and do not convey. The analytics community are all guilty of treating these as defaults, largely because the venue where we usually discuss these things is limited to 140 characters.

That doesn't allow much room for caveats. In reality, every tweet about xG values of single shots or even single games comes with a whole host of legal fine print that no one really cares about except the data scientists.

However... since this is going to be on TV, some caution is advised. An xG value like .40, means that 40% of the time a shot with these qualifiers from this location has been scored.

This means all previous shots are factored into that number, which will include a whole range of very simple chances as well as insanely hard ones. So why do we care about this? Because it doesn't actually say much about this particular shot we are discussing right now. It's more like "in the past, this has happened."

Now the reason we're here at all is because most TV commentators have previously been really bad at estimating historic likelihood. (This is a verifiable claim.)

For some reason they seem to think the modern incarnation of football is a much easier game than when they played, which makes them far too critical of whether any particular chance should have been scored. I don't know why this is, but it's an epidemic across the entirety of European commentary and there isn't a way to change it without some sort of objective information.

This is where xG shines, because it provides an anchor point based on history. All the players in the data set taking these shots are/were professional footballers. It's not like we're comparing the expertise of children against the Sergio Agueros of the world - these are mostly like for like comparisons.

And this is where the commentators get to apply their expertise...

Because as noted above, xG models have very little information about the particulars of any one chance. Commentators, on the other hand, have all the information, including expertise in knowing what it's like to be on the pitch trying to score those goals.

They can then apply their expertise and tell us why a single shot is likely easier or harder than all the other shots from that location. It won't generally turn a 9% chance into a 90% chance (see also: wide angle headers from 10 yards out), but it could easily be double or treble what the model estimates.

I stated in my article last year, I feel like the commentators don't get enough chance to apply their expertise in place of cliche. Adding an underlying xG model gives them exactly that opportunity.

My show pitch

Opta have a lot of data from the entirety of the Premier League at their disposal. It would be brilliant to see someone walk ex-players back through the stats and data from their own careers and discuss it, especially when paired with video highlights. It could also potentially be a huge conversion point for players and coaches on the value data represents to the game.

Example: Alan Shearer is easily one of the best forwards ever to play in the Premier League. This isn't a claim anyone will argue with. However, as good as he was, Shearer probably only scored about one in every five shots he took. 20%. Maybe less. If one of the PL's best ever forwards only scores at that rate, and you prove this info to him with his own stats, maybe it will soften/improve his commentary when evaluating others?

Football has changed.

I've been saying this all summer, but even compared to 12 months ago, I am seeing massive differences in how interested clubs are in adding data analysis into their football process. The fact that media are picking up on this and moving forward is a clear sign that football itself is in transition. Whether certain groups of fans like it or not, the world is progressing from viewing data analysts as "xG Virgins" (as someone recently tweeted at me), into people that work inside of football clubs and have their analysis appear regularly in the mainstream.

My suspicion is that this transition won't be an entirely smooth one, but it is unequivocally positive. It's also going to create an entire new generation of highly educated fans and coaches who view the game itself in a more knowledgeable light.

In the meantime, my only request is please, be gentle.

With feedback, with drawn conclusions, with criticism. With everything.

Ted Knutson