Skip to content
Data-Driven Football
The data-driven football journal

Read the match the way the numbers do.

We take one fixture at a time and pull it apart with match performance data: expected goals, pressing intensity, progressive passing, the shape of every shot. No takes without a number behind them. Every figure on this page comes from the InplayRadar live feed.

1.94 M
Match events parsed per round
62
Competitions tracked live
rxG
Regressed xG - our stabilised attack metric
< 5 s
Feed latency, ball to dashboard
Lead analysisMatch report · Round 14

The 2-1 that the expected goals called 2.4 to 1.1

A late surge turned a balanced first hour into a deserved win. The xG timeline shows exactly when the game tilted.

For an hour this looked like a coin-flip. Both sides traded half-chances, the shot count sat level, and the scoreline stayed within a goal. Then the home press found a second gear, and the underlying numbers ran away from the visitors in a fifteen-minute window that decided the match.

The cumulative expected goals chart is the clearest read on the shift. Through 67 minutes the home side had built 1.55 xG to the away team's 0.71 - close, but already favouring the hosts. From there the line steepens sharply: 0.63 xG added in the final twenty minutes against a defence that had stopped stepping out. That is not a smash-and-grab. That is a team turning territory into clear sight of goal precisely when the opponent tired.

The away xG curve, by contrast, is almost flat after the half-hour. Their best spell came late and from distance - the kind of low-value attempts that inflate a shot count without troubling a goalkeeper. Strip those out and the chance quality gap is wider than the 2-1 suggests.

Expected goals · cumulative

When the game tilted, minute by minute

HomeAway
0.0 xG1.0 xG2.0 xG3.0 xG
0'45'90'

Source: InplayRadar live match feed

Shot quality

Home shot map - clustered in the danger zone

GoalShotMarker size ∝ xG

Source: InplayRadar live match feed

By the numbers

The margins live in the metrics

Possession told you nothing. Chance quality told you everything. We lead with rxG (regressed expected goals) over a raw rolling average, and read defences through the d_index composite. Both panels below are straight off the InplayRadar feed.

Chance creation

Regressed xG (rxG) per 90, last six matches

Home side1.86 rxG
Away side1.09 rxG
League median1.18 rxG

Source: InplayRadar live match feed

Defending

Defensive index (d_index), 0-100

Home side78
Away side54
League median61

Source: InplayRadar - higher suppresses better chances

League focus · English football

Where the model is sharpest: the Premier League and the Championship

Model accuracy is not uniform across competitions. We publish the calibration error for the two English divisions we cover most closely, so you know exactly how much weight each rxG figure can bear. Pull the same coverage in our applied modelling strategies.

Premier League

The most heavily modelled division on the network. Our rxG model carries a per-match calibration error of 0.11 goals across the last three seasons - tight enough to flag over- and under-performing attacks within four matches of a run starting.

0.11
rxG calibration (MAE)
380
Matches modelled / season
73
Mean d_index, top six

Championship

Higher variance, more fixtures, thinner public data - exactly where a stabilised model earns its keep. rxG shrinks the noise from a 46-game schedule into a signal that holds up, and d_index momentum exposes the promotion-chasing defences before the table does.

0.14
rxG calibration (MAE)
552
Matches modelled / season
4 / 6
Promotion sides flagged early
Working paper · methodology

The mathematics behind the two headline metrics

We treat this site as a public notebook. Below are the working definitions for rxG and d_index momentum, written the way we would in a methods appendix - no black boxes.

rxG

Rolling Expected Goals

rxG_t = (n_t · xḠ_w) / (n_t + k) + (k · xḠ_lg) / (n_t + k)

A team's windowed mean xG (xḠ_w, an exponentially recency-weighted average of the last six matches) is shrunk toward the opponent-adjusted league baseline xḠ_lg. The shrinkage constant k (we use k ≈ 8 matches) sets how fast a side earns the right to its own number: n_t is matches observed. Early in a season the estimate leans on the league prior; by match twelve it is almost entirely the team's own form.

d_index

Defensive index momentum

d_index = 100 · Σ wᵢ · Φ(zᵢ) ; Δmom = d_index_t − d_index_t₋₃

Four inputs - xG conceded per 90, low-value-shot share forced, PPDA, and own-third possession time - are each standardised to a league z-score zᵢ, mapped to a percentile through the normal CDF Φ, then combined with weights wᵢ tilted toward chance suppression over raw tackle volume. The momentum term Δmom is the three-match change, which is what actually separates a defence hitting form from one quietly declining. Read the applied version in our in-play modelling playbook.

Scouting profile

The decisive midfielder, by percentile

Progressive passesxG buildupPressuresBall recoveriesCarriesPass %

Source: InplayRadar live match feed

Data-led scouting

A player's shape on the page, before you watch a minute

Percentile radars compress a season into one silhouette. This midfielder lives in the 90th percentile for progressive passing and carrying - he moves the ball forward by hand and foot more than almost anyone in his position - while sitting closer to the median for pass completion. That is a profile, not a verdict: a high-risk, high-reward distributor who trades the odd misplaced ball for line breaks.

We build every scouting note this way. Start from the percentile shape, then go to tape to confirm what the numbers imply. The data narrows the search from a thousand players to a shortlist of five.

More analysis

All articles
Go to the source

Every chart here starts on InplayRadar

Live expected goals, shot maps, pressing metrics and scouting percentiles across 62 competitions, updated as the ball moves. The full model lives in InplayRadar's data-driven match strategies - the same notebook we write from.

Explore the modelling strategies