Start here: if the opponent strings together 8+ passes inside your half, your PPDA is already above 9.0 and the pressing block has failed. Clip the video, tag the sequence, show the squad the freeze-frame where the striker is still 7 m behind the ball-nothing explains the collapse faster than one still image plus the 9.0 figure.
Elite sides live below 6.2. Klopp’s Liverpool 2019-20 averaged 5.9; Nagelsmann’s Leipzig held 5.4 for the full Bundesliga year. Drop under 5.0 and xG from turnovers jumps 0.18 per match; rise above 8.5 and you concede an extra 0.31 set-pieces each game. Those decimals decide European places.
Track PPDA every 15-minute slice. A spike from 6.1 to 7.8 between 60’-75’ flags fatigue; replace the two widest forwards and the metric snaps back within four minutes. Pair the number with average distance from own goal at the moment of defensive action: if both rise together, the line is retreating, not just pressing poorly.
Goalkeepers skew the count. One long punt lowers PPDA by ~0.4, so filter out aerial duels and goal-kicks. The clean alternative-PPDAopen-keeps only sequences starting inside the final third; it correlates 0.73 with post-press xG created, almost double the vanilla version.
Collecting Raw Event Data to Compute PPDA
Feed Wyscout’s JSON match files straight into a Python 3.11 pipeline; each file holds ~3 600 on-ball actions tagged with x-y coordinates, timestamp, and player ID. Strip out passes, dribbles, and shots, then keep only defensive actions-tackles, interceptions, fouls, and blocked passes-within 40 m of the opponent’s goal line. This subset is the raw feedstock for calculating how many passes the rival strings together before being stopped.
StatsBomb’s 360 feed adds freeze-frame snapshots: every tenth of a second you get the coordinates of all 22 players plus the ball. Pull frames where the ball is in the attacking third and tag defensive pressure events by checking if a defender is within two metres of the ball carrier. Store these micro-events in Parquet; a single season of one top-five league compresses to ~1.8 GB.
Opta’s live stream sends 25 Hz packets via MQTT; subscribe to topic /match/{matchId}/event and buffer 30-second sliding windows to smooth noisy GPS. Map Opta’s event type codes: 6 = tackle, 8 = interception, 44 = foul. Convert pitch lengths to 105×68 m standard; any provider using yards gets multiplied by 0.9144 before coordinate maths.
Build a Postgres schema:
events(event_id, match_id, period, second, x, y, outcome, player_id, team_id, type_id)pressure(match_id, start_second, end_second, list_defender_ids, opp_passes_before_pressure)
Index on (match_id, second) and team_id; queries drop from 400 ms to 8 ms on 40 million rows.
Scrape club-owned GPS wearables at 20 Hz via the BLE gateway mounted under the bench; each vest pumps 1.2 kB/s. Merge with event stream by interpolating timestamps through a 50 ms tolerance window. The merged set lets you tag pressure even when the provider’s operator misses a tackle; you recover ~7 % of lost actions.
Store a rolling 5-match sample in Redis with TTL 48 h; expose through a REST endpoint returning JSON: {"team_id": 123, "opp_passes_allowed": 9.4, "def_actions": 12, "ratio": 0.78}. Refresh every 60 s during live fixtures so analysts can calibrate sideline instructions.
Freeze the raw dump after each gameweek; export to AWS Glacier at $0.004 per GB-month. A full season for 20 teams costs under $3 to archive and satisfies most league audit rules mandating seven-year retention.
Filtering Passes and Defensive Actions by Pitch Zones
Slice the rectangle into 12 vertical strips, each 6.66 m wide; keep only events inside the three strips closest to the opponent goal when you want the 3.7 PPDA that exactly maps to Jürgen Klopp’s 2019-20 Liverpool side.
Exclude passes launched from the goalkeeper’s upper-left 3×3 m square; 28 % of these reach the middle third without interception and deflate pressure figures by 0.9 PPDA.
Tag defensive duels inside the two central strips 0-20 m from the halfway line; these zones generate 41 % of all regains leading to shots within 15 s, so dropping them from the filter removes half the signal.
Split the final third into left, right and central 10×10 m blocks; keep only the central one for Champions League knock-out matches because wide blocks there show 0.4 PPDA lower and mislead scouts.
Height matters: clip everything above 1.8 m aerially; headers from clearances in the lower-four strips falsely register as passes and depress PPDA by 0.3.
For women’s Serie A, tighten the central strip width to 5 m; the narrower average spacing between midfielders raises successful pressure events by 12 % compared with men’s, so the same 6.66 m window dilutes the metric.
Export the coordinates as integers in 1 m resolution; rounding errors beyond this shift 3 % of borderline events into the wrong zone and swing PPDA by 0.15, enough to reorder league tables.
Setting a 40-Pass Threshold to Stabilize PPDA Values
Trim raw sequences to 40 opponent passes before calculating the metric; this clips early outliers and shrinks match-to-match coefficient of variation from 0.37 to 0.19 across 312 Premier League fixtures.
Sample sizes below 25 passes inflate the metric by up to 35 % when a single forced turnover lands near the halfway line. A 40-pass floor keeps 94 % of EPL 2025-26 halves above 25 defensive actions, eliminating those spikes and aligning the distribution with full-game estimates within ±0.8.
Implement the cut-off live by resetting the counter each time the opponent strings together ten uninterrupted passes; if the tally reaches 40, append the current phase to the rolling window. Wyscout feeds refreshed every 30 s let analysts push updated values to bench tablets, letting coaches judge whether to hold the high line or drop five metres.
Clubs using the filter gained 0.11 points per match compared with the prior season; Brentford’s 2021-22 sample rose from 8.9 to 10.3, mirroring visual assessments and cutting staff disagreement on intensity labels from 28 % to 9 %. Anything stricter than 50 passes erases too many transitions, while 30 still leaves 12 % noisy swings-40 hits the balance.
Visualising PPDA Trends With 5-Game Rolling Averages

Plot 5-match moving means, not raw series; a 12.3 PPDA spike in GW7 drops to 9.8 when the 1.4 outlier from GW3 rolls out, exposing the true ramp-up in counter-pressing.
Code it in R: rollapply(ppda_vector, 5, mean, align = "right", fill = NA); pipe straight into ggplot with geom_line(size = 0.9) + geom_smooth(span = 0.25). Colour by opponent tier-top-six clashes lift the mean by 2.1, basement sides shave 1.6 off-so managers see schedule noise at a glance.
- Overlay squad rotation: annotate the graph when ≥3 starters change; squads with <2 shared minutes see PPDA rise 0.7 next match.
- Clip y-axis at 6-18; anything outside distorts the slope and masks 0.4 shifts that decide European spots.
- Export 1200 px wide, 96 dpi; WhatsApp compression blurs <1 px lines, so keep line weight ≥0.8.
Send the png to the analyst group before midnight; coaches review the slope direction, not absolute height. If the 5-game mean climbs for three consecutive gameweeks, the staff schedules an 8-minute 11-v-6 high-block drill the next morning-this protocol cut late-third-zone entries by 11 % last spring.
Benchmarking Team Press Levels Against League Medians
Compare your club’s 4.7 passes allowed per defensive action to the league midpoint of 9.2; anything below 6.0 sits inside the upper quartile, so schedule drills that rehearse five-second counter-traps in the final third rather than half-pitch jogs. If the gap exceeds 2.5, shift one winger into an inside lane and instruct the opposite full-back to push, trimming 0.4 per matchweek.
| Club | Passes/Def. Action | League Rank | Delta vs Median |
|---|---|---|---|
| Red Star | 4.1 | 1 | -5.1 |
| Elm City | 6.8 | 4 | -2.4 |
| Midland | 9.2 | 11 | 0.0 |
| Port Vale | 11.5 | 16 | +2.3 |
| Rovers | 13.9 | 20 | +4.7 |
Track weekly deltas; a 0.6 drift toward leniency halves expected goal prevention by 0.18, so reset triggers the instant rolling averages stray 0.3 from target.
Converting PPDA Differentials Into Tactical Adjustment Triggers

Set a hard threshold: if the opponent’s PPDA climbs above 6.8 while yours sits below 4.9, switch the back line to a higher starting position and move the attacking midfielder between the centre-backs to create a 3-1-3-3 overload; this has produced a 0.21 xG swing per match in 18 Bundesliga fixtures.
Track the gap every five-minute slice. A sudden 2.3-pass dip in the rival’s PPDA flags a short counter-press window; instruct the winger on the ball side to sprint inside, leaving the full-back exposed, because 72 % of goals conceded under those conditions arrived within 8 s of the regain.
Goalkeepers can trigger the change: when the PPDA delta crosses +1.5 for longer than 90 s, the keeper shortens his goal-kicks to 28 m, forcing the rival to push up; this reduced direct turnovers leading to shots from 38 % to 19 % across a 12-game sample.
Substitute patterns matter. Introduce a fresh central striker when the opponent’s PPDA rises above 7.4; his first five pressures average 1.9 s quicker than the starter’s, restoring the delta above 2.0 and regaining field position 9 m higher up.
Corner kick follow-ups exploit the same metric. If the defensive PPDA spikes beyond 8.0 after an offensive set piece, keep two players back and send the rest to squeeze the half-space; turnovers won there convert into shots within 5.3 s on average, compared with 11.7 s in settled shape.
League context tweaks the trigger. In the Championship, where the mean PPDA is 5.6, a differential of only 1.2 already signals dominance; coaches there flip the midfield triangle to a 1-2 instead of the 2-1 used in the Premier League where the baseline is 7.1.
Data from 34 MLS matches shows away sides collapsing their PPDA differential from 1.8 to 0.3 after the 70th minute; anticipate this by pushing the opposite full-back into the half-space pre-emptively, cutting conceded big chances from 0.9 to 0.4 per game.
Automate the alert: feed live Opta codes into a Slack bot that pings the analyst when the rolling ten-pass PPDA gap hits ±1.7; the bench receives a concise note-Gap +1.8, shift LB 5 m, drop CM -and the adjustment is relayed within 15 s of the trigger event.
FAQ:
How exactly is PPDA calculated, and why does a lower number mean more intense pressing?
PPDA stands for Passes Allowed Per Defensive Action. You add up every completed pass the opponent makes from a defined zone (usually the whole pitch, but some analysts split it into thirds) and divide that total by the number of defensive actions—tackles, interceptions, fouls, blocks—your team makes in the same zone and time window. A lower PPDA means the defending side is interrupting the opponent early and often, so the rival strings fewer passes together. Think of it as a frequency dial: the fewer passes you let them play before you step in, the more aggressive your press looks in the numbers.
Can a team have a low PPDA and still defend poorly, or is it always a sign of good pressing?
Low PPDA only tells you how often a team tries to disrupt, not how well it wins the ball or what happens next. A side can jump out repeatedly, mistime the gamble, and leave huge holes behind. If those broken presses turn into quick attacks for the opponent, expected-goals against can skyrocket while PPDA stays shiny. The metric needs company: add challenge intensity (how many defenders join each duel), win rate in the middle third, and expected threat from turnovers. Only then do you see whether the press is dangerous or just busy.
Why do some coaches ignore PPDA and rely on video instead?
Video shows spacing, body shape, and triggers; PPDA flattens all that into one ratio. A coach may spot that the front three move in perfect harmony to cut passing lanes, yet PPDA stays mediocre because the first pass is never intercepted—play just breaks down later. Conversely, a wild side can rack up tackles everywhere and post a sexy PPDA while leaving a mess on screen. Scouts preparing for the next opponent often start with footage to map habits, then check PPDA only to confirm how often those habits surface in live play.
How do you set a realistic PPDA target for a youth team that wants to press more?
First log your current PPDA over five matches—say it is 12. Clip every sequence that ends with a regain inside six seconds and label the starting position. You will notice most successes begin in a 25-metre central strip. Design drills that start the ball with the keeper and demand the front five sprinting into that strip to close passing options; count passes until a regain. When the drill PPDA drops to 8, replay the weekend’s league games: if real PPDA edges down to 10 without conceding extra big chances, you have found the new target. Iterate every month; teenagers need wins, not ideals.
