FIFA World Cup 2026 · Data Is Beautiful

Does Age Still Matter?

Analysing 782 players across 954 match appearances — speed, distance run, goals scored, sprint counts, and the veterans who are breaking every assumption about decline.

27.9
Avg age at tournament
Lionel MESSI (39.0 yrs)
Oldest goal scorer
View in Knowledge Graph ↗
Ibrahim MBAYE (18.4 yrs)
Youngest goal scorer
View in Knowledge Graph ↗
Raul JIMENEZ (33.31 km/h, age 35.1)
Fastest 35+ player
View in Knowledge Graph ↗
Across all match appearances

Age Distribution of Playing Time

Every bar represents the number of match appearances made by players of that age. Players appearing in multiple matches are counted once per match, giving a true picture of who is actually getting on the pitch — not just squad registration. [†]

Match Appearances by Age

n = 954 player-match appearances from 782 unique players. Age calculated at tournament start (11 June 2026). ↓ sources & footnotes

Physical metrics

Top Speed vs Age

Each point is a player's peak recorded speed at this tournament. Colour represents age bracket. Points above 32 km/h are elite sprinters regardless of age — look for the orange and red dots pushing into that zone.

Peak Speed (km/h) · Each dot = one player

Hover over dots for player names. Speed sourced from fifa:topSpeed on fifa:PlayerMatchAnalyticsReport · 782 players plotted.

Avg Top Speed by Age Group (km/h)
Speed Insights
The peak speed distribution does not collapse monotonically with age. Players aged 33–35 register mean speeds within 1.19 km/h of the prime-age 24–26 cohort — a difference smaller than random match-to-match variation.
Raul JIMENEZ
Age 35.1 · 33.31 km/h peak

Fastest outfield player aged 35+ in the tournament.

Physical metrics

Distance Covered vs Age

Distance per 90 minutes played, plotted against age. A flat or upward trend among veterans would indicate elite fitness management — look for 35+ dots in the 10,000 m+ zone.

Distance per 90 min (m) · Each dot = one match appearance

Normalised to 90 minutes using fifa:timePlayed to remove substitution bias. 950 appearances plotted (minimum 200 m/90 threshold applied).

Avg Distance per 90 min by Age Group

Note how the 33–35 cohort average is within ~922 m/90 of the 24–26 cohort. The ≥36 group shows the steepest relative drop.

Explosive output

Sprint Count vs Age

Sprint counts (high-speed running bursts) reveal explosive capacity better than raw distance. Older players are typically managed to conserve sprints — but outliers tell a different story.

Sprints per match appearance · Each dot = one appearance

↓ sources & footnotes 647 appearances with sprint data plotted.

Avg Sprints per Match by Age Group

Sprints do decline with age but the gradient between 24–26 and 33–35 is 5.0 sprints/match on average — smaller than inter-position variation.

Goal scoring

Goals by Age Group

90 goals analysed. Age at the date of the match. Own goals excluded. The 27–29 peak is consistent with professional football literature on peak scoring years — but the 33–35 cohort outperforms those under 21.

Total Goals Scored by Age Bracket

Age computed at match date (not tournament start) for goal events. ↓ sources & footnotes

Temporal analytics · within-match time series

The Second-Half Drop — Does Age Change It?

The analytics graph holds 268 match appearances with ~24 cumulative snapshots each — a full within-match time series of distance, speed, and sprint counts. By comparing each player's distance rate in the first 48 minutes against the remainder of the match, we can measure fatigue precisely per age group.

Distance Rate: First Half vs Second Half (m/90 equivalent)

Each pair of bars is one age group. Lighter = first half, darker = second half. Computed from cumulative distance snapshots at ≤ 48 min and full-match totals. Only players who logged > 60 min total with ≥ 20 min of H1 snapshots included.

Second-Half Decay % by Age Group

Negative = slower in second half. The 36+ group shows near-zero decay — they either pace the first half more carefully, or are withdrawn before fatigue compounds. ↓ sources & footnotes

Key finding: The 27–29 cohort shows the steepest second-half drop (-4.5%). Veterans aged 36+ show essentially flat output (+0.2%) — not because they're fitter, but because the time-series reveals they run at a more conservative first-half pace and/or are substituted before the drop accumulates. The raw snapshot data makes this visible in a way end-of-match aggregates cannot.
Temporal analytics · cross-match progression

Does Output Drop Across the Tournament?

For the 172 players who appeared in multiple matches, this tracks average distance per 90 minutes from their first match to their second (and third). Cumulative fatigue, load management, and rotation all show up here.

Avg Distance/90 by Match Number · Players with 2+ Appearances

Each line = one age group. Only players with genuine playing time (> 200 m/90) in each match are included. Match order determined by fifa:date on fifa:Match nodes — earliest match = Match 1 per player.

Tactical management

How Managers Deploy by Age

Average minutes played per match appearance, broken down by age group. This reveals whether coaches are protecting veteran legs with earlier substitutions — or trusting them to go the distance.

Avg Minutes Played per Appearance by Age Group

↓ sources & footnotes Includes partial appearances (substitutes). Average over all 954 recorded appearances.

Team level

Does Squad Age Predict Results?

Each point is a team in a single match. X axis = average age of players with analytics data for that match. Y axis = goal difference. Colour shows result (win / draw / loss). No strong linear pattern would suggest experience and youth both win at this level.

Squad Avg Age vs Goal Difference · Each dot = one team in one match

62 team-match data points. Wins = green, Draws = amber, Losses = red.

Age 35+ · Elite performers

Veterans Defying the Clock

These players are aged 35 or older and recorded top speeds above 24 km/h — putting them in the elite physical bracket of the entire tournament. Click any name to explore their full knowledge graph entity.

Age 35.1 yrs
Top Speed33.31 km/h
Total Distance15,891 m
Sprints68
Goals1
Matches2
Age 36.6 yrs
Top Speed33.11 km/h
Total Distance7,643 m
Sprints25
Goals0
Matches1
Age 36.4 yrs
Top Speed32.40 km/h
Total Distance11,053 m
Sprints44
Goals0
Matches1
Age 35.4 yrs
Top Speed32.38 km/h
Total Distance7,546 m
Sprints0
Goals0
Matches1
Age 35.2 yrs
Top Speed32.27 km/h
Total Distance9,436 m
Sprints56
Goals0
Matches1
Age 35.9 yrs
Top Speed31.56 km/h
Total Distance15,957 m
Sprints22
Goals0
Matches2
Age 35.9 yrs
Top Speed31.33 km/h
Total Distance15,178 m
Sprints20
Goals0
Matches2
Age 35.1 yrs
Top Speed31.28 km/h
Total Distance2,010 m
Sprints9
Goals0
Matches1
Age 37.1 yrs
Top Speed31.28 km/h
Total Distance9,580 m
Sprints25
Goals0
Matches1

† Appearance counts come from fifa:PlayerMatchAnalyticsReport nodes with fifa:totalDistance > 50, deduplicated to the highest-distance snapshot per player-match pair to remove intermediate snapshots. Age is calculated at tournament start (11 June 2026) from fifa:birthDate.

Goals & age profile

Top Scorers — Age Context

The leading scorers of the tournament, showing their age bracket and team. Click any name to open their Knowledge Graph entity. Footnote citations link to the OpenLink /describe endpoint for that player.

#PlayerAge GroupAgeTeamGoals
1 Lionel MESSI[10] 36+ 39.0 Argentina 3
2 Harry KANE[11] 30–32 32.9 England 2
3 Cyle LARIN[12] 30–32 31.2 Canada 2
4 Kylian MBAPPE[13] 27–29 27.5 France 2
5 Kai HAVERTZ[14] 27–29 27.0 Germany 2
6 Jonathan DAVID[15] 24–26 26.4 Canada 2
7 Elijah JUST[16] 24–26 26.1 New Zealand 2
8 Erling HAALAND[17] 24–26 25.9 Norway 2
9 Ismael SAIBARI[18] 24–26 25.4 Morocco 2
10 Folarin BALOGUN[19] 24–26 24.9 USA 2
11 Yasin AYARI[20] 21–23 22.7 Sweden 2
12 Johan MANZAMBI[21] Under 21 20.7 Switzerland 2
13 Marko ARNAUTOVIC[22] 36+ 37.1 Austria 1
14 Ramin REZAEIAN[23] 36+ 36.2 IR Iran 1
15 Raul JIMENEZ[24] 33–35 35.1 Mexico 1
All age groups

Age Group Summary

Consolidated per-group averages across all 954 recorded appearances. Distance and speed columns use the best snapshot per player-match appearance.

Age Group Appearances Goals Avg Top Speed (km/h) Avg Dist/90 (m) Avg Sprints Avg Mins Played
Under 21 32 4 31.12 9,669 28.8 60.1
21–23 140 16 30.37 8,940 29.0 62.7
24–26 239 26 30.39 9,218 28.7 63.9
27–29 266 25 30.14 9,443 30.0 73.0
30–32 152 11 29.52 8,945 28.5 73.4
33–35 97 3 29.20 8,296 23.7 71.3
36+ 28 5 27.71 7,371 18.5 82.0
Live queries

Explore the Knowledge Graph

Age vs Speed — all players
Retrieve each player's birth date and peak speed across the tournament
SPARQL · Age vs Top Speed
PREFIX fifa: 
PREFIX rdfs: 

SELECT ?playerName ?birthDate (MAX(?spd) AS ?maxSpeed) (SUM(?dist) AS ?totalDist)
FROM 
FROM 
WHERE {
  ?m a fifa:Match ; fifa:hasPlayerAnalyticsReport ?report .
  ?report fifa:player ?player ; fifa:topSpeed ?spd ; fifa:totalDistance ?dist .
  ?player rdfs:label ?playerName ; fifa:birthDate ?birthDate .
}
GROUP BY ?playerName ?birthDate
ORDER BY DESC(?maxSpeed)
LIMIT 30
▶ Run live query
Goal scorers with birth dates
All goals with the scorer's date of birth and match date
SPARQL · Goals & Ages
PREFIX fifa: 
PREFIX rdfs: 

SELECT ?playerName ?birthDate ?teamName ?minute ?matchId
FROM 
WHERE {
  ?m a fifa:Match ; fifa:matchId ?matchId ; fifa:date ?date ; fifa:hasGoal ?goal .
  ?goal fifa:player ?player ; fifa:goalMinute ?minute .
  ?player rdfs:label ?playerName ; fifa:birthDate ?birthDate .
  OPTIONAL { ?goal fifa:team ?t . ?t rdfs:label ?teamName }
}
ORDER BY ?birthDate
▶ Run live query
Veteran outliers (born before 1989)
Players 37+ ranked by peak speed and total distance
SPARQL · Veteran Outliers
PREFIX fifa: 
PREFIX rdfs: 
PREFIX xsd: 

SELECT ?playerName ?birthDate (MAX(?spd) AS ?maxSpeed)
       (SUM(?dist) AS ?totalDist) (SUM(?spr) AS ?totalSprints)
FROM 
FROM 
WHERE {
  ?m a fifa:Match ; fifa:hasPlayerAnalyticsReport ?report .
  ?report fifa:player ?player ; fifa:topSpeed ?spd ; fifa:totalDistance ?dist .
  ?player rdfs:label ?playerName ; fifa:birthDate ?bd .
  BIND(xsd:dateTime(?bd) AS ?birthDate)
  OPTIONAL { ?report fifa:sprints ?spr }
  FILTER(?bd < "1989-01-01T00:00:00Z"^^xsd:dateTime)
}
GROUP BY ?playerName ?birthDate
ORDER BY DESC(?maxSpeed)
▶ Run live query