🚧 SportsPerp is currently live on devnet. Mainnet target: before Jun 12, 2026 (World Cup kickoff).
The OBV IndexWhat is On-Ball Value

What is On-Ball Value

On-Ball Value (OBV) is a statistical framework, originally published in the football-analytics literature, that assigns a probabilistic value to every on-the-ball action in a match. It answers a simple question: by how much did this single action change the probability that the team in possession would score — or concede — in the near future?

The methodology is industry-standard among professional clubs and national teams. SportsPerp consumes OBV-style event-level data from an institutional data partner (vendor name withheld for competitive reasons).

The intuition

Every event in a football match — a pass, a dribble, a tackle, a goalkeeper claim — changes the state of the game. A back-pass in midfield changes the state differently than a through-ball into the penalty box, even if both are “successful” on a binary completion metric. OBV quantifies that difference.

Two machine-learning models are trained on millions of historical events:

  • PV-GF — Probability of Goal For: the chance the in-possession team scores within the next N actions, given the current game state.
  • PV-GA — Probability of Goal Against: the chance they concede, same horizon.

Given the pre-event state (ball location, action type, body part, action context — open play, from a free kick, from a corner, etc.), each model outputs a probability. OBV is the delta between the post-event and pre-event probabilities:

OBV(action) = [PV-GF(after) − PV-GF(before)] − [PV-GA(after) − PV-GA(before)]

To build intuition for the scale: a line-breaking through-ball might add on the order of +0.05 OBV; a sideways pass, roughly +0.001; a dispossession in your own third, around −0.10. Exact values depend on pitch location, game state, and the specific model version used by the data provider. Summed across a 90-minute match, a player’s or team’s total OBV is the net probabilistic value they added through ball actions. Per-category breakdowns — obv_pass, obv_dribble_carry, obv_defensive_action, obv_shot, obv_gk — are published alongside the total and surfaced to traders (see Data Pipeline).

As a real magnitude anchor: a full-match player total typically lands in the range −0.5 to +0.5 OBV, with exceptional performances beyond ±1.0. The pass-component of a creative midfielder often contributes ~0.07 over a match; a difficult goalkeeper performance can subtract ~0.3 through the GK component alone.

Why OBV beats simpler stats

MetricWhat it measuresWhat it misses
Goals / AssistsOnly the final actionsEverything upstream
xG (expected goals)Shot qualityAll non-shot actions (~98% of the game)
Pass completion %Binary successThe value of each pass — a 70%-difficulty line-breaker and a 99%-easy back-pass count equally
OBVProbabilistic value of every actionRequires fine-grained event-level data

OBV captures the whole game, not just the ~30 shots per match. A ball-winning defensive midfielder or a tempo-setting deep-lying playmaker often dominates OBV while contributing zero goals or assists. That’s the signal traditional stat lines miss — and the signal OBV surfaces.

Why OBV makes a good tradable index

Three properties matter:

  1. Signal density. A 90-minute EPL match produces ~1,800–2,200 events. OBV accumulates signal continuously throughout the match, not only at the 3–5 moments when xG or goals update.
  2. Cross-position fairness. OBV works for defenders, midfielders, forwards, and goalkeepers (via GK-specific sub-models). A trader can hold positions across positional groups without the index being systematically biased toward one role.
  3. Backtested predictive power. Using OBV alone — no goals, no xG, no table — to rank the 2023/24 EPL season finished with Spearman rank correlation ρ = 0.9023 vs the actual final table. Put differently: OBV alone recovers ~81% of the variance in league outcomes from event-level play quality.

The trade-off is that the canonical OBV numbers our partner publishes are post-match only. Live OBV — which SportsPerp needs to price in-play markets — requires a separate real-time inference pipeline. That pipeline is described in Real-Time vs Post-Match.

How SportsPerp uses OBV

OBV is the dominant component of the tradable index, but not the only one. For team markets:

Composite = 0.50 × OBV  +  0.30 × Form  +  0.20 × Results

For player markets:

Composite = 0.55 × OBV  +  0.30 × Form  +  0.15 × Minutes-played

Each component is z-scored across the relevant population:

  • Team indices are z-scored league-wide across the 20 EPL clubs.
  • Player indices are z-scored within their position group (FW / MF / DF / GK) so a central defender isn’t penalized for not scoring and a forward isn’t penalized for not tackling.

The final composite z-score is mapped to a tradable range via:

Index = clip(500 + raw × 100, 100, 900)

So an “average” team or player prices at 500. One standard deviation above average prices at 600; two standard deviations, 700. The 100–900 range bounds the market while leaving room for genuine outliers.

See Composite Index Design for the full derivation — including the 4-hour post-match EMA blend that reconciles live in-match estimates with the official OBV once it is published by the data provider.

Further reading