Every time FIFA has made the World Cup bigger, the football has thinned out behind it. That is not a grumble, it is in the record. The field went to 24 teams in 1982, and within two tournaments scoring had fallen to 2.21 goals a game, the lowest in the competition's history. It went to 32 in 1998, and by 2010 it was back down at 2.27, barely better.
So when this summer arrived with 48 teams and 104 matches, nobody had to think very hard about the prediction. More teams meant more mismatches, more dead rubbers, more men behind the ball.
The final was on Sunday. I ran every match of it through a pipeline on Bonacci Studio, alongside all 22 World Cups that came before it, and the prediction was wrong.
The record, before this summer
Goals per game at every World Cup since the field first expanded:
You have to go back to 1970 to find a World Cup that scored more freely, and even that one edges it by less than a hundredth of a goal. After both previous expansions, scoring slid within two tournaments to the thinnest marks the competition has ever recorded. This time it has gone the other way.
Three things the data made sharper
- The tournament got better. The gap got wider. Scoring went up, but so did the spread. The nine AFC sides won 3 of their 29 matches and conceded 2.07 a game. CONMEBOL conceded 0.90. Expansion did cost something, it just was not entertainment.
- The World Cup is a Premier League export event. Of the 1,248 players at the tournament, 200 play their club football in England, more than Germany, Spain and France combined. Manchester City alone sent 19. Across the whole tournament, 72% of players turn out somewhere other than their own country.
- The winners won the boring way. Spain scored 14 goals. France and England scored 20 each and went home. Spain conceded one goal in eight matches and settled the final in the 106th minute.
The fifteen minutes that decided it
Splitting all 308 goals by quarter-hour turns up the one pattern I did not expect to be this stark:
The busiest passage of the entire tournament is the quarter of an hour straight after half time. Another 42 goals arrived after the 90th minute. Whatever was being said in dressing rooms, and whoever was coming off the bench, that is where this World Cup was won and lost. The final included.
The detail that nearly broke the numbers
All of this comes from public domain files. No API key, no licence, nothing to buy. The awkward part is the shape. A match record keeps its goals nested inside it, as a list hanging off the fixture, so you cannot count a single scorer until every goal has been pulled out into a row of its own. 104 match records become 308 goal events, and only then can you join them to squads, clubs, confederations and venues.
Then there is the trap. An own goal is credited to the team that benefits, but the player belongs to the other one. There were 14 of them. Flatten the data the obvious way and all 14 get filed against the wrong country, your top scorer list quietly gains names that never scored, and nothing anywhere throws an error. The pipeline keeps the scoring side and the player's own side as two separate columns for exactly this reason.
It is a small thing. It is also the difference between a number you can publish and a number you cannot.
What I cannot tell you
There is no expected goals, possession, passing or shot data in any of this. No open event data has been released for 2026 yet. So when I say Spain defended well, that is inferred from one goal conceded in eight matches and nothing underneath it. Read every claim here as scorelines, squads and geography, because that is all it is.
Watch it get built
Below is the whole thing end to end: the files going in, the pipeline being assembled on the canvas, the run that turns 104 matches into 308 goals, and the agent answering the question in the dock with the charts above. Under a minute.
The pundits had a hypothesis. The data had an answer. It took five public files and one pipeline to tell them apart.
Build the same thing on your own data
Bonacci Studio is the platform this ran on. Visual pipelines, an agent that reads your schema and answers in plain language, and charts that come back in the dock rather than in a ticket queue.
Start free Book a demo