Skip to content
All work

Tactical DNA

Passing-network analysis for football scouting: does a coach leave a measurable fingerprint on how a team passes?

Role
Solo
Status
Research
Course
EECS 4414 Information Networks
Year
2026
Stack
PythonNetworkXscikit-learnXGBoostUMAPpandasPlotly

Problem

Coaches, pundits and fans talk about “possession football” or “gegenpressing”, but rarely measure it. Most passing-network studies describe one team or a few matches; I tested whether a coach leaves a signature on passing that a classifier can recover.

How it works

I turned StatsBomb open data into 775 passing networks, one per team per match: players are nodes, and each edge counts one player’s completed passes to another. One match, traced step by step:

1

Build the graph

Barcelona 5–0 Real Madrid, 29 November 2010: 296 completed passes between the eleven starters, up to the first substitution in minute 45.

2

Measure it

44 features: 8 global, 20 centrality and 16 three-player motif fractions.

3

Use it three ways

Labelled Guardiola for the coach models, placed in the possession cluster, and counted in all eleven starters’ role profiles.

The product

Barcelona’s passing network from the 5–0 Clásico: eleven player nodes joined by arrows, with Xavi the largest node, at the centre
Barcelona 5–0 Real Madrid, 2010: nodes sized and coloured by PageRank.
Slide “A modest signal, and an honest catch”: coach-identification accuracy for four models under random and leakage-free folds, beside a confusion matrix for eight Barcelona coaches
Coach identification under random and season-grouped folds, with the confusion matrix.
Slide “Type a player, watch its structural twins light up”: Xavi typed into the search box, his nearest neighbours ringed on a map of players coloured by position
The deck’s live search: a player’s ten nearest structural neighbours light up.

Decisions

  • Score the coach models on season-grouped folds tooEach coach held contiguous seasons and rosters change yearly, so random folds let same-season matches leak across the split, partly measuring which season instead of which coach.

Where it is now

Submitted as my EECS 4414 final project in 2026, with the code and report public on GitHub. The coach signal collapsed once whole seasons were held out, so the report ties passing structure to the club and its roster rather than the coach; the player-role result held up.

  • 775Passing networks from 42 teams
  • 0.358 → 0.250Random-forest coach accuracy, random vs season-grouped folds (0.263 majority baseline)
  • 0.883Position purity among each player’s 5 nearest neighbours (0.295 random)