xG
flagship metric · data to Mon 12 Oct 2026How likely a shot was to be a goal, judged before anyone knew how it ended, by a model of ours; added up over a match, a side or a player.
An expected goal (xG) is the chance, between 0 and 1, that a shot like this one ends in a goal. 11footy's model reads the shot, never the result, and is trained on the shots of past seasons only. A match, team or player xG is the sum of his shots'.
- xG: all shots, penalties included: what a match was worth
- npxG: without penalties: what open-play and set-piece chances were worth
- xA: the xG of the shots a player set up
- G - xG: goals minus xG: finishing above or below the chances
What goes in
our base data only- The shot list of the five leagues since 2014-15: where the shot was taken, with what, in which situation (open play, corner, set piece, free kick, penalty), the action just before it and who set it up, the minute, the score from the shooter's side, home or away, the time since the side's previous shot.
- Nothing from a provider's own xG, xA or any derived metric: those are not read anywhere (ADR 0024).
How it is computed
the formula in words- A gradient-boosted trees model turns the inputs of each shot into a probability (the xg package, ADR 0029); each season is rated by a model that never saw it.
- xG of a match, side or player = the sum of the probabilities of his shots.
- npxG = the same without penalties. xA (expected assists) = the xG of the shots a player set up. Goals above expected (G - xG) = goals minus xG.
When to trust it
sample and threshold policy- A shot's xG is a probability, not a verdict: a 0.08 shot that goes in is not evidence of anything.
- Totals over a match are fine; per-90 numbers, rankings and percentiles of players need 900 league minutes. Under 450 minutes a line is marked a small sample.
- Goals above expected (G - xG) needs a whole season of a player's shots to say anything and, as the check below shows, mostly does not repeat: read it as luck until a long run says otherwise.
How well it works
worked out from the data, not typed in- Over 549,129 rated shots the model expected 59,681 goals and 58,888 were scored (+1.4% difference). Log loss 0.258, Brier 0.074.
- No full season was off by more than 4.7%.
- Goals above expected, per 90, between the even and the odd matches of the same season: r = 0.03 over 17,887 player-seasons: mostly noise.
| Season | Shots | Goals | Expected | Exp. v goals | Log loss |
|---|---|---|---|---|---|
| 2014-15 | 45,596 | 4,636 | 4,629 | −0.2% | 0.246 |
| 2015-16 | 45,315 | 4,716 | 4,725 | +0.2% | 0.251 |
| 2016-17 | 45,750 | 5,045 | 4,852 | −3.8% | 0.261 |
| 2017-18 | 45,307 | 4,795 | 4,808 | +0.3% | 0.254 |
| 2018-19 | 47,065 | 4,883 | 5,054 | +3.5% | 0.254 |
| 2019-20 | 43,755 | 4,682 | 4,708 | +0.6% | 0.258 |
| 2020-21 | 43,241 | 4,960 | 4,891 | −1.4% | 0.269 |
| 2021-22 | 45,605 | 4,972 | 5,091 | +2.4% | 0.259 |
| 2022-23 | 45,684 | 4,882 | 5,110 | +4.7% | 0.259 |
| 2023-24 | 45,752 | 4,910 | 5,093 | +3.7% | 0.258 |
| 2024-25 | 43,621 | 4,803 | 4,908 | +2.2% | 0.263 |
| 2025-26 | 44,031 | 4,716 | 4,910 | +4.1% | 0.258 |
| 2026-27 | 8,407 | 888 | 902 | +1.6% | 0.262 |
| Reading | Even v odd matches, r | Whole season, reliability | Player-seasons |
|---|---|---|---|
| Goals above expected per 90 (no penalties) | 0.03 | 0.06 | 17,887 |
What it does not tell you
limits- No goalkeeper or defender positions and no shot speed in the data: two shots from the same place count the same however crowded the goal was.
- xA counts the shot, not the pass: a good pass to a poor finisher is worth what the shot was worth.
- Shots exist from 2014-15 only; earlier seasons have no xG.
- Penalties are worth about the same every time, so they are left out when the question is about open play (npxG).
- G - xG is not a skill rating: see the check below for how little of it repeats.
Where you see it
each one has a ? beside itData to (the latest league match played), built . Unless a season is chosen, every view shows 2025-26 (2026-27 is still young: 0 players have 900 league minutes so far, so the numbers are of 2025-26 until half as many as last season do.). Percentiles and per-90 ranks from 900 league minutes, within the player's role, five leagues together; under 450 minutes a small sample.