Football Player Statistics, Normalised Across Top Leagues

This dashboard by bbta24 turns football player statistics from the top seven European leagues into one Score, adjusting for minutes played and league strength. Lionel Messi holds four of the top five player seasons, led by 5.83 in 2018/19, and Manchester City has eight of the top 20. The full table and the method are below.

Screenshot of the bbta24 Normalized football data dashboard with a top 20 table of player seasons led by Lionel Messi at Barcelona in 2018/19 with a Score of 5.83, strip charts for goals, xGoals, shots, xAssists, assists and key passes, and eight scatter plots of attacking, passing and defensive statistics
Infographic by bbta24. Select the image to open it full size.

Key points from the dashboard

  • The dashboard, called Normalized football data by bbta24, gives each player season in the top seven European leagues a single Score built from per minute statistics.
  • Lionel Messi holds four of the top five places, for every season from 2017/18 to 2020/21, with a best Score of 5.83 in 2018/19.
  • Manchester City has eight of the top 20 player seasons, including three for Kevin De Bruyne.
  • The top 20 come from only three leagues: the Premier League (11), La Liga (7) and Ligue 1 (2).
  • Eight scatter plots compare players on pairs of attacking, passing and defensive statistics, with standout players named.

Football player statistics in text

Title: bbta24 Normalized football data. Filters across the top for Player, Team, League, Season, Role, Age and Nation are all set to (All), and the minutes requirement is set to Half. The main table ranks the top 20 player seasons by Score. League codes are LL for La Liga, PL for the Premier League and L1 for Ligue 1. Roles shown as FW,… are cut off on the dashboard.

Rank Player Team League Season Games Minutes Role Age Nation Score
1 Lionel Messi Barcelona LL 18/19 34 2713 FW 31 ARG 5.83
2 Lionel Messi Barcelona LL 17/18 36 3000 FW 30 ARG 5.71
3 Neymar Paris S-G L1 17/18 20 1786 FW 25 BRA 5.28
4 Lionel Messi Barcelona LL 19/20 33 2880 FW 32 ARG 5.27
5 Lionel Messi Barcelona LL 20/21 35 3023 FW,… 33 ARG 5.22
6 Kevin De Bruyne Manchester City PL 17/18 37 3073 MF 26 BEL 4.94
7 David Silva Manchester City PL 17/18 29 2430 MF 31 ESP 4.93
8 Jude Bellingham Real Madrid LL 23/24 28 2315 MF 20 ENG 4.93
9 Riyad Mahrez Manchester City PL 19/20 33 1944 FW,… 28 ALG 4.92
10 Kevin De Bruyne Manchester City PL 19/20 35 2791 MF 28 BEL 4.84
11 Eden Hazard Chelsea PL 18/19 37 2923 FW 27 BEL 4.77
12 Kevin De Bruyne Manchester City PL 21/22 30 2201 MF 30 BEL 4.69
13 Isco Real Madrid LL 17/18 30 1774 MF 25 ESP 4.58
14 Eden Hazard Chelsea PL 17/18 34 2422 FW,… 26 BEL 4.57
15 Rodri Manchester City PL 23/24 34 2931 MF 27 ESP 4.54
16 Kylian Mbappé Paris S-G L1 18/19 29 2343 FW 19 FRA 4.52
17 Mohamed Salah Liverpool PL 17/18 36 2907 FW 25 EGY 4.52
18 Raheem Sterling Manchester City PL 18/19 34 2771 FW 23 ENG 4.50
19 Cristiano Ronaldo Real Madrid LL 17/18 27 2285 FW 32 POR 4.49
20 Sergio Agüero Manchester City PL 17/18 25 1963 FW 29 ARG 4.47

Beside the table are strip charts for Goals (30), xGoals (20), Shots (15), xAssists (15), Assists (10) and Key passes (10), and a scroll bar shows that more rows and more metrics continue off screen. Below are eight scatter plots, each with thousands of player seasons as dots:

Scatter plot Extra encoding Players named on the plot
Goals (30) against xGoals (20) dot size Shots (15), colour xG performance Robert Lewandowski, Lionel Messi (twice), Jude Bellingham, Edin Džeko, Karim Benzema, David McGoldrick
xAssists (15) against Assists (10) colour Key passes Riyad Mahrez, Dušan Tadić, Hakim Ziyech, David Silva, Rafa Silva, Harvey Barnes, Pablo Fornals, Danny Ings
Progressive carries (15) against Dribbling (10) colour Fouls won (5), dot size Carries (10) Adama Traoré, Eden Hazard (twice), Douglas Costa, Mateo Kovačić, Thiago Alcântara
Progressive passes (15) against General passing (15) colour Possession Cesc Fàbregas, David Silva, Mesut Özil, Lionel Messi, Rodri (three times), Fidel, Conor Coady
Interceptions (15) against Passes blocked (10) colour Recoveries Medhi Benatia, Miralem Pjanić, Luís Neto, Casemiro, Jorginho, N’Golo Kanté, Raphinha
Aerial duels (15) against Ground duels (10) no colour scale Milan Đurić, Joselu, Christian Benteke, Raúl García, Virgil van Dijk, Willy Boly, Lisandro Martínez, João Palhinha, Lucas Hernández
Tackles (15) against Ground duels (10) colour Fouls (5) Antonio Rüdiger, Ronald Araújo, Ferland Mendy, Oleksandr Zinchenko, Lisandro Martínez, João Cancelo, João Palhinha
Clearances (15) against Shots blocked (15) colour Errors (5) Phil Jones, Virgil van Dijk, Dejan Lovren, Luiz Felipe, Casemiro, Manuel Locatelli

Footer text on the dashboard, in summary: Normalized Football Data is the creator’s platform for player rankings from the top seven European leagues over the past seven seasons (six for ED and LP), meant to compare players fairly across leagues, teams and seasons. Data is gathered from fbref.com for players with at least 33% of available minutes each season. Statistics are adjusted per minute played, a custom league Elo rating accounts for league strength, dribbles and tackles are adjusted for success rate, and defensive metrics are normalised by goals conceded and expected goals against (xGA) while the player is on the pitch. Each metric is weighted and feature scaled into one Score. The data covers league play only, with cup matches, more leagues and goalkeeper data planned.

How the Score is normalised

The creator gave a longer explanation in a Reddit post using the same tool [1]. The numbers in brackets after each statistic are the maximum points it can add to the Score. Non-penalty goals are weighted most heavily, at up to 30 points, and expected goals at up to 20. Assists, key passes, progressive carries and defensive actions are worth 10 or 15 points, and minor discipline metrics such as fouls committed, where fewer fouls score higher, are worth up to 5 [1]. The creator says these weights were chosen by them, based on how they think each metric should be valued [1].

The league adjustment works like an exchange rate. In the creator’s example, if a Premier League player scores 1.0 goals per 90 minutes, an Eredivisie player has to score 1.3 goals per 90 to get the same score [1]. Users can choose a minutes requirement of one third, one half or two thirds of available minutes [1]; this view uses one half. Another Reddit user who built comparisons with the dashboard described it as a tool that normalises data per minute based on league coefficient [2].

The heavy weighting on goals and expected goals favours attacking players, which fits a top 20 made up entirely of forwards (FW) and midfielders (MF), with no defenders.

Notes on this infographic

  • The Score is the creator’s own model. The weights and league ratings are their choices, so the ranking is one way of comparing players, not an official statistic.
  • Only league matches are counted, so cup and European performances do not affect the Score.
  • This is a screenshot of an interactive dashboard with the minutes filter on Half. Other filter settings would give a different list.
  • The Tableau dashboard is no longer available at its public address; the links below go to the creator’s Reddit explanation of the method.

Sources

  1. Reddit, r/reddevils, [OC] Normalized comparison of selected defensive midfielders in the top seven European leagues, posted with the creator’s Tableau dashboard and full method explanation (account since deleted).
  2. u/bughidudi, r/ACMilan, Normalized Stats of our midfield Vs Fofana and Konè for 2023/24, made with the same dashboard.

Last reviewed 29 October 2026

Is there a problem with this infographic? Please let us know!