Expected Assists (xA) Calculator

The Expected Assists (xA) Calculator estimates the chance each pass leads to an assist using location, pass type, pressure and shot context.

 

Expected Assists (xA) Calculator

Passes that directly lead to shots (all competitions/period selected).
Typical xG of the shots your passes create.
Percent of key passes that are crosses (open play).
Percent of key passes that are through balls (open play).
Corners/free-kicks that led to shots.
Used for per 90 metrics.

Example Presets

Save this calculator
Found this useful? Pin it on Pinterest so you can easily find it again or share it with your audience.

Report an issue

Spotted a wrong result, broken field, or typo? Tell us below and we’ll fix it fast.

What Is a Expected Assists (xA) Calculator?

An xA calculator estimates how many assists a player should have produced, given the quality of the chances created by their passes. Instead of counting only completed assists, it sums the goal probabilities of the shots that followed a player’s key passes. This helps separate creative skill from teammate finishing luck and small sample swings.

Most systems tie xA to shot-based expected goals (xG). If a pass leads directly to a shot, the xG of that shot is credited as xA to the passer. If no shot occurs, the pass usually adds zero. Some tools also offer pass-only models that estimate the chance a pass becomes a goal without needing shot data, but the standard approach remains shot-anchored xA.

Expected Assists (xA) Calculator
Model expected assists (xa) and see the math.

Formulas for Expected Assists (xA)

These formulas show how the calculator aggregates chance quality and scales results for fair comparison across minutes and matches. We use a shot-anchored approach by default, with optional rate adjustments for minutes played.

  • Single-pass xA (shot-anchored): xA_pass = xG_shot that resulted from that pass (0 if no shot follows).
  • Match xA: xA_match = Σ xA_pass over all key passes in the match.
  • Player xA over a span: xA_total = Σ xA_match across matches.
  • Per-90 rate: xA90 = 90 × xA_total / minutes_played.
  • Contribution share: Player xA share = xA_player / xA_team during the same span.
  • Optional pass-only variant: xA_pass ≈ P(shot | pass context) × P(goal | modeled shot context).

The shot-anchored method is transparent and widely used in public data. The pass-only variant helps when detailed shot data is missing, but it depends heavily on pass-context modeling. Choose the method that matches your data access and analysis goals.

How to Use Expected Assists (xA) (Step by Step)

Before you start, collect your event data: passes that lead to shots, their locations, and shot outcomes. Then confirm the pitch coordinate system and minutes played. Decide if you want totals, per-90 rates, or both.

  • Identify key passes (the final pass before a shot) from your event logs.
  • For each shot, grab its xG value from your xG source or model.
  • Assign that xG to the passer as xA for that event.
  • Sum xA across events to get match and span totals.
  • Scale by minutes for xA per 90 to compare across players and leagues.

Use filters to split open play from set pieces, or to isolate crosses, cutbacks, and through balls. Context filters make comparisons fairer and reveal role-specific strengths.

Inputs, Assumptions & Parameters

The calculator supports a core set of inputs that work with publicly available data. You can also toggle optional fields when deeper context is present.

  • Key Pass Events: list of passes that directly precede a shot, with timestamps.
  • Shot xG Values: probability of the shot becoming a goal (0–1) from your xG model.
  • Pass and Shot Locations: start/end pass points and shot coordinates on a standard pitch.
  • Play Type Flags: open play, corner, free kick, throw-in, or penalty situations.
  • Minutes Played: for per-90 calculations and load-adjusted comparisons.

Typical xG values range from near 0 (long shots) to 0.7+ (clear one-on-ones). Edge cases include rebounds, blocked shots without a registered attempt, mis-logged coordinates, or penalties (usually excluded from xA). Always align pitch dimensions and coordinate orientation with your data source.

Step-by-Step: Use the Expected Assists (xA) Calculator

Here’s a concise overview before we dive into the key points:

  1. Import or paste your event data and confirm the pitch coordinate system.
  2. Select your time range (single match, last five matches, full season).
  3. Mark key passes and link each to the resulting shot event.
  4. Load or compute xG for each shot, then assign that value as xA to the passer.
  5. Sum xA by player, by match, and by competition as needed.
  6. Enter minutes played to generate xA per 90 and per-position comparisons.

These points provide quick orientation—use them alongside the full explanations in this page.

Example Scenarios

A winger delivers a driven cross from 28 meters out on the right flank to the near post. The striker heads from 7 meters, central, under mild pressure. Your xG model gives this header a value of 0.25. The winger is credited with 0.25 xA for that pass. If the same player produces three similar chances in the match with xG values 0.25, 0.05, and 0.12, their match xA is 0.42. What this means

A central midfielder slides a through ball behind the back line. The forward shoots from 12 meters, slightly wide, with an xG of 0.38. The passer gets 0.38 xA for that action. The same player later hits a cutback that leads to a 0.35 xG shot and an outswinging corner that creates a 0.06 xG header. Total xA for the match becomes 0.79, even if no assist was recorded. What this means

Limits of the Expected Assists (xA) Approach

xA is powerful, but it is still a model-based estimate that depends on inputs and assumptions. Keep these constraints in mind when making decisions from the numbers.

  • Teammate finishing and goalkeeper quality still matter; xA removes some luck but not all context.
  • Event data granularity varies; missing pressure or body-part details can bias xG and xA.
  • Different providers use different pitch grids and xG models, affecting absolute values.
  • Some dangerous passes create chaos without an immediate shot, awarding zero xA despite value.
  • Game state, opposition tactics, and weather can shift chance quality in ways models miss.

Treat xA as one layer in your analysis stack. Pair it with video, role-specific metrics, and opponent context for stronger conclusions.

Units & Conversions

Distance, speed, and angle units affect pass and shot context features, which in turn affect xG and xA. Use consistent units across your data sources to avoid scaling errors.

Common units and conversions for chance-creation analysis
Quantity Common unit Alternative unit Conversion
Pitch length m yd 1 m = 1.0936 yd
Pitch width m yd 1 yd = 0.9144 m
Pass speed m/s km/h, mph 1 m/s = 3.6 km/h = 2.2369 mph
Angles degrees radians 1 rad = 57.2958°; 1° = 0.01745 rad
Time seconds minutes 60 s = 1 min

If your raw data uses yards and mph but your model expects meters and m/s, convert first. Keep a single pitch size and orientation across all calculations for consistent spatial features.

Tips If Results Look Off

Strange totals often come from data mismatches rather than bad modeling. Run these quick checks before reworking your approach.

  • Verify pitch coordinates, origin, and direction match your xG model expectations.
  • Confirm that only the first shot after a pass is counted as the key shot.
  • Exclude penalties from xA unless your workflow requires them.
  • Check minutes played for substitutes and stoppage time; then recompute xA90.
  • Ensure set-piece flags and pass types are labeled consistently.

If issues persist, sample a few events, watch the clips, and compare logged positions to video. A small audit usually reveals the mismatch.

FAQ about Expected Assists (xA) Calculator

How is xA different from actual assists?

Assists depend on whether a teammate scores. xA credits the passer for the quality of the chance they created, even if no goal is scored.

Can xA predict future assists?

Yes, better than assists alone. Players with strong xA per 90 tend to collect assists over time as finishing luck evens out.

Does xA treat crosses and through balls differently?

Indirectly, yes. Crosses and through balls lead to shots from different locations and angles, producing different xG values and thus different xA.

Can I compare xA across leagues?

You can, but be careful. League styles, pitch sizes, and data providers vary. Normalize by minutes and consider provider-specific biases.

Key Terms in Expected Assists (xA)

Expected Goals (xG)

The probability a shot becomes a goal, estimated from features like location, angle, pressure, body part, and pass type.

Expected Assists (xA)

The sum of xG values from shots created by a player’s passes. It estimates how many assists they should have produced.

Key Pass

The final pass leading to a shot. In xA, the shot’s xG is credited to the player who made this pass.

Cutback

A low pass played from the end line back toward the penalty spot. Often creates high-xG shots due to better angles.

Through Ball

A pass split between defenders into space for a runner. Frequently leads to one-on-one shots with higher xG.

Cross

A ball delivered from wide areas into the box. Crosses vary widely in shot quality based on height, speed, and target zone.

Set Piece

Restarts like corners and free kicks. These can inflate or deflate xA depending on delivery quality and routines.

xA per 90 (xA90)

xA scaled to 90 minutes for fair comparisons across playing time. Calculated as 90 times total xA divided by minutes played.

References

Here’s a concise overview before we dive into the key points:

These points provide quick orientation—use them alongside the full explanations in this page.

Leave a Comment