Premier League · 2025–26 · Key passes

Case studyNetwork analysis · Premier League 2025–26

Final Ball

Who creates for whom: mapping every chance in the Premier League as a network of passers and shooters.

Assist entropy—
Style cluster—K-means on 5 features
Communities—Louvain groups found
Top hub—

Fig. 01

—
Key-pass network

01 · The networks

Twenty clubs, twenty networks.

Each ring is a club's most involved players. Each line is a passer-shooter link, thicker the more it happened. Pick a club to open its full network.

Hover or tap a player to trace his links. Tap a line for the plays.

02 · Clustering

Ways to create a chance.

K-means groups clubs by how their chances are built, not how many they make. Hover a style or a club to explore it; click a crest to open that club.

Figure 2. Clubs in principal-component space, coloured by K-means style. Axes are the first two principal components of five standardised features; the closer two clubs sit, the more alike they build chances. Key-pass networks.

03 · The league

The whole league, side by side.

Rankings and the standout numbers, switched with the tabs.

04 · Method

How it works.

From raw shot data to club styles in four steps. The analysis runs in Python; the site is a static D3 front end reading one JSON file.

  1. 01

    Collect

    Every shot of the 2025–26 Premier League from Understat: 380 matches, the shooter, the player credited with the pass, xG and pitch location.

    soccerdata · Understat
  2. 02

    Build networks

    One directed graph per club. An edge runs passer → shooter, weighted by key passes, assists, or the xG of the chances created.

    networkx.DiGraph
  3. 03

    Score players

    Weighted HITS gives every player a hub and an authority score, Louvain splits the squad into units, and entropy measures how spread out the chances are.

    numpy SVD · louvain_communities
  4. 04

    Cluster clubs

    Five club-level features are standardised and grouped with K-means (k = 4, 20 restarts). PCA flattens them to two axes for the chart.

    StandardScaler · KMeans · PCA

Hub score

High when a player feeds the teammates who get the most chances. The creators.

h = |u₁(A)|, the top left singular vector of the weighted adjacency matrix

Authority score

The reverse: high when the best creators keep looking for you. The finishers.

a = |v₁(A)|, the top right singular vector, so hubs and authorities reinforce each other

Entropy

How evenly chances are spread across every passer-shooter pair, from 0 to 1. Low means a few duos carry the team.

H = −Σ pᵢ ln pᵢ / ln n, with pᵢ the share of chances on pair i

Clusters

Groups of players who combine with each other more than with the rest, found with the Louvain method.

maximise modularity Q on the undirected graph, both pass directions summed

Built with
  • Python
  • pandas
  • NetworkX
  • scikit-learn
  • NumPy
  • D3.js
Data

Understat match feeds, Premier League 2025–26. Three link types: key passes, goal assists, and chance quality (xG created).

Caveats
  • Understat credits one passer per shot, so second assists and the passes before them are invisible.
  • Shots with no credited pass (dribbles, rebounds, direct set pieces) are left out of the networks.
  • Team charts show the most involved players to stay readable; the club metrics use the whole squad.
  • Assist networks are small samples, so a handful of goals can move a club a long way.