Expected goals (xG) is a predictive ML model used to assess the likelihood of scoring for every shot made in the game.
For every shot, the xG model calculates the probability to score based on event parameters:
- Location of the shot
- Location of the assist
- Foot or head
- Assist type
- Was there a dribble of a field player or a goalkeeper immediately before the shot?
- Is it coming from a set piece?
- Was the shot a counterattack or did it happen in a transition?
- Tagger's assessment of the danger of the shot
These parameters (plus a few technical ones) are used to train the xG model on the historical Wyscout data and predict the probability of the shot being scored.
The probabilities range between 0 and 1. A shot of 0.1 xG means a shot like this should be scored 10% of the time. A shot of 0.8 xG means a shot like this should be scored 80% of the time. A penalty xG value is fixed to 0.76.
At the moment there are no additional constraints for xG of shots in the same possession. So a sequence of shots in short succession (like a rebound after a save) could theoretically yield an xG value of > 1. Currently they are considered to be different shots and all xG values are calculated at the shot level.
Pre-shot and post-shot xG
The pre-shot xG model (or 'xG' for short) is trained on all shots (including blocked shots and shots wide), only using the information at the moment the shot is token. However, Wyscout also calculates post-shot xG ('xCG' in goalkeeper context for 'Expected conceded goals'). Here only shots on target are used in training (all blocked shots and shots wide automatically have a post-shot xG value of 0), and parameters like the coordinates of the goal where the shot is estimated to go in are included. The post-shot xG for a given shot is usually higher than the pre-shot and can reflect finishing skills. Post-shot xG is especially valuable for evaluating goalkeeper impact on conceded goals.