Case Study 01: Analyzing Liverpool's High Press Through Spatial Control Models
Overview
Liverpool FC under Jurgen Klopp became synonymous with the Gegenpressing philosophy --- an aggressive, coordinated press designed to win the ball back within seconds of losing it, ideally in the opponent's half. Traditional metrics such as PPDA (passes per defensive action) quantify pressing intensity but fail to capture the spatial mechanics of the press: which zones are targeted, how pitch control shifts during the pressing sequence, and why certain presses succeed while others are bypassed.
In this case study we apply the pitch control and Voronoi frameworks developed in Chapter 17 to dissect Liverpool's pressing structure. We use synthetic tracking data modelled on a 2018--19 Premier League match to illustrate the analytical workflow.
Objectives
- Visualise the pitch control surface at the moment Liverpool lose possession and initiate a press.
- Measure the pitch control delta ($\Delta \mathrm{PC}$) in the pressing zone during the first 5 seconds after the trigger.
- Identify the spatial conditions that distinguish successful from failed presses.
- Quantify each pressing player's contribution using dominant-region analysis.
Data and Setup
We simulate a pressing scenario with the following setup:
- Frame rate: 25 Hz.
- Duration: 10 seconds (250 frames) starting from the moment of possession loss.
- Players: 11 Liverpool (pressing) and 11 opponent (building out).
- Pitch coordinates: Standard 105 x 68 m pitch, with Liverpool attacking left to right.
import numpy as np
import matplotlib.pyplot as plt
from scipy.spatial import Voronoi
# --- Simulated data for the pressing trigger moment (t = 0) ---
# Liverpool players (pressing team)
liverpool_positions = np.array([
[92, 34], # GK
[72, 10], # LB
[70, 28], # LCB
[70, 40], # RCB
[72, 58], # RB
[58, 20], # LCM
[55, 34], # CDM
[58, 48], # RCM
[42, 12], # LW -- high and wide
[38, 34], # CF -- pressing the CB
[42, 56], # RW -- high and wide
], dtype=float)
# Opponent players (building out from the back)
opponent_positions = np.array([
[10, 34], # GK
[25, 8], # LB
[22, 26], # LCB -- on the ball
[22, 42], # RCB
[25, 60], # RB
[35, 18], # LCM
[38, 34], # CDM
[35, 50], # RCM
[50, 10], # LW
[55, 34], # CF
[50, 58], # RW
], dtype=float)
Step 1: Voronoi Diagram at the Pressing Trigger
At the moment Liverpool lose the ball (or the opponent receives a goal kick), we construct a Voronoi diagram for all 22 outfield players. The diagram reveals the spatial structure of the press:
- Liverpool's front three have small, dense Voronoi cells in the opponent's defensive third, indicating spatial congestion around the ball.
- The opponent's centre-backs have compressed cells, meaning they have little room to play out.
- Liverpool's midfield line is compact, with cells forming a band across the pitch at approximately x = 55--58 m.
Key metric: The pressing compactness ratio is the ratio of the average Voronoi area of Liverpool's front three to the average area of their back four. A ratio below 0.4 indicates an aggressive, high press.
# Compute Voronoi for all 22 players
all_positions = np.vstack([liverpool_positions, opponent_positions])
vor = Voronoi(all_positions)
# The front three are indices 8, 9, 10 (LW, CF, RW)
# The back four are indices 1, 2, 3, 4 (LB, LCB, RCB, RB)
# Voronoi areas would be computed after clipping to pitch boundaries
Step 2: Pitch Control During the Press
We compute the Fernandez--Bornn pitch control surface at four key moments:
| Time | Event | Key Observation |
|---|---|---|
| $t = 0$ s | Press triggered | Liverpool PC > 0.6 in opponent's defensive third |
| $t = 1$ s | CF closes down LCB | PC in the central channel rises to 0.75 |
| $t = 3$ s | Ball played wide to LB | Liverpool's LW arrives, PC remains > 0.6 |
| $t = 5$ s | Turnover won (or press broken) | Outcome determines success |
The pitch control delta in the pressing zone (opponent's defensive third, $x \in [0, 35]$) is:
$$ \Delta \mathrm{PC}_{\text{press}}(t) = \overline{\mathrm{PC}}_{\text{Liverpool}}(t) - \overline{\mathrm{PC}}_{\text{Liverpool}}(t=0) $$
For a successful press, $\Delta \mathrm{PC}_{\text{press}}$ increases steadily as Liverpool players converge. For a failed press, it decreases as the opponent plays through the lines.
Step 3: Successful vs. Failed Presses
Across the simulated match, we classify 35 pressing sequences:
| Outcome | Count | Avg $\Delta$PC at $t=3$s | Avg Pressing Compactness |
|---|---|---|---|
| Turnover won | 14 | +0.12 | 0.32 |
| Foul won | 4 | +0.08 | 0.35 |
| Press broken (short) | 10 | -0.05 | 0.41 |
| Press broken (long) | 7 | -0.02 | 0.38 |
Key findings:
- Successful presses are characterised by a steady increase in pitch control in the pressing zone, driven by coordinated convergence of the front three and midfield.
- Failed presses show an initial pitch control gain that reverses after $t = 2$ s, typically because one pressing player is bypassed, creating a gap that the opponent exploits.
- Pressing compactness below 0.35 is associated with a 65 % success rate, compared to 30 % when compactness exceeds 0.40.
Step 4: Individual Pressing Contributions
Using Voronoi dominant-region analysis, we measure each player's contribution to the press:
- Centre-forward: Reduces the opponent centre-back's Voronoi area by an average of 85 m$^2$ during the pressing sequence. This is the primary trigger --- the CF's angled run dictates the pressing direction.
- Wingers: Each winger reduces the nearest full-back's area by approximately 60 m$^2$, cutting off the wide passing lanes.
- Central midfielders: Their role is to compress the space between the lines. Collectively they reduce the opponent's midfield Voronoi areas by 110 m$^2$.
Tactical Insights
-
Pressing angle matters: When the CF presses at an angle that shows the centre-back toward the touchline (rather than straight on), the success rate rises from 35 % to 58 %. The angled press reduces the CB's passing options by cutting off the switch.
-
Full-back positioning is the vulnerability: In failed presses, Liverpool's full-backs are often caught too high, leaving space behind them. The pitch control surface reveals large opponent-controlled zones in the channels ($x \in [45, 65]$, $y \in [5, 15]$ and $y \in [53, 63]$).
-
Goalkeeper as an outlet: When the opponent's goalkeeper is included in the build-up, the pressing team's pitch control in the central zone drops, because the GK provides an additional passing option that stretches the press.
Visualisation Summary
The ideal output for a coaching presentation would include:
- A 4-panel pitch control animation showing the press evolving over 0, 1, 3, and 5 seconds.
- A bar chart comparing $\Delta$PC for successful vs. failed presses.
- An individual player contribution table showing dominant-region reduction caused by each pressing player.
- A zone map highlighting areas where the press is most vulnerable to being broken.
Code Reference
The full implementation of this case study is provided in
code/case-study-code.py, which includes functions for simulating
pressing sequences, computing frame-by-frame pitch control, and
generating the visualisations described above.
Discussion Questions
- How would you modify the pitch control model to account for the ball's position during the press? Should the ball carrier receive additional influence?
- If an opponent consistently breaks the press with long balls, what spatial adjustments would you recommend?
- Compare PPDA as a pressing metric with the pitch-control-based pressing intensity measure developed here. What does each capture that the other misses?