The Whistle
Refereeing, counted — every foul, card, offside, penalty and VAR intervention across all 104 matches, from FIFA's own event feed.
Read it honestly: whistle counts follow playing style. Pressing teams commit more fouls, chasing teams pick up more cards, and deep runs mean more matches. This page is a ledger, not a verdict — the numbers say what happened, not why.
Tightest whistle
IR Iran
2.6 bookings / 10 fouls
field average 1.2
Most lenient whistle
Tunisia
0.3 bookings / 10 fouls
field average 1.2
VAR's friend
Argentina
5–0 calls for–against
where direction is attributable
Most penalties conceded
France
3 against · 2 won
penalties awarded in their matches
All 48, by how the whistle treated them
Sorted by bookings per 10 fouls committed — how often a foul turned into a card. Penalties and VAR are raw counts for and against.
| Team | M | Fouls | Drawn | Y | R | Bookings /10 fouls | Pens +/− | VAR +/− | Offsides |
|---|---|---|---|---|---|---|---|---|---|
| 3 | 23 | 35 | 6 | — | 2.6 | 1/0 | 0/1 | 9 | |
| 4 | 37 | 49 | 8 | 1 | 2.4 | 0/0 | 0/1 | 2 | |
| 3 | 26 | 29 | 6 | — | 2.3 | 0/0 | 1/0 | 3 | |
| 3 | 31 | 32 | 7 | — | 2.3 | 0/1 | 0/0 | 5 | |
| 4 | 37 | 59 | 7 | 1 | 2.2 | 0/1 | 1/0 | 2 | |
| 3 | 28 | 36 | 4 | 2 | 2.1 | 0/1 | 0/1 | 4 | |
| 3 | 29 | 31 | 5 | 1 | 2.1 | 0/0 | 0/0 | 14 | |
| 4 | 27 | 47 | 5 | — | 1.9 | 1/1 | 1/1 | 11 | |
| 5 | 67 | 59 | 12 | — | 1.8 | 0/2 | 1/1 | 4 | |
| 3 | 23 | 32 | 4 | — | 1.7 | 0/0 | 0/0 | 4 | |
| 3 | 23 | 31 | 4 | — | 1.7 | 0/2 | 0/2 | 3 | |
| 5 | 61 | 66 | 9 | 1 | 1.6 | 0/1 | 1/1 | 5 | |
| 3 | 43 | 55 | 7 | — | 1.6 | 0/0 | 0/0 | 7 | |
| 3 | 31 | 27 | 4 | 1 | 1.6 | 0/0 | 0/1 | 1 | |
| 8 | 100 | 113 | 15 | 1 | 1.6 | 3/0 | 5/0 | 22 | |
| 5 | 71 | 72 | 11 | — | 1.5 | 0/0 | 1/0 | 7 | |
| 4 | 46 | 38 | 5 | 2 | 1.5 | 1/0 | 0/1 | 8 | |
| 3 | 33 | 46 | 5 | — | 1.5 | 0/0 | 0/0 | 6 | |
| 5 | 54 | 51 | 8 | — | 1.5 | 2/0 | 1/0 | 11 | |
| 3 | 29 | 45 | 4 | — | 1.4 | 0/1 | 1/1 | 3 | |
| 4 | 44 | 44 | 6 | — | 1.4 | 1/0 | 0/1 | 9 | |
| 4 | 38 | 46 | 5 | — | 1.3 | 0/0 | 0/1 | 1 | |
| 4 | 31 | 55 | 4 | — | 1.3 | 0/0 | 0/0 | 4 | |
| 3 | 39 | 42 | 5 | — | 1.3 | 0/0 | 0/0 | 2 | |
| 4 | 47 | 56 | 6 | — | 1.3 | 0/0 | 0/0 | 8 | |
| 3 | 32 | 25 | 4 | — | 1.3 | 0/0 | 0/0 | 8 | |
| 5 | 64 | 56 | 7 | 1 | 1.3 | 0/0 | 1/1 | 11 | |
| 5 | 64 | 70 | 8 | — | 1.3 | 0/0 | 0/0 | 19 | |
| 5 | 58 | 44 | 7 | — | 1.2 | 1/0 | 3/0 | 10 | |
| 4 | 36 | 29 | 4 | — | 1.1 | 0/0 | 0/0 | 4 | |
| 4 | 47 | 27 | 5 | — | 1.1 | 0/0 | 0/0 | 7 | |
| 5 | 48 | 58 | 4 | 1 | 1.0 | 1/1 | 4/0 | 5 | |
| 6 | 68 | 78 | 6 | 1 | 1.0 | 1/0 | 1/0 | 8 | |
| 6 | 89 | 87 | 8 | 1 | 1.0 | 2/0 | 0/1 | 13 | |
| 4 | 50 | 43 | 5 | — | 1.0 | 0/0 | 1/0 | 9 | |
| 4 | 46 | 45 | 4 | — | 0.9 | 0/2 | 0/2 | 8 | |
| 8 | 74 | 84 | 6 | — | 0.8 | 2/3 | 0/0 | 14 | |
| 6 | 88 | 74 | 7 | — | 0.8 | 0/1 | 0/0 | 9 | |
| 8 | 116 | 81 | 8 | 1 | 0.8 | 3/1 | 0/2 | 15 | |
| 4 | 40 | 29 | 3 | — | 0.8 | 0/0 | 0/1 | 4 | |
| 6 | 41 | 58 | 3 | — | 0.7 | 1/2 | 0/1 | 5 | |
| 4 | 42 | 51 | 3 | — | 0.7 | 1/0 | 0/1 | 4 | |
| 4 | 43 | 44 | 3 | — | 0.7 | 0/0 | 0/0 | 8 | |
| 8 | 89 | 101 | 6 | — | 0.7 | 1/0 | 0/1 | 21 | |
| 4 | 48 | 36 | 3 | — | 0.6 | 0/1 | 1/1 | 10 | |
| 3 | 38 | 31 | 2 | — | 0.5 | 0/0 | 1/0 | 7 | |
| 3 | 31 | 37 | 1 | — | 0.3 | 0/1 | 0/0 | 5 | |
| 3 | 34 | 27 | 1 | — | 0.3 | 0/0 | 0/1 | 9 |
The argued matches
Where the refereeing was loudest — most VAR interventions, penalties and card asymmetry in one place. Open the theater and judge for yourself.
The officials
Every referee, ranked by cards shown per match.
| Referee | M | Fouls /m | Yellows /m | Reds | Pens | VAR calls |
|---|---|---|---|---|---|---|
| Felix ZWAYER | 2 | 21.0 | 6.0 | — | 1 | 2 |
| MA Ning | 1 | 11.0 | 6.0 | — | 0 | 0 |
| Francois LETEXIER | 3 | 21.3 | 4.7 | 1 | 1 | 1 |
| Ivan BARTON | 4 | 28.5 | 4.0 | 1 | 1 | 1 |
| Michael OLIVER | 4 | 23.8 | 4.3 | — | 1 | 0 |
| Cristian GARAY | 1 | 16.0 | 2.0 | 2 | 0 | 1 |
| Alejandro HERNANDEZ | 1 | 23.0 | 4.0 | — | 0 | 0 |
| Slavko VINCIC | 4 | 26.5 | 3.3 | 2 | 0 | 1 |
| Joao PINHEIRO | 3 | 24.7 | 3.0 | 2 | 1 | 1 |
| Ramon ABATTI | 2 | 28.5 | 3.5 | — | 0 | 0 |
| Szymon MARCINIAK | 2 | 21.0 | 3.5 | — | 1 | 2 |
| Abdulrahman ALJASSIM | 2 | 21.0 | 3.5 | — | 0 | 0 |
| Tori PENSO | 2 | 21.0 | 3.5 | — | 1 | 1 |
| Espen ESKAS | 2 | 13.5 | 3.5 | — | 1 | 2 |
| Jalal JAYED | 3 | 27.3 | 3.3 | — | 1 | 2 |
| Anthony TAYLOR | 3 | 19.7 | 3.0 | 1 | 0 | 1 |
| Ismail ELFATH | 4 | 17.5 | 3.0 | 1 | 2 | 1 |
| Danny MAKKELIE | 3 | 25.0 | 3.0 | — | 0 | 1 |
| Maurizio MARIANI | 3 | 17.7 | 3.0 | — | 0 | 0 |
| Dario HERRERA | 1 | 13.0 | 2.0 | 1 | 0 | 1 |
| Omar ALALI | 1 | 19.0 | 3.0 | — | 0 | 0 |
| Facundo TELLO | 3 | 20.3 | 2.7 | — | 1 | 0 |
| Said MARTINEZ | 3 | 29.3 | 2.7 | — | 2 | 1 |
| Alireza FAGHANI | 3 | 17.3 | 2.3 | 1 | 2 | 3 |
| Amin MOHAMED | 2 | 24.0 | 2.5 | — | 1 | 1 |
| Mustapha GHORBAL | 2 | 32.5 | 2.5 | — | 0 | 0 |
| Gustavo TEJERA | 2 | 19.0 | 2.5 | — | 0 | 0 |
| Raphael CLAUS | 2 | 15.0 | 2.0 | 1 | 0 | 2 |
| Wilton SAMPAIO | 3 | 22.7 | 1.3 | 3 | 0 | 1 |
| Glenn NYBERG | 3 | 18.0 | 2.3 | — | 0 | 0 |
| Ilgiz TANTASHEV | 3 | 16.0 | 2.3 | — | 1 | 1 |
| Adham MAKHADMEH | 4 | 15.5 | 2.0 | — | 0 | 1 |
| Cesar RAMOS | 2 | 17.0 | 2.0 | — | 0 | 1 |
| Clement TURPIN | 4 | 18.3 | 2.0 | — | 1 | 3 |
| Drew FISCHER | 3 | 18.0 | 1.7 | — | 0 | 1 |
| Pierre ATCHO | 2 | 26.5 | 1.5 | — | 0 | 0 |
| Istvan KOVACS | 2 | 20.0 | 1.5 | — | 1 | 1 |
| Yael FALCON PEREZ | 3 | 19.7 | 1.3 | — | 0 | 1 |
| Jesus VALENZUELA | 4 | 17.8 | 1.0 | — | 1 | 0 |
| Dahane BEIDA | 1 | 19.0 | 1.0 | — | 1 | 2 |
| Juan Gabriel BENITEZ | 1 | 12.0 | 0.0 | — | 0 | 0 |
| Katia GARCIA | 1 | 21.0 | 0.0 | — | 0 | 0 |
Sources: FIFA match event feed and official team stats. VAR direction is inferred by matching the decision to the card, penalty or goal at that minute — uninferable calls are listed but count for neither side. Event counts can differ by ±1 from official totals.