Champions League Player Predictability
How predictable is each Champions League player? Before every match our models publish a full probability distribution for how many shots and shots on target each player will take. This board compares those distributions with what actually happened across the 2022-23 campaign, for every player who started at least 8 matches, a full league phase. The score measures how much closer our distributions get than a baseline that knows only the player's position and his expected minutes. Higher means easier to call in advance.
| # | Player | Role | Club | Starts | Score | Shots skill | On target skill | Scorer skill | Shots / match |
|---|---|---|---|---|---|---|---|---|---|
| 1 | Brandon Mechele | Defender | Club Brugge | 8 | +76.0 ±2.5 | +79.2% | +72.8% | +65.7% | 0.00 |
| 2 | Florentino | Midfielder | Benfica | 10 | +50.1 ±11.9 | +20.8% | +79.4% | +52.7% | 0.60 |
| 3 | Stanislav Lobotka | Midfielder | Napoli | 10 | +49.9 ±6.5 | +37.6% | +62.3% | +53.6% | 0.30 |
| 4 | Minjae Kim | Defender | Napoli | 8 | +40.3 ±6.4 | +11.9% | +68.7% | +27.0% | 0.00 |
| 5 | Evan N'Dicka | Defender | Frankfurt | 8 | +35.0 ±10.7 | -4.1% | +74.2% | +4.4% | 0.38 |
| 6 | Pepê | Forward | Porto | 8 | +30.9 ±5.4 | +38.2% | +23.6% | +50.5% | 0.62 |
| 7 | Karim Benzema | Forward | Real Madrid | 9 | +30.0 ±12.4 | +26.5% | +33.5% | -17.0% | 3.67 |
| 8 | Sandro Tonali | Midfielder | Milan | 12 | +27.5 ±20.9 | +15.4% | +39.6% | +76.3% | 0.75 |
| 9 | Mateo Kovačić | Midfielder | Chelsea | 8 | +27.4 ±18.9 | +30.9% | +24.0% | -4.5% | 0.38 |
| 10 | Rade Krunić | Midfielder | Milan | 9 | +25.1 ±11.8 | +20.7% | +29.4% | +6.7% | 0.44 |
| 11 | Eduardo Camavinga | Midfielder | Real Madrid | 8 | +24.2 ±15.8 | +29.6% | +18.7% | +56.9% | 0.50 |
| 12 | Djibril Sow | Midfielder | Frankfurt | 8 | +21.0 ±14.1 | +13.5% | +28.5% | +50.6% | 0.38 |
| 13 | Erling Haaland | Forward | Man City | 10 | +20.9 ±11.6 | +18.8% | +23.1% | +26.9% | 3.40 |
| 14 | Rodrygo | Forward | Real Madrid | 10 | +16.0 ±14.0 | +19.1% | +13.0% | +18.6% | 2.30 |
| 15 | Federico Dimarco | Defender | Inter | 10 | +15.9 ±9.0 | +26.9% | +4.9% | +40.7% | 1.30 |
| 16 | Denzel Dumfries | Defender | Inter | 10 | +15.3 ±7.7 | +16.5% | +14.1% | +0.3% | 1.00 |
| 17 | Khvicha Kvaratskhelia | Forward | Napoli | 8 | +14.5 ±11.3 | +17.4% | +11.5% | -2.9% | 4.38 |
| 18 | João Mário | Forward | Benfica | 10 | +14.2 ±14.8 | +27.5% | +1.0% | -6.9% | 1.30 |
| 19 | Reece James | Defender | Chelsea | 8 | +14.0 ±20.1 | +27.4% | +0.5% | +5.6% | 1.00 |
| 20 | Luka Modrić | Midfielder | Real Madrid | 9 | +13.4 ±8.2 | +19.3% | +7.5% | +7.5% | 0.78 |
| 21 | Rafael Leão | Forward | Milan | 11 | +12.8 ±18.6 | +2.1% | +23.4% | +13.5% | 1.73 |
| 22 | Fikayo Tomori | Defender | Milan | 10 | +12.7 ±11.8 | +6.8% | +18.6% | -9.8% | 0.20 |
| 23 | Ismaël Bennacer | Midfielder | Milan | 9 | +12.5 ±14.7 | +18.2% | +6.9% | -5.2% | 0.67 |
| 24 | Vinícius Júnior | Forward | Real Madrid | 11 | +12.2 ±6.3 | +15.7% | +8.8% | +8.8% | 3.36 |
| 25 | Piotr Zieliński | Midfielder | Napoli | 8 | +11.9 ±9.5 | +9.2% | +14.6% | +8.3% | 2.00 |
| 26 | Theo Hernández | Defender | Milan | 11 | +11.3 ±5.3 | +21.1% | +1.5% | +23.4% | 0.91 |
| 27 | Alejandro Grimaldo | Defender | Benfica | 10 | +11.2 ±4.6 | +11.7% | +10.7% | +2.4% | 1.40 |
| 28 | Hans Vanaken | Midfielder | Club Brugge | 8 | +7.7 ±14.0 | +8.1% | +7.2% | -42.0% | 0.50 |
| 29 | Dominik Szoboszlai | Midfielder | Leipzig | 8 | +6.7 ±14.5 | +28.8% | -15.3% | -4.3% | 1.88 |
| 30 | Federico Valverde | Midfielder | Real Madrid | 11 | +6.7 ±6.8 | +13.0% | +0.3% | +8.7% | 2.18 |
| 31 | Hakan Çalhanoğlu | Midfielder | Inter | 9 | +6.6 ±16.4 | +14.2% | -0.9% | -2.7% | 1.44 |
| 32 | Lautaro Martínez | Forward | Inter | 12 | +5.3 ±7.5 | +13.0% | -2.5% | +0.7% | 2.25 |
| 33 | Gonçalo Ramos | Forward | Benfica | 10 | +4.7 ±10.7 | +6.8% | +2.5% | +12.3% | 2.50 |
| 34 | Pierre Kalulu | Defender | Milan | 8 | +4.6 ±10.1 | +9.0% | +0.1% | +66.6% | 0.25 |
| 35 | Kevin De Bruyne | Midfielder | Man City | 9 | +4.5 ±19.9 | +2.4% | +6.6% | +4.0% | 1.78 |
| 36 | İlkay Gündoğan | Midfielder | Man City | 12 | +4.5 ±8.0 | +4.3% | +4.7% | -0.4% | 1.58 |
| 37 | Brahim Díaz | Forward | Milan | 8 | +4.1 ±17.7 | +6.0% | +2.1% | +7.6% | 1.38 |
| 38 | Matteo Darmian | Defender | Inter | 9 | +3.8 ±11.2 | -15.7% | +23.4% | -112.2% | 0.22 |
| 39 | Rúben Dias | Defender | Man City | 11 | +3.7 ±5.5 | +8.0% | -0.6% | -3.5% | 1.09 |
| 40 | Alessandro Bastoni | Defender | Inter | 12 | +3.6 ±17.3 | +7.5% | -0.4% | +73.6% | 0.33 |
| 41 | Bernardo Silva | Midfielder | Man City | 9 | +3.4 ±8.4 | +8.6% | -1.9% | -1.5% | 0.89 |
| 42 | Edin Džeko | Forward | Inter | 11 | +2.8 ±15.9 | +0.7% | +4.8% | +8.5% | 1.91 |
| 43 | Enzo Fernández | Midfielder | Benfica | 9 | +2.3 ±6.0 | +3.5% | +1.1% | +34.3% | 2.11 |
| 44 | Olivier Giroud | Forward | Milan | 12 | +2.3 ±5.8 | +3.3% | +1.3% | +10.8% | 2.17 |
| 45 | John Stones | Defender | Man City | 8 | +0.8 ±5.0 | +0.2% | +1.5% | +5.3% | 0.38 |
| 46 | Manuel Akanji | Defender | Man City | 9 | +0.6 ±3.0 | +2.4% | -1.2% | -3.7% | 0.78 |
| 47 | Willi Orbán | Defender | Leipzig | 8 | +0.2 ±10.7 | +3.5% | -3.1% | -17.6% | 0.50 |
| 48 | Daichi Kamada | Midfielder | Frankfurt | 8 | +0.1 ±6.7 | -10.1% | +10.4% | +17.7% | 1.62 |
| 49 | Henrikh Mkhitaryan | Midfielder | Inter | 11 | -0.6 ±11.9 | -0.9% | -0.4% | +4.2% | 1.27 |
| 50 | Heung-Min Son | Midfielder | Tottenham | 8 | -2.1 ±27.6 | +5.0% | -9.2% | -28.0% | 2.00 |
| 51 | Francesco Acerbi | Defender | Inter | 9 | -2.5 ±8.0 | +7.0% | -12.1% | +82.1% | 0.78 |
| 52 | Giovanni Di Lorenzo | Defender | Napoli | 10 | -2.6 ±6.6 | -2.6% | -2.6% | -3.3% | 1.30 |
| 53 | Joshua Kimmich | Midfielder | Bayern München | 9 | -2.7 ±6.3 | -2.1% | -3.3% | -10.2% | 2.33 |
| 54 | Marquinhos | Defender | Paris | 8 | -5.7 ±6.0 | -2.1% | -9.3% | -210.9% | 0.25 |
| 55 | Jack Grealish | Midfielder | Man City | 12 | -6.3 ±17.1 | -1.9% | -10.7% | -22.6% | 1.33 |
| 56 | Frank Anguissa | Midfielder | Napoli | 8 | -6.4 ±12.3 | -9.1% | -3.7% | -10.6% | 1.12 |
| 57 | David Alaba | Defender | Real Madrid | 9 | -6.8 ±8.2 | -10.1% | -3.5% | -12.4% | 0.56 |
| 58 | Rafa Silva | Forward | Benfica | 10 | -8.1 ±8.3 | -9.8% | -6.4% | +19.1% | 2.90 |
| 59 | Rodri | Midfielder | Man City | 11 | -8.4 ±11.4 | -12.9% | -3.9% | -8.4% | 1.45 |
| 60 | António Silva | Defender | Benfica | 9 | -9.3 ±7.9 | -11.5% | -7.0% | -1.7% | 0.44 |
| 61 | Nicolás Otamendi | Defender | Benfica | 9 | -11.1 ±12.1 | -3.3% | -18.9% | -34.1% | 0.56 |
| 62 | Toni Kroos | Midfielder | Real Madrid | 10 | -12.1 ±10.9 | -10.4% | -13.7% | +15.0% | 1.00 |
| 63 | Éder Militão | Defender | Real Madrid | 9 | -12.1 ±17.9 | -3.2% | -20.9% | -5.5% | 0.44 |
| 64 | Raheem Sterling | Midfielder | Chelsea | 8 | -13.2 ±27.5 | -23.6% | -2.8% | +30.2% | 1.00 |
| 65 | Nicolò Barella | Midfielder | Inter | 12 | -13.9 ±8.8 | -12.2% | -15.7% | -4.4% | 1.67 |
| 66 | Virgil van Dijk | Defender | Liverpool | 8 | -18.1 ±8.1 | -17.1% | -19.0% | -10.6% | 0.00 |
| 67 | Dayot Upamecano | Defender | Bayern München | 9 | -31.3 ±20.7 | -26.1% | -36.6% | +60.7% | 0.00 |
| 68 | Dani Carvajal | Defender | Real Madrid | 10 | -32.3 ±21.5 | +6.9% | -71.5% | +65.5% | 0.20 |
| 69 | Harry Kane | Forward | Tottenham | 8 | -43.8 ±40.3 | -3.4% | -84.2% | -60.0% | 2.75 |
| 70 | Alex Meret | Goalkeeper | Napoli | 10 | saves only | - | - | +74.8% | 2.3 saves |
| 71 | Alisson Becker | Goalkeeper | Liverpool | 8 | saves only | - | - | +85.3% | 2.1 saves |
| 72 | André Onana | Goalkeeper | Inter | 12 | saves only | - | - | +86.7% | 3.1 saves |
| 73 | Diogo Costa | Goalkeeper | Porto | 8 | saves only | - | - | +79.7% | 3.9 saves |
| 74 | Ederson | Goalkeeper | Man City | 11 | saves only | - | - | +83.2% | 2.4 saves |
| 75 | Gianluigi Donnarumma | Goalkeeper | Paris | 8 | saves only | - | - | +85.8% | 3.2 saves |
| 76 | Kepa Arrizabalaga | Goalkeeper | Chelsea | 9 | saves only | - | - | +65.4% | 2.9 saves |
| 77 | Kevin Trapp | Goalkeeper | Frankfurt | 8 | saves only | - | - | +79.7% | 3.6 saves |
| 78 | Odysseas Vlachodimos | Goalkeeper | Benfica | 10 | saves only | - | - | +82.9% | 1.9 saves |
| 79 | Simon Mignolet | Goalkeeper | Club Brugge | 8 | saves only | - | - | +93.8% | 4.4 saves |
| 80 | Thibaut Courtois | Goalkeeper | Real Madrid | 10 | saves only | - | - | +80.8% | 4.2 saves |
Starts = matches started. Skill = how much lower our CRPS is than the baseline's on the same matches, in percent, so positive means the model wins. The smaller number next to the score is one standard error. Goalkeepers take no shots, so they carry no score and are measured on saves on their own pages. Tap any column header to sort.
How the score works, and how to read it
A high score does not mean a better player. It means a player whose output our models can call match by match. The score compares two forecasters on the matches a player started: our model, which publishes a full probability distribution for his shots and shots on target once the team sheet is out, and a baseline that knows only his position and how long he is expected to be on the pitch. We measure both with CRPS, a standard score for probabilistic forecasts, and report how much better the model is, in percent. So the score really answers one question: how much does knowing WHO he is add on top of knowing WHAT he plays.
Read the score with the standard error next to it. The skill is a ratio of two small numbers, and it is much noisier for players who barely shoot: across this holdout the spread of the score is roughly three times wider for players under 0.2 shots a match than for those above 1.2. That is why the shots-per-match column sits on this board. A defender at the top of the table is usually a defender our model correctly expects to shoot almost never, which is a real win, but it is not the same measurement as a striker at the top.
The anytime-scorer skill is published alongside and deliberately kept out of the score. On a base rate of a few percent, a single season is too thin to separate players. Everything here is season level and aggregate: these pages report the accuracy of our own forecasts, not a match-by-match statistics feed.
Club title odds and the full league-phase board live on the Champions League simulations page, and how the models work on the methodology page.