What are expected Goals?

A more wonky and mathy explanation is below, but here's the basic gist: expected goals (xG) are the number of goals that can be expected to be scored based on where and how a shot was taken. We all know that a shot in the six yard box is more likely to go in than a shot from outside the 18. Similarly, a shot taken with the shooter's foot is more likely to score than one taken with his head. We can combine these things - shot location and type - and assign it an "expected goal" value.

For example, the relatively easy tap-in by Kaka in the GIF above was worth 0.93 xG, which means that a shot like that one goes in 93% of the time.

Conversely, this absolute goalazo by David Villa was only worth 0.009 xG, or about 1/111th of a goal. Put another way, a shot from there only goes in once every 111 times it's tried. 

And we can take it beyond expected goals to expected assists (xA), too. The shot from Patrick Mullins in the video on the right was worth 0.314 xG, and it was all set up by the nice pass from Diego Martinez. Because of his assist on the shot, Martinez gets credit for 0.314 xA, even though the shot didn't go in.

So in short, expected goals are however many goals can be expected to be scored, based on all the information we have about the play. If you want to see how they break down, check out our expected goals by team, player, keeper, and game.

Details on ASA's Expected goals model

Expected Goals 3.0 takes our data to another level of detail. Below we have articulated the key improvements, but a more formal explanation of the methodology can be found here.

Shot Location

Before, it was just six zones, but now we have shot distances, measured in yards from the center of the goal mouth. But distances don't tell the whole story without angles. All shot locations are measured by angle off center, and then converted into width of goal mouth available to the shooter. On a shot from straight on, a player "sees" all eight yards of the goal width, whereas from an extreme angle, a player may only have a yard to work with.

Goal Mouth Placement

As with shot location, we used to only have six placement zones within the goal mouth. Now we have the ball's height and distance from the center of the goal mouth. This adds to our ability to rate keepers' abilities to make difficult saves, as well as identify shooters' placement tendencies.

The combination of shot location and goal mouth placement leads to information about how far the keeper had to dive to reach the ball. Without knowing the keeper's position at the time of the shot, what we do is indicate how far he would have had to dive if he had positioned himself in the optimal location geometrically. 


In addition to the typical patterns of play (like set pieces or the regular run of play), we now indicate whether the shot was assisted, and if so, whether it was via cross, through ball, or neither. Crosses detract from the shot's likelihood to go in, while through balls increase a shot's likelihood of going in. Teams getting a lot of chances off crosses must win the quantity battle, because they won't likely win the quality battle.

Not only do we have more passing details, but we can link key passes back to the passer. Key passes are passes that lead directly to a shot. You will now find a new stat on the players page: xAssists. These measure the Expected Goals value of all shots for which a particular player passed the ball.

The Models

The expected values of shots were determined using a logistic regression, and three distinct models were created: one for teams, one for shooters, and one for goalkeepers. Those models are given below.

Here's Matty's post on validating the model.

Shooter/Team Model Estimate Std. Error Z-value P-value)
Intercept 4.172 0.170 24.589 0.000
Distance (log-yds) -2.353 0.047 -50.056 0.000
Goal Mouth Available (quadratic-yds) -0.026 0.007 -3.785 0.000
Goal Mouth Available (yds) 0.069 0.019 3.716 0.000
Headed (binary) -0.648 0.066 -9.746 0.000
Cross (binary) -0.380 0.061 -6.206 0.000
Through ball (binary) 0.909 0.074 12.292 0.000
Corner (binary) -0.622 0.064 -9.753 0.000
Free kick (binary) 0.539 0.117 4.592 0.000
Indirect Free kick (binary) -0.192 0.080 -2.393 0.017
Fastbreak (binary) 0.680 0.106 6.397 0.000
Penalty (binary) 2.735 0.134 20.336 0.000
Each binary variable from Corner to Penalty is mutually exclusive, with "Regulary play" representing the excluded reference level.
Goalkeeper Model Inputs Estimate Std. Error Z-value P-value
Intercept 5.233 0.228 22.944 0.000
Distance (log-yds) -2.774 0.070 -39.571 0.000
Goal Mouth Available (quadratic-yds) -0.025 0.008 -2.942 0.003
Goal Mouth Available (yds) -0.138 0.023 -5.913 0.000
Headed (binary) -0.896 0.092 -9.722 0.000
Cross (binary) -0.146 0.084 -1.743 0.081
Through ball (binary) 0.516 0.089 5.792 0.000
Corner (binary) -0.115 0.085 -1.347 0.178
Free kick (binary) 0.377 0.139 2.703 0.007
Indirect Free kick (binary) 0.010 0.106 0.093 0.926
Fastbreak (binary) 0.507 0.130 3.904 0.000
Penalty (binary) 2.038 0.180 11.346 0.000
Lateral Distance to Shot (yds) 1.093 0.033 32.845 0.000
Goal Mouth Height Deviation (from 3.5 feet) 0.266 0.025 10.499 0.000
Goal Mouth Height (feet) 0.129 0.013 10.122 0.000