Meplar football age analysis, version 1

2,814 club-seasons across the Premier League, LaLiga, Bundesliga, Serie A and Ligue 1, 1996/97 through 2024/25.

Each club-season needs at least 25,000 valid league player-minutes. Weighted recorded age is sum(age * minutes) / sum(minutes). Goalkeepers are included; cups and national teams are excluded. The inputs contain recorded season ages, not exact matchday ages. Youngest and oldest refer to this five-league file and period.

club_season_age.csv contains all 2,814 plotted club-season summaries, with exact age-minutes and player-minutes, contribution counts and age-group minute shares. season_summary.csv contains the 29 medians used for the line. There are no player names, birthdates, profile links or individual player rows in these tables.

Reproduce from this package:
python -m pip install -r requirements.txt
python build_chart.py --aggregate club_season_age.csv --output .

The optional validate_independently.py requires the original v3_club_stats.csv. That historical input is not included in this release. See methodology.md for exact filters, validation and limitations.

Chart and code are original Meplar analysis made with AI assistance. Python, pandas, NumPy and Matplotlib were used. I run Meplar.

Source page route: /charts/football-age/
Documented upstream: https://www.kaggle.com/datasets/davidcariboo/player-scores
Collection project: https://github.com/dcaribou/transfermarkt-datasets
The current upstream release is a different snapshot. Read SOURCE_TERMS.txt for provenance and reuse context.
