case study
Article #18 July 22, 2026 6 min read Sport / Data NEW

48 Teams Were Supposed
to Ruin the World Cup

MM
Mallesh Madapathi
Founder & CEO, ThinkingDBx

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:

year field goals/game 1978 16 teams 2.68 1982 16 to 24 teams 2.81 1986 24 teams 2.54 1990 24 teams 2.21 lowest ever 1994 24 teams 2.71 1998 24 to 32 teams 2.67 2002 32 teams 2.52 2006 32 teams 2.30 2010 32 teams 2.27 modern low 2014 32 teams 2.67 2018 32 teams 2.64 2022 32 teams 2.69 2026 32 to 48 teams 2.96 highest since 1970
2.96
goals per game
308
goals scored
104
matches played
56 yrs
since a better one

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 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:

0-15' 37 ######################## 15-30' 31 #################### 30-45' 43 ############################ 45-60' 59 ###################################### busiest 60-75' 46 ############################## 75-90' 50 ################################# 90+' 42 ###########################

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.

studio.bonacci.thinkingdbx.com, World Cup 2026

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
#WorldCup2026 #DataEngineering #Analytics #BonacciStudio #thinkingdbx

more soon ✎