The world learning football
Every international match ever played, 1872-2026, as an Elo map replay. 154 years in 29 seconds.
Where this came from
The bracket engine in EP 02 runs on Elo ratings computed over every international match ever played. Before trusting a rating system with a World Cup bracket, you want to see it behave: does it know when empires fall, when a golden generation rises, when a small country punches up for a decade? The cleanest way to check 154 years of ratings at once was to paint them on a map and press play. It became the best 29 seconds of the whole project. Around 1992 you can watch Yugoslavia split into seven colors. The gold fireworks are all 22 World Cup titles, and they only ever land on deep blue.
How the ratings work
Elo in the eloratings.net style: everyone starts at 1500, K scales with match importance (World Cup highest, friendlies lowest), updates scale with goal margin, and the home side gets a temporary +100 inside the calculation. The map repaints from quarterly snapshots; dead states hand their colors to their successors. Rendered with plain SVG and ffmpeg from the public dataset.
When was the first international football match?
Scotland 0-0 England, 30 November 1872 — row one of the dataset and the first frame of the replay. Two countries, one island, nil-nil. For its first thirty years the international game barely left that island; then it escapes, South America picks it up around the turn of the century and gets scary good at it, and the map starts filling for real. By 1976 more than half of the 336 national sides that ever appear in the record — 204 of them — had already played their first match. The replay compresses all of it into one pass: 154 years, 29 seconds, every debut inked on the day it happened.
Is international football getting more competitive?
The sport's center of mass says yes: 30,574 of the 49,477 internationals ever played — 38% of everything since 1872 — happened in just the last two decades. The map you're watching fill in is now 252 rated national teams, and the structure of the game keeps them close. Across all 964 World Cup finals games from 1930 to 2022, the higher-rated team won just 57%, drew 22%, and lost outright 21% — and 62% of those games ended level or a single goal apart. The gold fireworks only ever land on deep blue, so the titles still belong to the top of the table. But the table got crowded, and one goal separates most of it.
Why are there fewer blowouts in the World Cup now?
Because the scorelines that built the legends live almost entirely in the early decades. The wildest tournament in the record is 1954: 5.38 goals per game, a 7-5 (Austria over Switzerland), and Turkey 7-0 South Korea — one of only two games in 92 years of World Cup finals where the underdog scored seven or more. The other is Brazil's 1-7 in 2014, famous precisely because nothing like it is supposed to happen anymore. Every World Cup since 1970 has settled around 2.6-2.7 goals per game — 2026, running at 2.91 deep into the knockouts, is the loudest exception since 1970's 2.97 — and the blowouts that survive are favorites hunting minnows: sixteen finals games where the favorite scored seven or more, Hungary 10-1 El Salvador in 1982, Germany 8-0 Saudi Arabia in 2002, Spain 7-0 Costa Rica in 2022. Meanwhile 395 of the 964 finals games — 41% of everything that has ever happened at a World Cup — ended in one of four scorelines: 1-0, 2-1, 1-1, or 0-0. The world caught up, and the sport got tight.
Check it yourself
The full match record is one URL away. Count it, or rebuild the ratings entirely:
SELECT count(*) AS matches,
min(date) AS first_match, max(date) AS latest
FROM read_parquet('https://data.mathvsvibes.com/wc/results.parquet');
-- 49,477 matches · first: 1872-11-30 · the parquet updates in batches,
-- currently through the 2026 group stage
The finished ratings are there too: current-elo.json is the live Elo table for every national team.
Receipt trail: posted on r/MapPorn and r/SoccerCentral, and as a narrated YouTube Short. Source data: martj42/international_results (CC0).