I watched all 104 matches of the World Cup and, at some point, started feeling like something was missing: after the euphoria (or boredom) of a match, I wanted to record what I thought of it. I was already building World Cup Analytics to have the best statistics, but that wasn’t quite it. I wanted to record what it felt like to watch it, and to reach the end of the tournament with a picture of how it went inside my head. So I opened a spreadsheet and started rating every single match.
Let me make this very clear up front: there is no serious methodology here. It’s not xG, it’s not a statistical model, it’s nothing a real analyst would defend with a straight face. It’s just someone watching and breaking each match down into five criteria:
- How was the first half?
- And the second?
- Was it end-to-end stuff, attacks flowing both ways, or just one team lumping balls into the box?
- Was there drama (a comeback, a late goal, tension)?
- And the context? An upset, a rivalry, anything that gave the match a place in World Cup history?
Each criterion gets a score from 0 to 10, each with a different weight in the final tally (drama and context weigh more than “just” the technical quality of a given half). You’re welcome to argue with the weights, but that part’s on me. The result is one final score per match.
The matches that were worth every minute
England 1 x 2 Argentina, in the semifinal, started out with a 10 in historical weight before a ball was even kicked. And the match delivered. Thanks to a breathless finish and a genuinely hard-fought game, it ended up with the second-highest score of the tournament (9.5). The top spot, though, went to one of the most surprising matches of all: Argentina 3 x 2 Cape Verde took the symbolic prize (9.63) after a wild ride in which nobody imagined the scare the then-reigning world champions would get from the biggest surprise of the competition.
The top 10 includes one of my most controversial picks. Algeria 3 x 3 Austria, in the group stage, got a 9.05. A match everyone expected to be a gentleman’s agreement in disguise, but which turned out to be thrilling and well played. If a match is that good to watch, the score has to reflect it — even with the result being, allegedly, arranged.
The matches of despair
I just mentioned Algeria x Austria, but Paraguay 0 x 0 Australia got a 1.25 precisely for being the bad version of that same arrangement. Neither team tried, at any point, to open the scoring. No goals, no clear chances, no reason to get up off the couch. Alongside it, Uruguay 0 x 1 Spain (4.8) had only a Muslera blunder separating the two sides, with Uruguay’s attack proving completely toothless. Qatar 1 x 1 Switzerland (4.9) featured Switzerland waiting for Qatar’s equalizer from the opening minute — and it only arrived in stoppage time.
Looking at the averages per criterion, “drama” had the highest score across the whole tournament (7.1) and “first half” the lowest (6.06). That matches a feeling I already had while watching: matches tend to take a while to get going, and the World Cup is won (or lost) after the break.
Among the teams, England finished with the highest average across their matches (8.03) — not necessarily because they played the best football, but because their matches happened to be the exciting ones. At the other end, Australia ended up with the worst average (4.92). The Paraguay match was decisive for that, but I’d say it’s deserved.
All these numbers (and several other cuts: the full team ranking, averages per criterion, the top matches of each stage) live on a dashboard at worldcup-match-ratings.jvmello.dev, updated straight from the spreadsheet.
Of course, you would obviously do better
I got plenty of abuse when I shared a preview with group-stage matches. “That match was nothing special”, “Switzerland x Bosnia deserves respect”, “Austria x Algeria???”. So here it all is, out in the open, for you to build your own version: the spreadsheet I use is available in Portuguese and English for you to fill in, and there’s a repository, worldcup-match-ratings, where you clone it, fill in your own scores, and run a dashboard on your own machine to see how your numbers turn out — no database to install, nothing beyond running a script.
Now go on, try it! Change the weights, change the criteria… The power is in your hands.
PS: I didn’t watch every match live, of course. I have a life. But I watched all of them whenever possible to have some grounding, thanks to their availability on YouTube.