XGMethodology

What is Expected Goals (xG)? A Data Reader's Guide

Author: JPick Editorial Team📅 Published: 2026-04-22

What is Expected Goals (xG)? A Data Reader's Guide

TL;DR

xG is a metric that stacks up probabilities: "what chance does this shot have of becoming a goal?" The gap between xG and actual goals tells us how efficient — or unlucky — a team has been.

Basic definition

xG (expected goals) is a metric that estimates the probability each shot has of resulting in a goal, and sums those probabilities over a match or a full season.

The idea is close to a weather forecast. When a forecaster says "there is a 70% chance of rain today," they are not predicting whether it will rain. They are saying that in similar past weather conditions, it rained 70% of the time. xG works the same way: for any given shot, it asks, "of past shots taken from a similar position and context, what fraction became goals?"

The unit is the same as goals. If a team's xG in a match is 1.5, the interpretation is: "on average, the chances this team created would yield about 1.5 goals."

How it is calculated

Each shot is assigned a probability based on a machine learning model trained on a large archive of historical shots. The main inputs include:

  • The position of the shot (distance and angle to goal)
  • The type of shot (dominant foot, weaker foot, header)
  • The type of assist (through ball, cross, set piece)
  • The defensive context (number of defenders, goalkeeper position)

Opta Analyst's xG model is trained on roughly one million shots and considers more than 20 variables.

Concrete numbers help the intuition. A penalty kick has an xG of roughly 0.76. That is close to the typical free throw conversion rate in professional basketball (around 75%). A standard shot from inside the penalty area sits in the 0.1 to 0.3 range. A long-range shot from outside the area is usually 0.02 to 0.05.

A team's xG in a single match is the sum of the xG values of every shot that team took.

Data source

JPick retrieves xG data through API-Football.

API-Football is a global data provider that covers leagues around the world, including Japan's J.League (J1, J2, and J3). It exposes xG as part of its fixture statistics (note: coverage can be incomplete for some lower-tier matches). Data is typically finalized within a few hours of the final whistle.

In JPick's own database, each match's xG is stored and aggregated into team-level and season-level totals.

How to read it

The difference between xG and actual goals — the xG difference, or xGD — reveals a team's or a player's "efficiency."

Case A: xG = 2.5, actual goals = 4. The team scored 1.5 more than its expected total. This points to an efficient finishing day, or a match in which clinical decision-making stood out.

Case B: xG = 3.0, actual goals = 1. The team built good chances but missed two goals worth of production. The data is consistent with bad luck, or with finishing accuracy that did not match the quality of the openings.

Case C: xG = 0.5, actual goals = 2. Goals came from shots that usually do not find the net. Late-match long-range strikes and moments of individual brilliance tend to produce this pattern.

The time horizon matters. For context, an average shot conversion rate in global professional football hovers around 10% to 15%. Over a single match, xG and actual goals can diverge sharply due to variance, elite finishing, or poor goalkeeping. However, over 10 matches or more, finishing rates tend to regress to the mean, and actual goals naturally converge with expected goals. xG is most useful not for a single-match verdict but for reading a team's underlying profile across a longer run of games.

Limitations

xG is not all-purpose. Several things the data cannot tell us:

Sample size. Drawing conclusions from one or two matches of xG is risky. A minimum of 10 matches, and ideally a full season of cumulative data, is a safer basis.

Model differences. Opta, StatsBomb, and API-Football each run their own models. The same shot can receive different xG values across providers, so direct comparisons should stay within a single provider's numbers. Expected goals figures from different providers are not necessarily directly comparable.

Individual defensive factors. xG grades shot quality, but it does not fully absorb the goalkeeper's skill or unusual defensive positioning. In a match where a goalkeeper's performance prevented goals, the opponent's xG can look high while actual goals conceded stays low.

Tactical context. Treating a low team xG as a sign of weakness is a mistake. Defensively organized, possession-first sides tend not to take shots themselves, and they tend not to allow opponents to shoot either. Judging a team's strength on xG alone requires combining it with other indicators.

Related metrics

A few adjacent metrics are worth knowing.

xGA (xG against) is the opposing-team xG. It represents "the goals that could reasonably have been conceded," and serves as a readable proxy for defensive quality.

xGD (xG difference) is xG minus xGA. It compresses attacking and defensive performance into a single number across a match or season.

Shots on target is the simpler count of shots that found the goalframe. It is easy to read but ignores shot quality — which is the gap xG fills.

Post-Shot xG (PSxG) is a derivative that accounts for shot trajectory after the ball leaves the foot. It is used to evaluate goalkeepers.

Player Impact and JPick Edge are JPick's proprietary indicators. Player Impact captures a player's in-team influence; Edge Score estimates breakout potential in the current season. xG feeds into both as one of several inputs.

How JPick Lab uses it

We work with xG in several ways.

Snapshot analysis. Mid-season, we pull themes like "J1 teams with the biggest xG gap at matchday N" — surfacing clubs whose expected and actual goal tallies are diverging. This reveals patterns that a standings table alone cannot show.

Match previews. When previewing a fixture, the recent xG trajectories of both teams serve as a reference for reading "is this team sustaining form, or showing signs of regression?"

Edge Score inputs. xG is one of the attacking-side inputs that feed into JPick Edge.

The core stance: rather than reading a single number, cross-referencing xG, xGA, xGD, and actual goals together creates a three-dimensional view of a team or a player. That is the analytic stance of JPick Lab.

References

  • Opta Analyst. "What Is Expected Goals (xG)?" https://theanalyst.com/2023/08/what-are-expected-goals-xg (Accessed: 2026-04-22)
  • Hudl (formerly StatsBomb). "What are Expected Goals (xG)?" https://www.hudl.com/blog/expected-goals-xg-explained (Accessed: 2026-04-22)
  • American Soccer Analysis. "Expected Goals Explanation." https://www.americansocceranalysis.com/explanation (Accessed: 2026-04-22)
  • API-Football. "API-Football Documentation (v3)." https://www.api-football.com/documentation-v3 (Accessed: 2026-04-22)
  • Wikipedia. "Expected goals." https://en.wikipedia.org/wiki/Expected_goals (Accessed: 2026-04-22)
Methodology Back to list