What is xG?
How often does a shot like this go in? Pick a real one, move it, change it. The number is our model, live.
This shot’s chance from every spot, everything else as set. The white dot is the shot.
The baseline is frozen. Change anything; the difference is now minus baseline at every spot (orange: more chance, blue: less). The dashed ring is the baseline’s shot.
Where the number comes from
Start from an average shot and add this one’s details. They add up to this shot’s number.
Points of chance each detail adds (orange) or takes away. Each one is measured against every shot the model learned from (TreeSHAP, the standard method for tree models), and the average shot is the model’s own average. Details act together, so each one’s share is averaged over every order they could be added in. An input set to All is averaged over the seasons’ shots, each value weighted by how often it happens; its row shows that input’s average effect.
Is a rush more dangerous?
A plain 5-on-5 wrist shot at three spots, scored by both models: after a faceoff (a plain shot), off a typical rush (a giveaway back outside the blue line, 3 s before), and off a typical rebound (a shot on goal, 2 s before). The multiple is against the plain shot.
| The pinned model | The tuned rebuild | |||||
|---|---|---|---|---|---|---|
| Spot | Plain | Rush | Rebound | Plain | Rush | Rebound |
Watch: what is xG, in 100 seconds
The real model (the tuned rebuild, nested_structure__feed_era_r2_swing_structure_xg__34a1c81f), run in your browser on 198,335 shots through 2026-11-14. It knows where the shot came from and how the play got there, never who took it.