Data Deep-Dives

The 2022 World Cup Final in Data: Pressing, Possession and the xG Story

The other side of the ball from the possession story: who pressed, where, and how hard.

If you only measure who has the ball, you miss half of football. Yesterday's look at the 2022 final showed Argentina controlled possession comprehensively. So here's the mirror image, pulled from the same StatsBomb event feed: the defensive work. The team that had less of the ball — France — did more defensive actions and did them higher up the pitch. That's not a contradiction; it's the out-of-possession half of a counterpunching game plan, and the event data draws it cleanly.

What counts as defensive work

We counted every defensive action each team made — pressures, ball recoveries, duels, interceptions, and blocks — and tagged each by where on the pitch it happened: the team's own third, the middle third, or the attacking third (where pressing high means winning the ball close to the opponent's goal). The figures are open play across regulation and extra time; the penalty shootout is excluded. Every count comes straight from the real events.

A grouped bar chart of defensive actions by pitch third for Argentina and France in the 2022 World Cup final. In the own third the teams are level (Argentina 117, France 113). In the middle third France leads 145 to 134. In the attacking third France leads 79 to 64. France's totals are higher overall, 337 to 315.
Defensive actions (pressures, recoveries, duels, interceptions, blocks) by pitch third, 2022 World Cup final, open play. France did more defensive work overall (337 to 315) and notably more in the attacking third (79 to 64) — pressing higher. Data: StatsBomb Open Data (free public dataset; attribution required).

Read the bars left to right. In their own third the teams are level — both had to defend their box at times. The gap opens as you move up the pitch: France made more defensive actions in the middle third (145 to 134) and clearly more in the attacking third (79 to 64). France's defending was shifted forward. That's the signature of a side that, without much of the ball, chose to win it back high rather than sit and absorb — the front-foot half of a team built to spring forward the moment it turned possession over.

The nuance: equal intensity, different totals

Here's where you have to be careful, because raw counts can mislead. France did more defending in part because it had to — the team without the ball is the team making tackles. So we also computed a possession-adjusted measure, the idea behind PPDA (passes allowed per defensive action): how many passes a team let its opponent string together in build-up for each defensive action it made high up the pitch. Lower means more intense pressing.

On that measure the two teams were almost identical — each allowed roughly the same number of opponent build-up passes per high defensive action. In other words, relative to how much they had to defend, Argentina and France pressed with similar intensity. France's bigger raw totals are mostly a consequence of Argentina having the ball more, not evidence that France pressed dramatically harder per opportunity. The honest reading: France defended more and higher, but not at a higher rate once you account for possession.

Why this fits how the game actually went

The defensive map matches the texture of the match. For long stretches — especially the first hour — Argentina kept the ball and France chased, defending in a mid-block and looking to break. The elevated French actions in the middle and attacking thirds are those moments of trying to win the ball back quickly to launch a counter. When France finally turned the game on its head with two goals in 97 seconds, it came through exactly that mechanism: regain possession and attack at speed. The pressing numbers are the statistical fingerprint of a team that spent the night without the ball and made its living the instant it got it.

A worked check: the attacking-third gap

Take the clearest single number: France made 79 defensive actions in the attacking third to Argentina's 64, a 23% edge in the zone where pressing is most aggressive. For a team with the minority of possession, racking up more high defensive actions than its ball-dominant opponent is the telltale sign of a deliberate front-foot scheme rather than a passive one. Contrast a team that defends deep: its actions cluster in its own third, not the opponent's. France's distribution leans forward, which is the data agreeing with the eye test that France pressed to spring, rather than parking the bus.

The limits of this exhibit

  • Possession confounds raw counts. The single biggest caveat: the team without the ball mechanically makes more defensive actions. That's exactly why the possession-adjusted (PPDA-style) read matters, and on that measure the teams were level. Don't read "France made more tackles" as "France pressed harder per chance."
  • Action types aren't all equal. A pressure, a duel, and an interception are bundled together here, but they're different events — a pressure is an attempt to disrupt, an interception is a completed win of the ball. A finer analysis would weight them.
  • Thirds are a coarse map. Splitting the pitch into three zones is a blunt instrument; a full pressing analysis uses the exact x-y locations and pressing sequences, not just which third. The direction (France higher) is robust, but the picture is simplified.
  • One match, and a wild one. This is a single, chaotic, extra-time final — vivid but not a general law about either team. It describes this night, not France's or Argentina's pressing identity across a tournament.

The takeaway

Put the two days together and you have the whole match in two numbers-pictures. Argentina controlled the ball; France chased it, doing more defensive work and pressing higher up the pitch — though, adjusted for possession, both pressed at similar intensity. Neither picture alone explains a 3–3 final settled on penalties, but together they show why it was so close: one team imposed itself in possession, the other built its whole game around the moments it won the ball back. Control and pressing are two halves of the same contest, and the 2022 final split them almost perfectly down the middle.

Reproduce it

Filter the event feed to each team, drop the shootout (period 5), and count defensive actions (Pressure, Ball Recovery, Duel, Interception, Block) by pitch third using each event's location on the 120-long pitch. The possession-adjusted figure divides each opponent's build-up passes by the pressing team's high defensive actions. The chart is regenerated by charts/chart_wc2022_final_pressing.py against the bundled data_layer/wc2022_final_3869685_events.json — no network, nothing hand-entered.

Where these numbers come from

The xG story of the final

This section was first published on 15 June 2026 as a separate article.

The 2022 World Cup final gets called the greatest of all time, and for once the cliché survives contact with the data — but not for the reason the 3–3 scoreline implies. We pulled the real event file for the match (Argentina 3–3 France, won by Argentina in the shootout) and added up the expected goals on every one of the 30 in-match shots. The headline: in open play Argentina created 1.98 xG to France's 0.71 — nearly three times as much — and the only reason the match was level after 120 minutes is that France took two penalties worth 0.78 xG each. The final was a blowout that a referee's whistle, a Mbappé hot streak, and ninety seconds of madness turned into a coin-flip. This is the anatomy of how that happened, shot by shot, from the actual numbers.

The thesis: 3–3 hides a lopsided game

A scoreline is the noisiest one-number summary in sport. It records what went in, not what was created, and the 2022 final is the cleanest example on this site of the gap between the two. Here are the real totals, computed directly from shot.statsbomb_xg on every Shot event in the match (the penalty shootout is excluded throughout — more on why below):

TeamShotsTotal xGNon-penalty xGPenalty xGGoals
Argentina202.761.980.783
France102.270.711.573

Real values from StatsBomb Open Data, match 3869685; regulation + extra time, shootout excluded.

Total xG looks close — 2.76 to 2.27 — and that is exactly the trap. Strip out the penalties and the picture inverts into a rout: Argentina manufactured 1.98 expected goals of open-play chance to France's 0.71. France's two in-match penalties (both converted by Kylian Mbappé) carry 0.78 xG apiece, and StatsBomb's model rates every penalty identically at 0.78 because position and angle are fixed. Two of those is 1.57 xG — more than double everything else France generated all night from open play and set pieces combined. Argentina, by contrast, took one penalty and built the rest of their 2.76 from twenty shots spread across the whole final third. That is the whole story in two rows: one team played a final, the other was awarded one.

Exhibit A — the shot map

Plot every in-match shot on its half of the pitch, size each dot by its xG, ring the goals, and the asymmetry becomes physical. (If the grammar of this graphic is new to you, we wrote a primer on reading a World Cup shot map — dots sized by danger, goals ringed.)

Two half-pitch shot maps side by side. Argentina's, left, shows twenty shots scattered across the box and the edge of the area, several large, three ringed as goals. France's, right, shows just ten shots, dominated by two large diamond markers for penalties and a single open-play goal, with little else of size.
Every in-match shot, sized by StatsBomb xG; goals ringed in yellow, penalties marked as diamonds. Argentina (20 shots, 2.76 xG) fills the box; France (10 shots, 2.27 xG) leans almost entirely on two penalty diamonds and one small open-play goal. Data: StatsBomb Open Data — 2022 World Cup final.

Argentina's half is busy: a cluster of central, high-value chances inside the six- and eighteen-yard boxes, plus a scatter of lower-xG efforts from the edge of the area — the signature of a team that kept getting into dangerous positions. France's half is almost empty by comparison. Two of their three biggest markers are the penalty diamonds, sitting on the spot. Remove those and France's open-play map is a single ringed goal (Mbappé's 0.10 xG volley) and a thin handful of low-value attempts. The one genuinely big France open-play chance — Randal Kolo Muani's 0.28 xG strike in the 122nd minute, saved by Emiliano Martínez — is the lone large open-play dot on their side, and it did not go in. The map is the argument: this was a one-sided creation contest with a balanced scoreboard bolted on top.

Exhibit B — the xG race

The shot map shows how much and where; it loses when. For that we built the cumulative xG "race" — each team's running xG total stepping up at the minute of every shot, so the steepness shows when chances arrived and the gap shows who deserved more at any moment.

A step-line chart of cumulative expected goals over the match. Argentina's green line climbs steadily and stays clearly above France's blue line for the entire match, reaching 2.76. France's line is flat from the 5th to the 79th minute, then jumps sharply with two penalties and a goal in quick succession around minutes 79–80, and again late, finishing at 2.27 but never overtaking Argentina.
Cumulative in-match xG over time; goals ringed in yellow. Argentina's line is on top from the opening minutes to the final whistle of extra time. France stay flat for an hour, then their late surge — two penalties plus the Mbappé volley around minutes 79–80 — is a near-vertical leap, not a build-up. Data: StatsBomb Open Data — 2022 World Cup final.

Read it left to right and the drama is right there in the geometry. Argentina's green line pulls ahead inside the first half — Messi's penalty (min 22) and Ángel Di María's 0.30 xG goal (min 35) — and it never relinquishes the lead, not once across 120 minutes. France's blue line is the tell: it is essentially flat from the 5th minute to the 79th. For seventy-four minutes France generated almost nothing. Then comes the vertical cliff — the 79th-minute penalty, Mbappé's 80th-minute volley, the equaliser sequence that turned 2–0 into 2–2 in ninety-seven seconds. The race chart renders that famous collapse as what it statistically was: not a tide turning, but two near-instant spikes against a backdrop of an hour of inactivity. Even after the late surge and the extra-time exchange, France's line never catches Argentina's. The team that was on top the entire match was, by the only continuous measure we have, on top the entire match.

A worked example: how the xG actually adds up

It is worth seeing the arithmetic, because "xG" can feel like a black box and it is not. Every Shot event in the file carries a statsbomb_xg field — the model's estimate of the probability that an average player scores that shot. A team's total is just the sum. Take three of Argentina's real shots:

  • Messi penalty, 22' — 0.783 xG (every penalty scores ~78% of the time). Goal.
  • Di María, 35' — 0.303 xG, a clean finish from the left of the box. Goal.
  • Messi, 107' — 0.488 xG, the close-range tap-in that made it 3–2. Goal.

Those three alone sum to 0.783 + 0.303 + 0.488 = 1.574 xG. Argentina's full twenty shots add to 2.758. So just three chances account for well over half their total — this was a team taking a mix of one or two gilt-edged chances and a long tail of half-chances, exactly the profile the shot map shows. Now compare France: their entire open-play output across the match was 0.706 xG, less than half of Argentina's three biggest shots. France scored three times from a non-penalty xG of 0.71, which is finishing of a kind that does not repeat — Mbappé's 0.10 xG volley alone is the sort of strike that goes in maybe one time in ten. The model is not saying France were bad; it is saying France were finishing at a rate no team sustains, and that the underlying chances belonged overwhelmingly to Argentina.

Try it: turn these xG totals into a result

If both teams' chances had paid out at an average rate, what should the scoreline have been? Drop the real open-play-plus-penalty totals into the calculator below — try Argentina 2.76 against France 2.27 — and it models each side's goals as a Poisson count with that mean, builds the full scoreline grid, and returns win, draw and loss probabilities plus expected points. With these inputs Argentina come out clear favourites to have won in normal time, which is the point: the chances pointed one way, the night went another.

This calculator needs JavaScript. The method: model each team's goals as Poisson with mean equal to its total xG, build the scoreline grid, sum it into win / draw / loss, then xPoints = 3·P(win) + 1·P(draw).

Open this calculator on the tools page → · or run a whole bracket in the tournament simulator.

Honest limitations: what this analysis cannot tell you

It would break our own rules to let the xG do more work than it can. Several caveats, and they matter:

  • xG ignores game state. Argentina led 2–0 for an hour and, like any side defending a lead, will have shaded toward control over risk. Some of France's flat line is a team being kept at arm's length; some of Argentina's volume came against a side chasing the game late. Game state warps shot data, and a full-match total cannot separate the two.
  • xG says nothing about the goalkeeper or the finish. The model rates the chance, not the strike. Mbappé's 0.10 xG volley was an extraordinary contact; Emiliano Martínez's extra-time save on Kolo Muani's 0.28 xG chance was an extraordinary stop. xG is blind to both, which is precisely why it is a measure of chance quality and not of performance.
  • Penalties are not run-of-play. We report non-penalty xG separately for a reason: a fixed 0.78-xG penalty tells you nothing about how a team built an attack. France's 1.57 penalty xG is real, but it is a different kind of number from open-play creation, and lumping them together is how 3–3 came to look "even" in the first place.
  • It is one match. Everything here describes a single 120-minute sample. xG is an honest instrument over a season and a soft suggestion over one game. This piece is an autopsy of this final, not a claim about either team's quality in general.
  • And the shootout is excluded entirely. Argentina won the match on penalties, 4–2 in the shootout after 3–3 — a public, primary-source fact — but a shootout is not run-of-play football and its kicks carry no meaningful open-play xG, so none of it appears in any total above.

Reproducibility: the code behind the totals

Every number in this piece comes from one file, data_layer/wc2022_final_3869685_events.json, and a few lines of Python. The full chart script lives in the repo at charts/chart_wc2022_final.py; the core that computes the totals is this:

import json, collections

events = json.load(open("data_layer/wc2022_final_3869685_events.json", encoding="utf-8"))
# Shots only, and drop the penalty shootout (StatsBomb period 5).
shots = [e for e in events
         if e["type"]["name"] == "Shot" and e["period"] != 5]

agg = collections.defaultdict(lambda: {"xg": 0.0, "pen": 0.0, "n": 0, "g": 0})
for s in shots:
    t, sh = s["team"]["name"], s["shot"]
    xg = sh["statsbomb_xg"]
    agg[t]["xg"] += xg
    agg[t]["n"]  += 1
    if sh.get("type", {}).get("name") == "Penalty":
        agg[t]["pen"] += xg
    if sh.get("outcome", {}).get("name") == "Goal":
        agg[t]["g"] += 1

for team, d in agg.items():
    print(f"{team}: {d['n']} shots, {d['xg']:.3f} xG "
          f"({d['xg']-d['pen']:.3f} non-pen), {d['g']} goals")
# Argentina: 20 shots, 2.758 xG (1.975 non-pen), 3 goals
# France:    10 shots, 2.273 xG (0.706 non-pen), 3 goals

The two figures above are generated by the same script that prints those totals, so the chart and the table cannot drift apart. Re-run it with python charts/build_charts.py and you get the identical PNGs and numbers, because they all read the one event file.

Synthesis: what the greatest final teaches about reading a match

The 2022 final is the case study to reach for whenever someone says xG "doesn't capture the drama." It captures it perfectly — it just refuses to lie about it. The drama was real: a 2–0 lead, a 97-second collapse, a Mbappé hat-trick, a shootout for the trophy. But the match was lopsided, and the data is the only honest witness to that, because the scoreboard and the highlight reel both conspire to remember the goals and forget the hour of Argentine control that surrounded them. Lay the two exhibits side by side — the shot map for the shape of it, the xG race for the timing — and you get a reading no box score offers: who deserved it, and exactly when the deserving and the happening came apart.

That gap between deserved and happened is the whole reason this site exists. If you want the machinery for turning these totals into a fairer result, the expected points piece walks through modelling a match's xG into win/draw/loss probabilities; the shot-map primer covers the graphic; and the tournament simulator lets you push those probabilities all the way through a bracket. The 2022 final is what all of it is for: a tool to see the game the scoreline is hiding from you.

Sources & data

  • StatsBomb Open Data — the event file for the 2022 World Cup final (match 3869685) (free public dataset; attribution required). Every xG value here is StatsBomb's shot.statsbomb_xg; the totals and both charts are computed from it.
  • Result of record: Argentina 3–3 France after extra time; Argentina won 4–2 on penalties, 18 December 2022, Lusail Stadium — the 2022 FIFA World Cup final.
  • Expected goals explained — what an xG value actually means before you start summing them.

Possession isn't control

This section was first published on 18 June 2026 as a separate article.

The 2022 World Cup final is remembered as chaos — Argentina cruising, then Mbappé's two goals in 97 seconds, then extra time, then more goals, then penalties. But strip the match down to its 4,407 on-ball events and a much calmer story sits underneath the madness: for most of the night, Argentina controlled the ball almost completely, and it still wasn't enough to win in regulation. The passing data is a clinic in why "control" and "winning" are two different things that we constantly mistake for one.

The control scorecard

We took the real StatsBomb event feed for the match and computed, for each side, the unglamorous metrics that measure who actually ran the game: share of on-ball events (a possession proxy), pass completion, passes into the final third, progressive passes, and carries. Every number below is counted directly from the events — nothing modelled, nothing invented.

A horizontal scorecard comparing Argentina and France across five control metrics from the 2022 World Cup final. Argentina leads in possession (53.8% to 46.2% of on-ball events), pass completion (80.8% to 76.1%), passes into the final third (215 to 157), progressive passes (162 to 151), and carries (513 to 427). Each bar is labelled with its real value.
Who controlled the 2022 final, by the on-ball events. Argentina led every control metric — possession, completion, territory, and ball progression. Data: StatsBomb Open Data (free public dataset; attribution required) — 2022 World Cup final.

It's a clean sweep. Argentina had 53.8% of the on-ball events to France's 46.2%, completed 80.8% of its passes against France's 76.1%, and pushed the ball into the final third 215 times to France's 157 — nearly 40% more territorial entries. They carried the ball more often (513 to 427) and edged the progressive-pass count too. By every measure of having and moving the ball, this was Argentina's match, and comfortably so.

And yet: 3–3, then penalties

Here is the result all that control produced: a 3–3 draw after extra time, settled 4–2 on penalties in Argentina's favour. France — the team that lost the possession battle, the completion battle, and the territory battle — was about ninety seconds of Kylian Mbappé away from retaining the trophy without ever controlling the ball. That is the single most important thing the scorecard doesn't show, and it's the whole point.

Control of the ball buys you something real: more chances to create, fewer chances conceded, a game played mostly in the opponent's half. What it does not buy you is goals on demand. France spent the night without the ball and then converted a tiny window of chances — a penalty and a thunderbolt — into two goals in the time it takes to tie your boots. Possession is accumulated slowly; goals arrive in discontinuous bursts. The final is the most dramatic illustration imaginable of that mismatch.

Why we overrate possession

Possession statistics feel like they should predict results because controlling the ball is, intuitively, "winning the game" in slow motion. The trouble is that the relationship between possession and goals is weak and noisy, for three reasons the final puts on full display.

First, not all possession is equally dangerous. Argentina's 215 final-third entries are worth something only if they end in good chances; sterile sideways passing in the attacking third runs up the count without troubling the goalkeeper. The link between territory and expected goals is real but loose, which is exactly why xG exists as a separate measurement from possession.

Second, game state distorts everything. Once a team leads, it often cedes the ball deliberately, defends deep, and counterattacks — so possession flows to the team that's behind. Some of Argentina's possession dominance is a consequence of the score, not a cause of it, the same game-state effect that inflates the passing numbers of every chasing team. France sitting off and striking on the break is a feature of how they played, not evidence they were dominated in the way the raw numbers suggest.

Third, finals are tiny samples. One match is ninety-plus minutes of high variance; the better-controlling side wins more often than not across a season, but in any single game a couple of moments swamp ninety minutes of patient build-up. The shootout that decided this one is variance in its purest, most brutal form.

A worked check: control vs. the scoreboard

Put the two stories side by side. On control, Argentina won every category, often decisively — this was, by possession and territory, a one-sided final. On the scoreboard, it was a coin flip resolved by penalties. The gap between those two sentences is the entire argument for why analysts pair possession with shot-quality data instead of trusting either alone. If you'd watched only the passing numbers tick over, you'd have called this a routine Argentine win by the 80th minute. The people who watched the shots and their quality — and the scoreboard — knew it was anything but.

The limits of this exhibit

  • Possession here is an event proxy. "Share of on-ball events" approximates possession but isn't the same as time-on-ball; a team that makes many short passes racks up events without necessarily holding the ball longer. The direction (Argentina ahead) is robust, but don't read 53.8% as a stopwatch figure.
  • "Progressive" is a defined heuristic. We counted a pass as progressive if it advanced the ball at least 10 metres upfield and ended beyond the halfway line. That's a reasonable, transparent definition, but other models draw the threshold differently and would get slightly different counts.
  • One match, and a famously weird one. This is a single game decided in extra time and penalties — about the least representative match you could pick. It's a vivid illustration of "control isn't winning," not proof of a general law. For that you'd pool hundreds of matches and watch the weak possession-to-points correlation emerge.
  • Shots and xG are left out on purpose. The match's shot and penalty events (including the shootout) muddy a clean open-play xG figure, so this piece sticks to ball-control metrics. The scoring story lives in the final's xG breakdown.

The takeaway

Argentina controlled the 2022 World Cup final by every measure of having and moving the ball, and that control was real and earned. It just wasn't the same thing as winning, because winning is about goals, and goals don't accumulate the way possession does. The scorecard and the scoreboard told opposite stories that night, and the honest analyst holds both: Argentina ran the game, France nearly stole it, and a shootout — pure variance — had the final word. Control tilts the odds. It never settles them.

Reproduce it

Every number comes from one event file. Filter the events to each team, count passes (complete = no outcome tag), flag those ending in the final third (end_location x ≥ 80 on a 120-long pitch) and those advancing ≥ 10m past midfield, and count carries and total on-ball events. The scorecard is regenerated by charts/chart_wc2022_final_passing.py against the bundled data_layer/wc2022_final_3869685_events.json — no network, nothing hand-entered.

Sources & further reading