Start with the provider definition
Opta's expected-assists guide defines its xA as the likelihood that a completed pass becomes a goal assist, using pass characteristics. Another dataset may assign xA only when a pass leads directly to a shot. Both can be internally valid, but their totals are not automatically comparable.
| Measure | Requires a shot? | Requires a goal? | Main dependency |
|---|---|---|---|
| Assist | Yes | Yes | Teammate converts the chance |
| Key pass or shot assist | Yes | No | Provider event definition |
| Expected assist | Provider-specific | No | Pass model and included population |
Worked interpretation
Suppose a player records 4 assists from 5.8 xA in 1,800 minutes. The observed difference is 4 - 5.8 = -1.8, but that subtraction does not diagnose poor passing or unlucky finishing by itself. Assists depend on shot selection, receiver finishing, deflections, event labelling and model scope.
Opta's xA definition provides the provider-specific scope used in the comparison below.
Per-90 xA is 5.8 / 1,800 x 90 = 0.29. That rate makes playing time more comparable, but role and team possession still matter. A set-piece specialist and a holding midfielder have different opportunity distributions.
A responsible comparison workflow
- Use one provider and model version.
- Set a minimum playing-time rule before looking at rankings.
- Compare position, role, set-piece responsibility and team possession.
- Inspect both total opportunity and per-90 rate.
- Retain the date and competition coverage.
Opta's definitions show why event terms need a named provider. StatsBomb's open data is useful for inspecting pass, shot-assist and event fields directly rather than treating every public xA number as the same object.
What xA cannot settle
xA does not isolate a player's causal contribution, prove that future assists will rise, or put every creative action on one scale. Passes that improve possession without creating the next shot can be valuable while receiving little or no xA.
Opportunity and outcome should stay separate
Consider two illustrative creators over equal minutes:
| Player | Key passes | xA | Assists | Initial reading |
|---|---|---|---|---|
| A | 18 | 2.8 | 1 | Created fewer but higher-value chances |
| B | 31 | 2.1 | 4 | Created more chances; team-mates converted more of them |
Assists are observed outcomes. xA is a modelled estimate attached to the chances created under a provider's rules. The gap between the two can prompt video or role review, but it does not prove that one player was unlucky or that future assists will mechanically move toward xA.
Build a useful player comparison
Opta's xA definition provides the provider-specific scope used in the comparison below.
- Align minutes, competition and position.
- Separate set pieces from open play where the data permits.
- Report xA per 90 alongside total minutes, not instead of minutes.
- Add chance count and a chance-value distribution so one large opportunity is visible.
- Check whether the provider credits the final pass in the same situations across the sample.
- Treat role changes, substitutions and team possession as context, not excuses added after seeing the result.
scikit-learn's TimeSeriesSplit guidance supports the chronological validation rule used in the next step.
For recruitment or forecasting, evaluate whether lagged xA adds information beyond minutes, role, team attack and a simple baseline on a later period. That test is stronger than selecting players because their current assists sit below xA.
Related resources
Continue with player performance metrics or expected threat for ball progression before the final pass.
Continue learning
- Next guide: Expected Points (xPts)
- Related guide: Football Player Metrics
Assumptions and limitations
The numerical example is illustrative. Provider definitions, competition coverage, corrections and model versions can change. Per-90 rates become unstable in small samples and should not be read as forecasts without a separate validated model.

