We identified 113 real signings across the 19 clubs of Bundesliga; 108 are included in the hit-rate calculation (5 youth investments set aside). Signings without relevant game time are classified as unsuccessful. League average hit rate: 36%.
Comparison with 2019/20
The league's average hit rate was 36%, against 41% the previous season (▼ 5 p.p.). There were 113 real signings, against 148 in 2019/20.
Hit rate by club
1º SC Freiburg (10th in the league · 3 eval.)
2º VfL Wolfsburg (4th in the league · 2 eval.)
3º FC Augsburg (13th in the league · 4 eval.)
4º Borussia Mönchengladbach (8th in the league · 2 eval.)
5º Hertha BSC (15th in the league · 8 eval.)
6º Union Berlin (7th in the league · 13 eval.)
7º VfB Stuttgart (9th in the league · 10 eval.)
8º Bayer Leverkusen (6th in the league · 4 eval.)
9º 1. FC Köln (14th in the league · 7 eval.)
10º Borussia Dortmund (3rd in the league · 3 eval.)
11º Arminia Bielefeld (16th in the league · 11 eval.)
12º FC Schalke 04 (18th in the league · 8 eval.)
13º FSV Mainz 05 (12th in the league · 6 eval.)
14º Eintracht Frankfurt (5th in the league · 4 eval.)
15º Bayern München (1st in the league · 6 eval.)
16º RB Leipzig (2nd in the league · 6 eval.)
17º 1899 Hoffenheim (11th in the league · 3 eval.)
18º Holstein Kiel (19th in the league · 6 eval.)
19º Werder Bremen (17th in the league · 2 eval.)
Detailed ranking
| Club | League position | Signings | Evaluated | Successful | Fair | Unsuccessful | Hit rate % |
|---|
| 1º | SC Freiburg | 10º | 4 | 3 | 3 | 0 | 0 | 100% |
| 2º | VfL Wolfsburg | 4º | 2 | 2 | 1 | 1 | 0 | 75% |
| 3º | FC Augsburg | 13º | 4 | 4 | 2 | 1 | 1 | 62% |
| 4º | Borussia Mönchengladbach | 8º | 2 | 2 | 0 | 2 | 0 | 50% |
| 5º | Hertha BSC | 15º | 8 | 8 | 2 | 3 | 3 | 44% |
| 6º | Union Berlin | 7º | 13 | 13 | 4 | 3 | 6 | 42% |
| 7º | VfB Stuttgart | 9º | 10 | 10 | 4 | 0 | 6 | 40% |
| 8º | Bayer Leverkusen | 6º | 4 | 4 | 1 | 1 | 2 | 38% |
| 9º | 1. FC Köln | 14º | 7 | 7 | 2 | 1 | 4 | 36% |
| 10º | Borussia Dortmund | 3º | 3 | 3 | 1 | 0 | 2 | 33% |
| 11º | Arminia Bielefeld | 16º | 11 | 11 | 3 | 1 | 7 | 32% |
| 12º | FC Schalke 04 | 18º | 8 | 8 | 0 | 4 | 4 | 25% |
| 13º | FSV Mainz 05 | 12º | 6 | 6 | 0 | 3 | 3 | 25% |
| 14º | Eintracht Frankfurt | 5º | 5 | 4 | 1 | 0 | 3 | 25% |
| 15º | Bayern München | 1º | 7 | 6 | 1 | 0 | 5 | 17% |
| 16º | RB Leipzig | 2º | 7 | 6 | 1 | 0 | 5 | 17% |
| 17º | 1899 Hoffenheim | 11º | 3 | 3 | 0 | 1 | 2 | 17% |
| 18º | Holstein Kiel | 19º | 7 | 6 | 0 | 0 | 6 | 0% |
| 19º | Werder Bremen | 17º | 2 | 2 | 0 | 0 | 2 | 0% |
Season Highlights
| Player | Club | Min | G+A | Nota | Rating |
|---|
| Silas Wamangituka | VfB Stuttgart | 1930 | 11+4 | 7.09 | Excellent |
| Ondrej Duda | 1. FC Köln | 2705 | 7+5 | 7.09 | Excellent |
| Daniel Caligiuri | FC Augsburg | 2671 | 6+4 | 7.02 | Excellent |
| Ridle Baku | VfL Wolfsburg | 2684 | 6+6 | 7.00 | Excellent |
| Max Kruse | Union Berlin | 1634 | 11+5 | 6.99 | Excellent |
Methodology
Only genuine signings for the first-team squad are considered — academy promotions, loan returns and internal moves are excluded. Each evaluated signing is classified into five tiers from a score that combines match ratings, attacking output adjusted for game time and consistency over the season, in comparison with the other players in the competition. Successful signings count as a full point; Fair ones, half a point.
Appendix — Signings by club
* Youth investment (under-23, no game time) — outside the calculation.
1. FC Köln (7 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Ondrej Duda | 34 | 2705 | 7 | 5 | Excellent |
| Marius Wolf | 33 | 2699 | 2 | 2 | Good |
| Sebastian Andersson | 19 | 1234 | 5 | 0 | Fair |
| Emmanuel Dennis | 12 | 474 | 0 | 1 | Below expectations |
| Max Meyer | 18 | 373 | 0 | 0 | Did not deliver |
| Dimitris Limnios | 21 | 370 | 0 | 0 | Did not deliver |
| Ron-Robert Zieler | 36 | 50 | 0 | 0 | Did not deliver |
1899 Hoffenheim (3 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Ryan Sessegnon | 24 | 1575 | 2 | 2 | Fair |
| Mijat Gaćinović | 25 | 817 | 0 | 2 | Below expectations |
| Michael Esser | 0 | 0 | 0 | 0 | Did not deliver |
Arminia Bielefeld (11 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Stefan Ortega | 34 | 3060 | 0 | 1 | Excellent |
| Ritsu Doan | 34 | 2783 | 5 | 2 | Excellent |
| Amos Pieper | 30 | 2684 | 1 | 1 | Excellent |
| Joakim Nilsson | 33 | 2162 | 0 | 0 | Below expectations |
| Marcel Hartel | 33 | 1688 | 0 | 0 | Did not deliver |
| Mike Van der Hoorn | 34 | 1364 | 0 | 0 | Did not deliver |
| Sergio Córdova | 24 | 1097 | 2 | 1 | Fair |
| Arne Maier | 21 | 1037 | 0 | 0 | Did not deliver |
| Masaya Okugawa | 15 | 920 | 1 | 0 | Below expectations |
| Reinhold Yabo | 16 | 655 | 1 | 0 | Below expectations |
| Michel Vlap | 15 | 374 | 1 | 1 | Did not deliver |
Bayer Leverkusen (4 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Patrik Schick | 29 | 1865 | 9 | 1 | Excellent |
| Demarai Gray | 12 | 443 | 1 | 2 | Fair |
| Timothy Fosu-Mensah | 7 | 412 | 0 | 0 | Did not deliver |
| Santiago Arias | 1 | 90 | 0 | 0 | Did not deliver |
Bayern München (7 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Leroy Sané | 32 | 1803 | 6 | 9 | Excellent |
| Eric Maxim Choupo-Moting | 29 | 821 | 3 | 0 | Below expectations |
| Bouna Sarr | 25 | 454 | 0 | 1 | Did not deliver |
| Marc Roca | 26 | 174 | 0 | 0 | Did not deliver |
| Tanguy Nianzou * | 9 | 116 | 0 | 0 | Investment |
| Alexander Nübel | 27 | 90 | 0 | 0 | Did not deliver |
| Dimitri Oberlin | 1 | 0 | 0 | 0 | Did not deliver |
Borussia Dortmund (3 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Jude Bellingham | 31 | 1701 | 1 | 3 | Good |
| Thomas Meunier | 28 | 1476 | 1 | 1 | Below expectations |
| Reinier | 27 | 247 | 1 | 1 | Did not deliver |
Borussia Mönchengladbach (2 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Hannes Wolf | 34 | 1383 | 3 | 2 | Fair |
| Valentino Lazaro | 23 | 1238 | 2 | 0 | Fair |
Eintracht Frankfurt (5 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Amin Younes | 26 | 1404 | 3 | 3 | Good |
| Steven Zuber | 33 | 590 | 0 | 3 | Below expectations |
| Ajdin Hrustić | 27 | 271 | 1 | 0 | Did not deliver |
| Ragnar Ache * | 10 | 98 | 1 | 0 | Investment |
| Markus Schubert | 30 | 0 | 0 | 0 | Did not deliver |
FC Augsburg (4 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Rafał Gikiewicz | 34 | 3060 | 0 | 0 | Good |
| Daniel Caligiuri | 33 | 2671 | 6 | 4 | Excellent |
| Tobias Strobl | 34 | 1849 | 0 | 0 | Below expectations |
| László Bénes | 15 | 664 | 1 | 1 | Fair |
FC Schalke 04 (8 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Sead Kolašinac | 17 | 1426 | 1 | 1 | Fair |
| Shkodran Mustafi | 14 | 1035 | 1 | 0 | Fair |
| Frederik Rønnow | 20 | 945 | 0 | 0 | Did not deliver |
| Gonçalo Paciência | 16 | 753 | 1 | 1 | Fair |
| Klaas-Jan Huntelaar | 9 | 591 | 2 | 1 | Fair |
| Kilian Ludewig | 13 | 521 | 0 | 0 | Did not deliver |
| William | 10 | 476 | 0 | 0 | Did not deliver |
| Vedad Ibišević | 8 | 155 | 0 | 0 | Did not deliver |
FSV Mainz 05 (6 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Dominik Kohr | 17 | 1270 | 1 | 1 | Fair |
| Danny da Costa | 16 | 1214 | 0 | 1 | Fair |
| Kevin Stöger | 28 | 549 | 3 | 0 | Below expectations |
| Luca Kilian | 17 | 380 | 0 | 0 | Did not deliver |
| Robert Glatzel | 15 | 351 | 2 | 0 | Fair |
| Dimitri Lavalėe | 3 | 0 | 0 | 0 | Did not deliver |
Hertha BSC (8 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Alexander Schwolow | 34 | 2340 | 0 | 0 | Below expectations |
| Lucas Tousart | 31 | 2095 | 1 | 0 | Fair |
| Mattéo Guendouzi | 24 | 1817 | 2 | 1 | Good |
| Jhon Córdoba | 21 | 1542 | 7 | 1 | Excellent |
| Omar Alderete | 29 | 1299 | 0 | 0 | Did not deliver |
| Deyovaisio Zeefuik | 29 | 909 | 1 | 0 | Did not deliver |
| Nemanja Radonjić | 13 | 608 | 1 | 2 | Fair |
| Sami Khedira | 9 | 394 | 0 | 1 | Fair |
Holstein Kiel (7 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Jae-Sung Lee | 2 | 180 | 1 | 1 | Did not deliver |
| Phil Neumann * | 2 | 180 | 0 | 0 | Investment |
| Hauke Wahl | 2 | 180 | 0 | 0 | Did not deliver |
| Fin Bartels | 2 | 168 | 0 | 0 | Did not deliver |
| Fabian Reese | 2 | 103 | 0 | 0 | Did not deliver |
| Jonas Meffert | 1 | 90 | 0 | 0 | Did not deliver |
| Joshua Mees | 2 | 57 | 0 | 0 | Did not deliver |
RB Leipzig (7 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Alexander Sørloth | 33 | 1447 | 5 | 3 | Good |
| Justin Kluivert | 26 | 812 | 3 | 0 | Below expectations |
| Benjamin Henrichs | 20 | 536 | 0 | 1 | Did not deliver |
| Hee-Chan Hwang | 27 | 453 | 0 | 1 | Did not deliver |
| Josep Martínez * | 29 | 90 | 0 | 0 | Investment |
| Philipp Tschauner | 8 | 0 | 0 | 0 | Did not deliver |
| Elias Abouchabaka | 0 | 0 | 0 | 0 | Did not deliver |
SC Freiburg (4 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Florian Müller | 31 | 2790 | 0 | 0 | Good |
| Baptiste Santamaria | 30 | 2219 | 1 | 2 | Good |
| Ermedin Demirović | 32 | 1525 | 5 | 6 | Good |
| Guus Til * | 23 | 130 | 0 | 0 | Investment |
Union Berlin (13 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Robin Knoche | 34 | 3043 | 1 | 0 | Good |
| Andreas Luthe | 31 | 2769 | 0 | 0 | Good |
| Max Kruse | 23 | 1634 | 11 | 5 | Excellent |
| Taiwo Awoniyi | 22 | 1365 | 5 | 2 | Good |
| Nico Schlotterbeck | 21 | 1287 | 1 | 0 | Below expectations |
| Sebastian Griesbeck | 34 | 894 | 0 | 0 | Did not deliver |
| Joel Pohjanpalo | 20 | 855 | 6 | 0 | Fair |
| Cedric Teuchert | 31 | 748 | 3 | 1 | Fair |
| Petar Musa | 15 | 718 | 1 | 3 | Fair |
| Keita Endo | 30 | 450 | 1 | 0 | Did not deliver |
| Niko Giesselmann | 25 | 441 | 0 | 0 | Did not deliver |
| Loris Karius | 30 | 291 | 0 | 0 | Did not deliver |
| Leon Dajaku | 6 | 42 | 0 | 0 | Did not deliver |
VfB Stuttgart (10 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Wataru Endo | 33 | 2956 | 3 | 3 | Excellent |
| Waldemar Anton | 32 | 2712 | 0 | 1 | Good |
| Saša Kalajdžić | 34 | 2144 | 16 | 5 | Excellent |
| Silas Wamangituka | 25 | 1930 | 11 | 4 | Excellent |
| Konstantinos Mavropanos | 25 | 1471 | 0 | 0 | Below expectations |
| Pascal Stenzel | 33 | 1278 | 0 | 1 | Did not deliver |
| Atakan Karazor | 29 | 1048 | 0 | 0 | Did not deliver |
| Darko Churlinov | 22 | 209 | 0 | 1 | Did not deliver |
| Fabian Bredlow | 34 | 90 | 0 | 0 | Did not deliver |
| Jens Grahl | 1 | 0 | 0 | 0 | Did not deliver |
VfL Wolfsburg (2 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Ridle Baku | 32 | 2684 | 6 | 6 | Excellent |
| Maximilian Philipp | 28 | 1118 | 6 | 2 | Fair |
Werder Bremen (2 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Tahith Chong | 19 | 381 | 0 | 1 | Did not deliver |
| Patrick Erras | 15 | 29 | 0 | 0 | Did not deliver |