OpenTactic
About
Launch App
← Back to Wiki
General5 min read

xT - Expected Threat

xT — Expected Threat Definition Expected Threat (xT) is a metric that quantifies the value of ball progression by measuring how much a possession action (

xT — Expected Threat

Definition

Expected Threat (xT) is a metric that quantifies the value of ball progression by measuring how much a possession action (pass, carry, dribble) increases the probability of scoring. Unlike xG which only evaluates shots, xT evaluates every on-ball action that moves the ball across the pitch.

History & Origins

xT was formalized and popularized by Karun Singh in a 2018 blog post titled "Introducing Expected Threat (xT)". Singh proposed a clean, interpretable framework grounded in Markov chains to solve a problem the analytics community had been wrestling with: how do you value passes and carries that don't directly lead to shots?

Before xT, analysts used metrics like "key passes" or "passes into the final third," but these were binary and lacked nuance. Packing Rate, developed by Stefan Reinartz and Impect GmbH (~2016), was an earlier attempt that counted how many defenders a pass bypassed, but it didn't connect directly to goal probability.

The xT framework gained rapid adoption in the analytics community because of its simplicity and elegance. It has since been adopted and adapted by clubs, data companies, and researchers. StatsBomb developed their own version called Ob-V (On-Ball Value), and various proprietary models at clubs use similar zone-based or continuous approaches.

How It Works

  1. Divide the pitch into a grid — typically 12×8 or 16×12 zones
  2. For each zone, calculate two probabilities from historical data:
    • The probability of shooting from that zone
    • The probability of moving the ball to another zone (transition matrix)
  3. For each zone, compute the probability that possession starting there eventually leads to a goal — this is solved iteratively as a Markov chain: the value of a zone depends on the shooting probability from that zone plus the weighted values of all zones you might move to
  4. The xT of an action = xT(destination zone) − xT(origin zone)

The final output is a matrix of values — one number per zone. This matrix is the model. A 12×8 grid means 96 values.

Key Properties

  • A forward pass from midfield into the penalty area has high positive xT
  • A sideways or backward pass typically has near-zero or slightly negative xT
  • xT is context-free by design: it doesn't know who has the ball or what the game state is — only where the ball moved from and to
  • xT naturally produces a "threat gradient" that increases toward the goal, with the highest values in central areas near the box
  • xT is additive: a player's total xT contribution is the sum of all their individual action xT values

Current Discussion & Debates

  • Grid resolution trade-off: finer grids capture more detail but need more data to be stable. Coarser grids are more robust but lose nuance (e.g., difference between wide and central positions near the box)
  • Continuous vs. grid-based: some researchers have moved to continuous xT models (using coordinates directly rather than zones) using neural networks or kernel methods, which avoid the discretization problem
  • Context-blindness: xT treats all possessions equally regardless of game state, score, opponent, pressing intensity, or who is on the ball. This is both a strength (simplicity) and a weakness (misses nuance)
  • xT vs. VAEP: VAEP - Valuing Actions|VAEP is often compared to xT as a more sophisticated alternative that uses ML rather than Markov chains and also accounts for defensive actions
  • Relationship to Possession Value (PV): xT is one member of a broader family of "possession value" frameworks. Others include EPV - Expected Possession Value|EPV (Expected Possession Value) from Javier Fernández and Luke Bornn (2019), which uses tracking data for a continuous, real-time pitch value surface
  • Does not value off-ball movement: xT only measures on-ball actions, missing space creation, pressing, and movement that enables the ball progression

Accessing xT Data

  • socceraction Python library (KU Leuven) — computes xT grids from event data
  • Can be computed from any event dataset with pass/carry coordinates (e.g., StatsBomb, Opta, Wyscout)
  • Pre-computed grids are available in various research repositories and blog posts
  • Karun Singh's original blog post includes full Python code and math

Related Metrics

  • xG - Expected Goals — values shots; xT values the actions that lead to shots
  • VAEP - Valuing Actions — ML-based alternative that also values defensive actions
  • EPV - Expected Possession Value — continuous, tracking-data version of ball value
  • Packing Rate — counts defenders bypassed rather than measuring goal probability change
  • Progressive Passes & Carries — simpler threshold-based approach to identifying forward ball movement
  • xA - Expected Assists — values only the final pass before a shot

Related Visualizations

  • Pass Maps — can be colored by xT value
  • Heat Maps — xT grid itself is a form of heat map

Tags: #football #analytics #xT #metrics #possession-value

OpenTactic

Open-source tactical board for the modern football community.

Product

  • Board
  • Roadmap
  • Changelog

Community

  • Wiki
  • Articles
  • Academy

Legal

  • Privacy
  • Terms
© 2026·Created byRAZT Studio