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
| Metric | What it measures | What it misses |
|---|---|---|
| Goals / Assists | Only the final actions | Everything upstream |
| xG (expected goals) | Shot quality | All non-shot actions (~98% of the game) |
| Pass completion % | Binary success | The value of each pass — a 70%-difficulty line-breaker and a 99%-easy back-pass count equally |
| OBV | Probabilistic value of every action | Requires 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:
- 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.
- 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.
- 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 × ResultsFor player markets:
Composite = 0.55 × OBV + 0.30 × Form + 0.15 × Minutes-playedEach 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
- Composite Index Design — how SportsPerp stitches OBV, form, and results into a single tradable number.
- Data Pipeline — how events reach our oracle, and how we handle the post-match settlement.
- Backtest & Validation — the ρ = 0.9023 result, reproduced.