Match forensics
The Match Analyzer
Every match leaves a paper trail. Browse 21,589 big-five fixtures back to 2014/15; full dossiers — every shot both ends, the xG race minute by minute, and a Dixon–Coles resimulation that re-plays the game 10,000 times to say who deserved what — ship prebuilt for all 1,752 matches of 2025/26. The back catalogue lists every older fixture with its score and xG, plus links to what already exists for it.
Pick a match
Five leagues, twelve seasons, 21,589 fixtures. Filter to a matchweek or a club, then open a file. Fixtures marked dossier have the full workup; the rest of the back catalogue isn't built yet — opening one shows what does exist for that match.
Matchweek is derived from date-ordered fixture chunks and is approximate around postponements. Scores and xG come straight from Understat.
The scoreboard
The shot map
The xG race
The win dial
Solid lines condition on the actual scoreboard as it stood at each minute; dashed lines are the same machinery with the scoreboard ignored — each side’s accumulated xG treated as Poisson scoring rates, the justice panel re-run minute by minute (they start at 15′, once there are chances to judge). Computed client-side from the shot list; no bookmaker feed involved.
Ten thousand replays
The verdict & score grid …
“Ten thousand replays” is a manner of speaking: the 15×15 Dixon–Coles score grid is exact, no dice involved. It conditions on the chances each side actually created — a team that generated 0.2 xG and scored a worldie still “deserved” very little.
The match in numbers
Every player’s match line, both squads. Click a column header to sort.
Full match table …
xGC = xG chain (total xG of every open-play possession the player took part in — Understat credits no chain to set-piece chances, so a header from a corner shows in xG but not xGC); xGB = xG buildup (the same, minus the player’s own shots and key passes). Understat per-match lines.
The duel ledger
FotMob match-centre aggregates, fetched on demand the first time a fixture is opened and cached server-side. Passes into the final third and recoveries are summed from the per-player lines; every other row is FotMob’s own team total.
The tactical picture
How the two sides actually lined up and where the game leaned — formations and starting XIs, each player’s actual average position, and the minute-by-minute attack momentum.
Formations, positions & momentum …
Formations and XI layouts from the FotMob match centre (nominal formation slots); average positions and attack momentum from Sofascore — real per-player mean touch locations. For the true passing picture, see the deep-events section below.
Deep events
The full Opta event stream — every pass with its start and end point, the passing network that actually formed, where the defensive work was done, every foul and booking, where in the frame every shot went, and a passing compass per player. Then the layers only event data can give: every take-on and giveaway, the goalkeepers’ night mapped touch by touch, and each player’s live match rating minute by minute. Pick a player on the pass map or the defensive map to isolate them.
The deep-events board …
Opta event data via the WhoScored match centre, fetched on demand the first time a fixture is opened (~10–20 s) and cached server-side. Pass receivers are inferred from the event sequence; progressive passes move the ball ≥10 m toward goal.
The back catalogue
Built by the Tier 1 match pipeline · shot data scaled to a 120×80 pitch · own goals are shown at the end they went in and counted for the side they benefited.