▲ 13 p.p.
vs 2020/21 season
We identified 155 real signings for the first-team squad — academy promotions, loan returns and transfers that never went through are excluded. 10 youth investments (under-23) are classified separately. This edition introduces the adjusted hit rate, which statistically weights clubs with few signings to avoid small-sample distortions.
Club Ranking
| Club | League pos. | Signings | Evaluated |
Successful | Fair | Unsuccessful | Raw % | Adjusted % |
| 1 | RB Leipzig | 4º | 6 | 4 | 3 | 1 | 0 | 88% | 61% |
| 2 | VfB Stuttgart | 16º | 6 | 6 | 3 | 2 | 1 | 67% | 56% |
| 3 | SC Freiburg | 6º | 2 | 1 | 1 | 0 | 0 | 100% | 54% |
| 4 | Borussia Dortmund | 2º | 4 | 3 | 2 | 0 | 1 | 67% | 53% |
| 5 | VfL Bochum | 13º | 18 | 18 | 9 | 2 | 7 | 56% | 53% |
| 6 | FC Augsburg | 14º | 4 | 4 | 2 | 1 | 1 | 62% | 53% |
| 7 | Bayer Leverkusen | 3º | 7 | 7 | 4 | 0 | 3 | 57% | 52% |
| 8 | Hertha BSC | 15º | 10 | 9 | 4 | 1 | 4 | 50% | 49% |
| 9 | Eintracht Frankfurt | 11º | 8 | 8 | 2 | 4 | 2 | 50% | 49% |
| 10 | FSV Mainz 05 | 8º | 8 | 7 | 3 | 1 | 3 | 50% | 49% |
| 11 | 1899 Hoffenheim | 9º | 3 | 3 | 1 | 1 | 1 | 50% | 49% |
| 12 | Bayern München | 1º | 3 | 3 | 1 | 1 | 1 | 50% | 49% |
| 13 | Borussia Mönchengladbach | 10º | 4 | 4 | 1 | 1 | 2 | 38% | 45% |
| 14 | VfL Wolfsburg | 12º | 7 | 6 | 2 | 0 | 4 | 33% | 42% |
| 15 | 1. FC Köln | 7º | 6 | 6 | 1 | 1 | 4 | 25% | 38% |
| 16 | Union Berlin | 5º | 14 | 14 | 2 | 4 | 8 | 29% | 36% |
| 17 | SpVgg Greuther Fürth | 18º | 24 | 24 | 4 | 6 | 14 | 29% | 34% |
| 18 | Arminia Bielefeld | 17º | 13 | 13 | 1 | 3 | 9 | 19% | 30% |
| 19 | Hamburger SV | 19º | 8 | 5 | 0 | 0 | 5 | 0% | 30% |
The Adjusted % applies Bayesian weighting toward the league average (48%), proportional to the volume of signings — the ranking's official order.
Hit rate by transfer window
| Window | Signings | Hit rate % |
|---|
| Start-of-season window (Dec-Apr) | 57 | 39% |
| Mid-year window (May-Aug) | 98 | 43% |
Season Highlights
| Player | Club | Pos | Min | G+A | Nota | Rating |
|---|
| David Raum | 1899 Hoffenheim | D | 2761 | 3+11 | 7.29 | Excellent |
| Branimir Hrgota | SpVgg Greuther Fürth | F | 2789 | 9+5 | 6.82 | Excellent |
| Silvan Widmer | FSV Mainz 05 | M | 2925 | 4+5 | 6.97 | Excellent |
| Sebastian Polter | VfL Bochum | F | 2345 | 10+1 | 6.87 | Excellent |
| Rafael Borré | Eintracht Frankfurt | F | 2390 | 8+4 | 6.68 | Excellent |
| Donyell Malen | Borussia Dortmund | F | 1694 | 5+3 | 7.00 | Excellent |
Methodology
Each evaluated signing is classified into five tiers from a score that combines match ratings, attacking output adjusted for game time, collective contribution and consistency, in comparison with the other players in the competition. Successful signings count as a full point; Fair ones, half a point. Signings without relevant game time are unsuccessful, except for youth investments (under-23) and serious, documented injuries.
Appendix — Signings by club
* Youth investment (under-23, no game time) — outside the calculation.
1. FC Köln (6 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Luca Kilian | 32 | 2282 | 1 | 0 | Fair |
| Dejan Ljubičić | 30 | 1974 | 3 | 1 | Good |
| Marvin Schwäbe | 31 | 1890 | 0 | 0 | Did not deliver |
| Timo Hübers | 28 | 1742 | 1 | 0 | Below expectations |
| Julian Chabot | 13 | 212 | 0 | 0 | Did not deliver |
| Matthias Köbbing | 1 | 0 | 0 | 0 | Did not deliver |
1899 Hoffenheim (3 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| David Raum | 32 | 2761 | 3 | 11 | Excellent |
| Angelo Stiller | 31 | 1692 | 2 | 1 | Fair |
| Justin Che | 11 | 39 | 0 | 0 | Did not deliver |
Arminia Bielefeld (13 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Alessandro Schöpf | 32 | 2403 | 1 | 0 | Good |
| Robin Hack | 31 | 1376 | 0 | 2 | Fair |
| Sebastian Vasiliadis | 21 | 1200 | 0 | 0 | Below expectations |
| Janni Serra | 30 | 1121 | 3 | 2 | Fair |
| Florian Krüger | 29 | 1113 | 1 | 2 | Fair |
| Andrés Andrade | 26 | 1045 | 0 | 0 | Did not deliver |
| Guilherme Ramos | 32 | 908 | 0 | 0 | Did not deliver |
| Bryan Lasme | 29 | 879 | 2 | 0 | Below expectations |
| Gonzalo Castro | 15 | 446 | 1 | 1 | Below expectations |
| George Bello | 13 | 427 | 0 | 0 | Did not deliver |
| Edimilson Fernandes | 15 | 281 | 0 | 0 | Did not deliver |
| Lennart Czyborra | 10 | 130 | 0 | 0 | Did not deliver |
| Stefanos Kapino | 30 | 90 | 0 | 0 | Did not deliver |
Bayer Leverkusen (7 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Mitchel Bakker | 26 | 1824 | 1 | 4 | Good |
| Robert Andrich | 27 | 1819 | 4 | 2 | Good |
| Odilon Kossounou | 29 | 1794 | 0 | 1 | Below expectations |
| Piero Hincapié | 29 | 1759 | 1 | 2 | Good |
| Amine Adli | 25 | 1262 | 3 | 2 | Good |
| Sardar Azmoun | 9 | 366 | 1 | 1 | Below expectations |
| Andrey Lunev | 24 | 90 | 0 | 0 | Did not deliver |
Bayern München (3 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Dayot Upamecano | 32 | 2208 | 1 | 6 | Good |
| Marcel Sabitzer | 25 | 915 | 1 | 1 | Fair |
| Omar Richards | 31 | 435 | 0 | 0 | Did not deliver |
Borussia Dortmund (4 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Gregor Kobel | 29 | 2565 | 0 | 0 | Good |
| Donyell Malen | 27 | 1694 | 5 | 3 | Excellent |
| Marin Pongračić | 31 | 827 | 0 | 0 | Did not deliver |
| Lennard Maloney * | 4 | 12 | 0 | 0 | Investment |
Borussia Mönchengladbach (4 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Manu Koné | 28 | 2194 | 2 | 0 | Good |
| Joseph Scally | 33 | 1910 | 1 | 2 | Fair |
| Luca Netz | 32 | 1406 | 0 | 4 | Below expectations |
| Marvin Friedrich | 10 | 600 | 0 | 0 | Did not deliver |
Eintracht Frankfurt (8 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Rafael Borré | 32 | 2390 | 8 | 4 | Excellent |
| Jesper Lindstrøm | 31 | 1993 | 5 | 4 | Good |
| Kristijan Jakić | 27 | 1883 | 1 | 0 | Fair |
| Jens Petter Hauge | 29 | 1037 | 2 | 2 | Fair |
| Ansgar Knauff | 14 | 767 | 1 | 1 | Fair |
| Christopher Lenz | 16 | 667 | 0 | 1 | Fair |
| Sam Lammers | 24 | 518 | 1 | 0 | Did not deliver |
| Jens Grahl | 15 | 90 | 0 | 0 | Did not deliver |
FC Augsburg (4 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Niklas Dorsch | 30 | 2330 | 1 | 0 | Good |
| Arne Maier | 29 | 1874 | 1 | 6 | Good |
| Andi Zeqiri | 24 | 1037 | 2 | 1 | Fair |
| Ricardo Pepi | 16 | 475 | 0 | 0 | Did not deliver |
FSV Mainz 05 (8 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Silvan Widmer | 33 | 2925 | 4 | 5 | Excellent |
| Anton Stach | 31 | 1860 | 1 | 6 | Good |
| Jae-Sung Lee | 29 | 1458 | 4 | 3 | Good |
| Anderson-Lenda Lucoqu | 24 | 746 | 1 | 0 | Did not deliver |
| Marcus Ingvartsen | 27 | 677 | 6 | 0 | Fair |
| Delano Burgzorg * | 4 | 30 | 1 | 0 | Investment |
| Stephan Fürstner | 1 | 11 | 0 | 0 | Did not deliver |
| Romario Rösch | 2 | 1 | 0 | 0 | Did not deliver |
Hamburger SV (8 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Sebastian Schonlau | 2 | 190 | 0 | 0 | Did not deliver |
| Daniel Heuer Fernandes | 2 | 190 | 0 | 0 | Did not deliver |
| Ludovit Reis * | 2 | 190 | 1 | 0 | Investment |
| Robert Glatzel | 2 | 190 | 0 | 0 | Did not deliver |
| Jonas Meffert | 2 | 190 | 0 | 0 | Did not deliver |
| Miro Muheim | 2 | 190 | 0 | 1 | Did not deliver |
| Bakery Jatta * | 2 | 148 | 0 | 0 | Investment |
| Giorgi Chakvetadze * | 2 | 0 | 0 | 0 | Investment |
Hertha BSC (10 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Suat Serdar | 32 | 2383 | 3 | 0 | Good |
| Ishak Belfodil | 32 | 1805 | 5 | 2 | Fair |
| Marco Richter | 34 | 1730 | 5 | 1 | Good |
| Marc-Oliver Kempf | 14 | 1242 | 0 | 1 | Good |
| Stevan Jovetić | 23 | 1172 | 6 | 1 | Good |
| Myziane Maolida | 25 | 808 | 1 | 1 | Did not deliver |
| Kevin-Prince Boateng | 27 | 794 | 0 | 0 | Did not deliver |
| Jürgen Ekkelenkamp | 27 | 710 | 3 | 0 | Below expectations |
| Oliver Christensen * | 27 | 190 | 0 | 0 | Investment |
| Dong-jun Lee | 7 | 116 | 0 | 0 | Did not deliver |
RB Leipzig (6 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Joško Gvardiol | 32 | 2413 | 2 | 2 | Good |
| André Silva | 34 | 2085 | 11 | 3 | Excellent |
| Mohamed Simakan | 30 | 2014 | 1 | 0 | Fair |
| Dominik Szoboszlai | 34 | 1545 | 6 | 8 | Good |
| Brian Brobbey * | 14 | 146 | 0 | 2 | Investment |
| Ilaix Moriba * | 11 | 30 | 0 | 0 | Investment |
SC Freiburg (2 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Maximilian Eggestein | 32 | 2208 | 1 | 2 | Good |
| Hugo Siquet * | 8 | 21 | 0 | 0 | Investment |
SpVgg Greuther Fürth (24 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Branimir Hrgota | 34 | 2789 | 9 | 5 | Excellent |
| Sebastian Griesbeck | 29 | 2441 | 1 | 0 | Fair |
| Marco Meyerhofer | 26 | 2279 | 1 | 0 | Good |
| Nick Viergever | 24 | 2134 | 0 | 0 | Fair |
| Paul Seguin | 27 | 2110 | 0 | 3 | Good |
| Max Christiansen | 30 | 2054 | 0 | 0 | Fair |
| Timothy Tillman | 34 | 2017 | 1 | 2 | Fair |
| Jetro Willems | 31 | 1611 | 1 | 0 | Below expectations |
| Gian-Luca Itter | 26 | 1456 | 0 | 1 | Fair |
| Håvard Nielsen | 26 | 1369 | 2 | 0 | Good |
| Sascha Burchert | 31 | 1260 | 0 | 0 | Did not deliver |
| Jeremy Dudziak | 25 | 1146 | 2 | 0 | Below expectations |
| Andreas Linde | 16 | 1080 | 0 | 0 | Did not deliver |
| Julian Green | 33 | 1054 | 0 | 0 | Did not deliver |
| Dickson Abiama | 32 | 728 | 0 | 1 | Did not deliver |
| Hans Nunoo Sarpei | 17 | 643 | 0 | 0 | Did not deliver |
| Cédric Itten | 15 | 633 | 2 | 0 | Below expectations |
| Tobias Raschl | 14 | 598 | 0 | 1 | Did not deliver |
| Jessic Ngankam | 7 | 342 | 2 | 1 | Fair |
| Justin Hoogma | 4 | 270 | 0 | 0 | Did not deliver |
| Gideon Jung | 10 | 140 | 0 | 0 | Did not deliver |
| Nils Seufert | 13 | 101 | 0 | 0 | Did not deliver |
| Afimico Pululu | 12 | 84 | 0 | 0 | Did not deliver |
| Adrian Fein | 8 | 35 | 0 | 0 | Did not deliver |
Union Berlin (14 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Rani Khedira | 33 | 2764 | 0 | 1 | Good |
| Timo Baumgartl | 29 | 2169 | 1 | 2 | Fair |
| Paul Jäckel | 32 | 2045 | 0 | 0 | Did not deliver |
| Genki Haraguchi | 33 | 1768 | 2 | 6 | Good |
| Bastian Oczipka | 27 | 934 | 0 | 1 | Did not deliver |
| Andreas Voglsammer | 33 | 868 | 2 | 1 | Fair |
| Frederik Rønnow | 33 | 630 | 0 | 0 | Did not deliver |
| Levin Öztunali | 26 | 579 | 0 | 0 | Did not deliver |
| Kevin Behrens | 29 | 504 | 2 | 2 | Below expectations |
| Dominique Heintz | 12 | 474 | 0 | 0 | Did not deliver |
| Kevin Möhwald | 29 | 346 | 0 | 0 | Did not deliver |
| Sven Michel | 14 | 336 | 3 | 2 | Fair |
| András Schäfer | 9 | 233 | 1 | 1 | Fair |
| Tymoteusz Puchacz | 2 | 0 | 0 | 0 | Did not deliver |
VfB Stuttgart (6 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Florian Müller | 31 | 2700 | 0 | 0 | Fair |
| Hiroki Ito | 32 | 2348 | 1 | 1 | Fair |
| Chris Führich | 25 | 1724 | 3 | 2 | Excellent |
| Omar Marmoush | 21 | 1582 | 3 | 5 | Excellent |
| Tiago Tomás | 14 | 1079 | 4 | 0 | Good |
| Ömer Faruk Beyaz | 20 | 79 | 0 | 0 | Did not deliver |
VfL Bochum (18 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Anthony Losilla | 33 | 2938 | 2 | 0 | Excellent |
| Manuel Riemann | 31 | 2791 | 0 | 1 | Excellent |
| Danilo Soares | 31 | 2570 | 0 | 1 | Good |
| Elvis Rexhbecaj | 32 | 2558 | 0 | 0 | Good |
| Sebastian Polter | 33 | 2345 | 10 | 1 | Excellent |
| Gerit Holtmann | 29 | 1854 | 5 | 4 | Excellent |
| Cristian Gamboa | 27 | 1729 | 1 | 0 | Below expectations |
| Takuma Asano | 28 | 1616 | 3 | 4 | Good |
| Erhan Mašović | 31 | 1548 | 0 | 0 | Did not deliver |
| Miloš Pantović | 32 | 1535 | 4 | 3 | Good |
| Eduard Löwen | 27 | 1425 | 2 | 2 | Good |
| Konstantinos Stafylidis | 27 | 1388 | 0 | 1 | Below expectations |
| Christopher Antwi-Adjei | 29 | 1132 | 1 | 1 | Below expectations |
| Herbert Bockhorn | 27 | 836 | 0 | 0 | Did not deliver |
| Simon Zoller | 10 | 595 | 3 | 2 | Fair |
| Jürgen Locadia | 12 | 446 | 2 | 1 | Fair |
| Robert Tesche | 24 | 347 | 0 | 0 | Did not deliver |
| Raman Chibsah | 7 | 0 | 0 | 0 | Did not deliver |
VfL Wolfsburg (7 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Sebastiaan Bornauw | 32 | 2013 | 1 | 0 | Below expectations |
| Jonas Wind | 14 | 1185 | 5 | 1 | Excellent |
| Aster Vranckx | 30 | 1136 | 2 | 0 | Below expectations |
| Max Kruse | 14 | 1135 | 7 | 1 | Excellent |
| Dodi Lukebakio | 29 | 880 | 1 | 2 | Below expectations |
| Luca Waldschmidt | 20 | 719 | 1 | 0 | Did not deliver |
| Kevin Paredes * | 7 | 14 | 0 | 0 | Investment |