Why xG differs between sites
There is no official xG. FIFA, UEFA and the leagues have no standard, and every data company runs its own model on its own data. The idea is the same; the numbers are not.
Who measures xG
| Provider | Model (as published) | Main inputs | Penalty |
|---|---|---|---|
| Opta / Stats Perform | Gradient-boosted trees (XGBoost), about 1 million shots from 40 competitions; a separate model for women's football | 20+: distance, angle, keeper position, pressure, clarity of view, shot type, pattern of play, the action before | 0.79 |
| Hudl StatsBomb | Gradient-boosted trees with sense-keeping rules | Every visible player at the shot ("freeze frame"), defenders in the way, share of goal covered, keeper stance | 0.76 / 0.78 |
| Wyscout (Hudl) | Its own machine-learning model, trained on all shots | Location, shot type, situation, assist type | 0.76 |
| Understat | A neural network, 100,000+ shots | Not published | — |
| Bundesliga (Sportec Solutions) | The league's own model | Not verified by us | — |
| FBref | Not its own: StatsBomb until October 2022, then Opta | As its provider | 0.79 (Opta era) |
What each provider shows publicly, as of 2026-10-28. Broadcasters show their data partner's model: Opta's for the Premier League and UK television.
Even the penalty differs
How big the differences are
The KU Leuven study compared two providers over a full season. Shot locations differed by up to a couple of metres, one provider left some shots out (such as those blocked at the shooter's feet), and values differed most close to goal. Rankings of the best players stayed broadly similar, but match totals often did not.
A model change moves the numbers too
Four providers, nine thousand matches
An independent comparison published in November 2025 (MartinOnData, The Python Football Review) set Opta, StatsBomb, Wyscout and Understat side by side over about 9,000 top-five-league matches from 2017/18 to 2021/22, using each match's team totals.
Together with the KU Leuven study, the message is consistent: over a season the providers broadly agree; for a single match, the verdict on who had the better chances flips in roughly one match in eight to one in four, depending on how many sources you compare. The comparison is a practitioner's study, not peer-reviewed, and uses match totals only.
People feed the model
Event data is collected by trained operators, live and from video. They agree very well on whether something happened; the only peer-reviewed reliability study of Opta data found very high agreement between two teams of operators, though for a single match. The judgement calls are where differences come from: the exact spot, foot or head, whether a pass was a cross or a through ball, how much pressure there was. Each of these is a model input, so a different call means a different xG. Analysts are warned never to mix providers' data.
What it means for you
- Compare like with like: one provider, one model version.
- Read small differences between sites as noise, not as a disagreement about the match.
- Look for the source: a site that does not name its xG provider leaves you guessing.
Questions
Why does Understat show different xG from FotMob?
They use different models: Understat its own neural network, FotMob Opta's. Different inputs and training data give different values for the same shots.
Which xG is the most accurate?
No commercial provider publishes its accuracy figures, so no one can say for sure. Models with more information about each shot (keeper and defender positions) should do better in principle.
Is there an official xG?
No. There is no FIFA, UEFA or league standard. Leagues and broadcasters show their data partner's model.
Sources
- Opta Analyst: What is expected goals (xG)? · 2023
- Opta Analyst: Evolving expected goals (the 2022 model) · April 2022
- Hudl StatsBomb: Expected goals (xG) explained
- Hudl StatsBomb: Upgrading expected goals · May 2022
- Wyscout data glossary: xG
- Understat
- Bundesliga.com: the xG model by Sportec Solutions
- Sports-Reference blog: FBref
- FBref: Expected goals model explained
- ToffeeWeb: So who decides the xG values anyway? · 2025-26
- KU Leuven DTAI: How data quality affects xG · 2020
- KU Leuven DTAI: How data availability affects learning good xG models · 2020
- MartinOnData: Which xG data should you trust? (The Python Football Review #017) · November 2025
- Liu et al.: reliability of Opta event data · 2013
- Romano: xG pipelines (Politecnico di Milano thesis) · March 2026
Checked 2026-10-28. Methods change: every figure here is dated to its source.
xG explains football; it is not a betting tip. 18+ · Please gamble responsibly.