PSG 3-1 Toulouse: Where the Stats Lie
By Wandrille P. , April 4, 2026
Tags: ligue 1 , where-the-stats-lie
Paris Saint-Germain 3–1 Toulouse · Ligue 1 Matchday 28 · Parc des Princes · April 3, 2026
Toulouse had an expected goals figure of 0.16 on Friday night. That is not a typo. It is one of the lowest xG totals a team has registered in a Ligue 1 match this season — a figure that reflects 5 total shots, 1 on target, 28% possession, and 4 offsides. By every statistical measure, Toulouse were barely present.
They still scored.
What the numbers said
| Stat | PSG | Toulouse |
|---|---|---|
| Goals | 3 | 1 |
| xG | 1.79 | 0.16 |
| Total shots | 17 | 5 |
| Shots on target | 7 | 1 |
| Shots inside box | 9 | 1 |
| Possession | 72% | 28% |
| Pass accuracy | 91% | 79% |
| Total passes | 812 | 311 |
| Corners | 5 | 2 |
| Fouls | 4 | 13 |
| Goalkeeper saves | 0 | 3 |
PSG’s xG of 1.79 against Toulouse’s 0.16 is an 11-to-1 dominance ratio. Toulouse managed a single shot inside the box across 90 minutes. Their goalkeeper, facing 7 shots on target, made 3 saves. PSG’s keeper was not tested once. The model predicted a routine home win by two or three clear goals. It got the result right and almost everything else wrong — including the one number it is least equipped to handle: a goalkeeping error that handed Toulouse a goal they had done nothing to deserve.
Where the model broke down
The xG model has no mechanism for what happened in the 27th minute. Matvei Safonov, PSG’s Russian goalkeeper, came racing off his line to claim a corner — missed the ball entirely as it took a bad bounce — and Rasmus Nicolaisen met the loose delivery to head into an unguarded net. Toulouse’s xG on that sequence: effectively zero before Safonov moved, effectively one after he did.
No expected goals model assigns probability to a goalkeeper’s decision to leave his line. No model penalizes an error before it happens. The 0.16 xG figure tells you Toulouse created nothing. It does not tell you that they were gifted a goal by the opposition’s own goalkeeper four minutes after going a goal down — and that for ten minutes, Parc des Princes held its breath over a match that should have been settled by halftime.
Context matters equally. This was a Friday evening kickoff, deliberately moved to give PSG recovery time ahead of their Champions League quarterfinal against Liverpool. Luis Enrique played accordingly: managing the game, conserving energy, never pressing for a third goal in the second half when two was sufficient. PSG’s 17 shots against Toulouse’s 5 tells you about territory and possession. It does not tell you that PSG were actively not trying to win by four.
The second half, described by French press as almost entirely devoid of incident, confirms this. PSG coasted. Gonçalo Ramos added a third in injury time — his 12th goal of the season across competitions — but it came as a coda, not a statement. PSG’s xG of 1.79 is probably an undercount of their true dominance, because the second half shots were deliberately suppressed.
The player who broke the model: Ousmane Dembélé
Match stats: 90 min · 2 goals · 0 assists · 4 shots (3 on target) · 44 passes · 86% accuracy · 3 key passes · 7 duels (5 won) · Rating: 8.7
Dembélé was the last person who needed a Toulouse goalkeeping error to affect the scoreline. He had already opened the scoring with a volley in the 23rd minute — the kind of finish that xG models categorize as low-probability without accounting for the quality of the striker taking it — and he added a second nine minutes later, tucking in from close range after Kvaratskhelia played him through.
His two goals came from four shots, three on target — a 50% conversion rate on attempts, 75% on shots on target. Those numbers are sustainable only if you are Ousmane Dembélé. His 3 key passes in 90 minutes confirm what the goals obscure: he was also the primary creative force in the first half, the player Toulouse committed most defensive resources to containing, and the one who made space for everyone else.
The broader context is significant. Dembélé is the reigning Ballon d’Or winner. A home Ligue 1 match against a mid-table side, played on a schedule managed around Liverpool, is not where he was supposed to be at his best. He was anyway. His brace takes him further clear as PSG’s top scorer and serves as a quiet warning to Slot’s side: the form is uninterrupted.
The player the stats exposed: Matvei Safonov
Match stats: 90 min · 0 saves · 1 goal conceded · 46 passes · 34% accuracy · Rating: 6.9
The 6.9 rating is generous. Safonov faced no shots on target — PSG’s xG-suppressing dominance meant Toulouse never genuinely tested him — and his 34% pass accuracy (34 accurate passes from 46 attempts) was the lowest of any outfield-adjacent contributor on the pitch. The one moment that defined his evening was the one moment the model cannot see: his decision to charge off his line for a corner in the 27th minute, miss the ball entirely, and gift Toulouse a goal from a sequence that had generated zero expected danger.
L’Équipe’s front page named it directly — “la boulette russe” — and the framing was fair. Safonov is PSG’s starting keeper, and in a season where the title race remains within reach of Lens, a goalkeeper error that turns a 1-0 into a 1-1 before the half-hour mark is the exact kind of margin that costs champions. It did not cost them here. But the 6.9 rating obscures a performance whose single defining moment was entirely self-inflicted.
What to take away
PSG won this match so comprehensively that Toulouse’s goal is a statistical rounding error — 0.16 xG is less than a coin flip, less than a penalty, less than almost any chance generated in open play. The model was right about everything: who dominated, who created, who should have won. What it missed was a goalkeeper error that models have no framework for, and a tactical decision by the winning team to coast through a second half they had already won.
The four-point gap over Lens is the real number from Friday night. Dembélé’s brace is the real story. Safonov’s corner is the reminder that football happens outside the model, even in matches that look exactly like what the model predicted.