We identified 127 real signings for the first-team squad of the 19 clubs; 122 are included in the hit-rate calculation — 5 youth investments (under-23) are classified separately. Signings without relevant game time are classified as unsuccessful. The league's average hit rate was 42%.
Distribution of ratings
Club ranking by hit rate
| Club | League position | Signings | Evaluated | Successful | Fair | Unsuccessful | Hit rate % |
|---|
| 1º | Bayern München | 1º | 2 | 1 | 1 | 0 | 0 | 100% |
| 2º | Borussia Dortmund | 2º | 7 | 7 | 5 | 0 | 2 | 71% |
| 3º | FSV Mainz 05 | 12º | 6 | 6 | 4 | 0 | 2 | 67% |
| 4º | VfL Wolfsburg | 6º | 5 | 5 | 3 | 0 | 2 | 60% |
| 5º | Werder Bremen | 8º | 5 | 5 | 3 | 0 | 2 | 60% |
| 6º | VfB Stuttgart | 16º | 6 | 6 | 3 | 1 | 2 | 58% |
| 7º | Borussia Mönchengladbach | 5º | 2 | 2 | 1 | 0 | 1 | 50% |
| 8º | Fortuna Düsseldorf | 10º | 20 | 20 | 5 | 8 | 7 | 45% |
| 9º | SC Freiburg | 13º | 5 | 5 | 2 | 0 | 3 | 40% |
| 10º | Eintracht Frankfurt | 7º | 11 | 10 | 2 | 3 | 5 | 35% |
| 11º | 1899 Hoffenheim | 9º | 6 | 6 | 1 | 2 | 3 | 33% |
| 12º | Bayer Leverkusen | 4º | 4 | 3 | 0 | 2 | 1 | 33% |
| 13º | Hertha BSC | 11º | 3 | 3 | 1 | 0 | 2 | 33% |
| 14º | FC Schalke 04 | 14º | 7 | 7 | 1 | 2 | 4 | 29% |
| 15º | Hannover 96 | 17º | 7 | 7 | 0 | 4 | 3 | 29% |
| 16º | 1. FC Nürnberg | 18º | 15 | 15 | 1 | 5 | 9 | 23% |
| 17º | FC Augsburg | 15º | 5 | 5 | 1 | 0 | 4 | 20% |
| 18º | RB Leipzig | 3º | 3 | 3 | 0 | 1 | 2 | 17% |
| 19º | Union Berlin | 19º | 8 | 6 | 0 | 0 | 6 | 0% |
Successful signings count as a full point; Fair ones, half a point.
Hit rate by position
| Position | Evaluated | Successful | Hit rate % |
|---|
| Goalkeepers | 14 | 1 | 18% |
| Defenders | 36 | 12 | 42% |
| Midfielders | 46 | 10 | 37% |
| Forwards | 26 | 11 | 52% |
The 5 best-performing signings
| Player | Club | Minutes | G+A | Rating |
|---|
| Wout Weghorst | VfL Wolfsburg | 2930 | 17+7 | Excellent |
| Filip Kostić | Eintracht Frankfurt | 2960 | 6+10 | Excellent |
| Ishak Belfodil | 1899 Hoffenheim | 1864 | 16+3 | Excellent |
| Jean-Philippe Mateta | FSV Mainz 05 | 2494 | 14+2 | Excellent |
| Kevin Stöger | Fortuna Düsseldorf | 2120 | 1+7 | Excellent |
Methodology
Only genuine signings for the first-team squad are considered — academy promotions, loan returns and internal moves are excluded. Performance is classified into five tiers based on the player's output over the season (minutes, goal involvement, match ratings and consistency), compared with the other players in the competition.
Appendix — Signings by club
* Youth investment (under-23, no game time) — outside the calculation.
1. FC Nürnberg (15 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Tim Leibold | 32 | 2767 | 0 | 2 | Fair |
| Hanno Behrens | 30 | 2643 | 4 | 1 | Fair |
| Georg Margreitter | 27 | 2063 | 2 | 0 | Good |
| Christian Mathenia | 22 | 1934 | 0 | 0 | Fair |
| Mikael Ishak | 29 | 1920 | 4 | 3 | Fair |
| Robert Bauer | 22 | 1724 | 0 | 0 | Below expectations |
| Ondřej Petrák | 22 | 1622 | 0 | 0 | Did not deliver |
| Virgil Misidjan | 23 | 1544 | 1 | 1 | Did not deliver |
| Yuya Kubo | 22 | 1361 | 1 | 0 | Did not deliver |
| Matheus Pereira | 19 | 1236 | 3 | 2 | Fair |
| Fabian Bredlow | 13 | 1126 | 0 | 0 | Did not deliver |
| Federico Palacios | 17 | 946 | 2 | 0 | Below expectations |
| Alexander Fuchs | 9 | 660 | 1 | 0 | Below expectations |
| Törles Knöll | 16 | 358 | 1 | 0 | Did not deliver |
| Edgar Salli | 3 | 115 | 0 | 0 | Did not deliver |
1899 Hoffenheim (6 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Ishak Belfodil | 28 | 1864 | 16 | 3 | Excellent |
| Leonardo Bittencourt | 21 | 1073 | 1 | 3 | Fair |
| Kasim Adams | 13 | 906 | 0 | 1 | Below expectations |
| Joshua Brenet | 14 | 905 | 2 | 1 | Did not deliver |
| Vincenzo Grifo | 7 | 332 | 1 | 2 | Fair |
| Justin Hoogma | 2 | 110 | 0 | 0 | Did not deliver |
Bayer Leverkusen (4 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Lukáš Hrádecký | 32 | 2880 | 0 | 0 | Fair |
| Mitchell Weiser | 30 | 2118 | 1 | 3 | Fair |
| Isaac Thelin | 6 | 175 | 0 | 0 | Did not deliver |
| Paulinho * | 15 | 169 | 0 | 0 | Investment |
Bayern München (2 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Leon Goretzka | 29 | 1929 | 7 | 4 | Excellent |
| Alphonso Davies * | 6 | 76 | 1 | 0 | Investment |
Borussia Dortmund (7 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Axel Witsel | 33 | 2873 | 4 | 1 | Excellent |
| Abdou Diallo | 28 | 2380 | 1 | 1 | Good |
| Thomas Delaney | 30 | 2288 | 3 | 5 | Excellent |
| Achraf Hakimi | 21 | 1740 | 2 | 4 | Good |
| Paco Alcácer | 26 | 1201 | 18 | 0 | Excellent |
| Marius Wolf | 16 | 831 | 1 | 0 | Did not deliver |
| Marwin Hitz | 2 | 180 | 0 | 0 | Did not deliver |
Borussia Mönchengladbach (2 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Alassane Pléa | 34 | 2507 | 12 | 4 | Excellent |
| Michael Lang | 17 | 1261 | 1 | 0 | Did not deliver |
Eintracht Frankfurt (11 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Filip Kostić | 34 | 2960 | 6 | 10 | Excellent |
| Kevin Trapp | 33 | 2938 | 0 | 0 | Good |
| Martin Hinteregger | 14 | 1144 | 1 | 0 | Fair |
| Sebastian Rode | 12 | 931 | 0 | 0 | Fair |
| Lucas Torró | 8 | 560 | 0 | 0 | Below expectations |
| Almamy Touré | 7 | 520 | 0 | 0 | Did not deliver |
| Gonçalo Paciência | 11 | 386 | 3 | 1 | Did not deliver |
| Nicolai Müller | 7 | 216 | 2 | 0 | Fair |
| Allan * | 4 | 174 | 0 | 0 | Investment |
| Frederik Rønnow | 2 | 122 | 0 | 0 | Did not deliver |
| Felix Wiedwald | 0 | 0 | 0 | 0 | Did not deliver |
FC Augsburg (5 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| André Hahn | 28 | 2048 | 4 | 4 | Good |
| Reece Oxford | 8 | 504 | 0 | 1 | Did not deliver |
| Fabian Giefer | 4 | 360 | 0 | 0 | Did not deliver |
| Julian Schieber | 9 | 262 | 1 | 0 | Did not deliver |
| Fredrik Jensen | 6 | 205 | 0 | 0 | Did not deliver |
FC Schalke 04 (7 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Salif Sané | 30 | 2618 | 2 | 0 | Good |
| Suat Serdar | 26 | 1736 | 2 | 1 | Below expectations |
| Mark Uth | 20 | 1408 | 2 | 1 | Fair |
| Sebastian Rudy | 21 | 1359 | 0 | 0 | Below expectations |
| Omar Mascarell | 14 | 993 | 0 | 2 | Fair |
| Jeffrey Bruma | 9 | 623 | 0 | 0 | Did not deliver |
| Hamza Mendyl | 9 | 544 | 0 | 0 | Did not deliver |
FSV Mainz 05 (6 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Aarón Martin Caricol | 33 | 2878 | 0 | 3 | Excellent |
| Moussa Niakhaté | 33 | 2794 | 1 | 1 | Good |
| Jean-Philippe Mateta | 34 | 2494 | 14 | 2 | Excellent |
| Jean-Paul Boëtius | 30 | 2129 | 4 | 7 | Excellent |
| Pierre Kunde | 29 | 1921 | 0 | 0 | Below expectations |
| Phillipp Mwene | 6 | 270 | 0 | 0 | Below expectations |
Fortuna Düsseldorf (20 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Matthias Zimmermann | 34 | 3050 | 1 | 3 | Good |
| Michael Rensing | 32 | 2880 | 0 | 0 | Fair |
| Niko Giesselmann | 30 | 2594 | 0 | 3 | Good |
| Kaan Ayhan | 28 | 2451 | 4 | 1 | Excellent |
| Marcin Kamiński | 27 | 2430 | 0 | 1 | Fair |
| Kevin Stöger | 25 | 2120 | 1 | 7 | Excellent |
| Dodi Lukebakio | 31 | 1978 | 10 | 3 | Good |
| Benito Raman | 30 | 1678 | 10 | 4 | Fair |
| Alfredo Morales | 23 | 1535 | 1 | 1 | Did not deliver |
| Jean Zimmer | 18 | 1439 | 1 | 2 | Fair |
| Andre Hoffmann | 13 | 1047 | 0 | 0 | Below expectations |
| Marcel Sobottka | 14 | 944 | 0 | 0 | Below expectations |
| Kenan Karaman | 21 | 920 | 3 | 1 | Fair |
| Takashi Usami | 19 | 876 | 1 | 2 | Fair |
| Marvin Ducksch | 16 | 820 | 1 | 1 | Did not deliver |
| Dawid Kownacki | 10 | 576 | 4 | 0 | Fair |
| Aymen Barkok | 12 | 507 | 0 | 0 | Did not deliver |
| Markus Suttner | 6 | 491 | 1 | 1 | Fair |
| Jaroslav Drobný | 2 | 180 | 0 | 0 | Did not deliver |
| Diego Contento | 0 | 0 | 0 | 0 | Did not deliver |
Hannover 96 (7 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Genki Haraguchi | 27 | 2038 | 0 | 3 | Fair |
| Walace | 25 | 1910 | 1 | 1 | Fair |
| Kevin Wimmer | 21 | 1658 | 0 | 0 | Below expectations |
| Bobby Wood | 20 | 1185 | 3 | 1 | Fair |
| Nicolai Müller | 14 | 901 | 3 | 0 | Fair |
| Takuma Asano | 13 | 700 | 0 | 0 | Did not deliver |
| Kevin Akpoguma | 4 | 314 | 0 | 0 | Did not deliver |
Hertha BSC (3 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Marko Grujić | 22 | 1780 | 5 | 1 | Excellent |
| Lukas Klünter | 10 | 593 | 0 | 0 | Did not deliver |
| Derrick Luckassen | 4 | 248 | 0 | 0 | Did not deliver |
RB Leipzig (3 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Nordi Mukiele | 19 | 1232 | 1 | 1 | Did not deliver |
| Tyler Adams | 10 | 723 | 0 | 2 | Below expectations |
| Marcelo Saracchi | 9 | 652 | 0 | 1 | Fair |
SC Freiburg (5 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Dominique Heintz | 34 | 3054 | 1 | 1 | Good |
| Luca Waldschmidt | 30 | 1716 | 9 | 1 | Excellent |
| Jérôme Gondorf | 25 | 1292 | 2 | 2 | Did not deliver |
| Roland Sallai | 10 | 526 | 2 | 0 | Below expectations |
| Mark Flekken | 1 | 90 | 0 | 0 | Did not deliver |
Union Berlin (8 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Rafał Gikiewicz | 2 | 180 | 0 | 0 | Did not deliver |
| Marvin Friedrich * | 2 | 180 | 1 | 0 | Investment |
| Grischa Prömel | 2 | 180 | 0 | 0 | Did not deliver |
| Robert Žulj | 2 | 179 | 0 | 0 | Did not deliver |
| Manuel Schmiedebach | 2 | 174 | 0 | 0 | Did not deliver |
| Marcel Hartel * | 2 | 125 | 0 | 0 | Investment |
| Christopher Trimmel | 1 | 90 | 0 | 1 | Did not deliver |
| Florian Hübner | 1 | 90 | 0 | 0 | Did not deliver |
VfB Stuttgart (6 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Nicolás González | 32 | 2289 | 2 | 4 | Good |
| Marc-Oliver Kempf | 24 | 2115 | 2 | 0 | Good |
| Gonzalo Castro | 27 | 1803 | 2 | 4 | Fair |
| Alexander Esswein | 18 | 1264 | 0 | 0 | Did not deliver |
| Steven Zuber | 15 | 1143 | 5 | 1 | Good |
| Pablo Maffeo | 8 | 601 | 0 | 0 | Did not deliver |
VfL Wolfsburg (5 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Wout Weghorst | 34 | 2930 | 17 | 7 | Excellent |
| Jérôme Roussillon | 28 | 2466 | 3 | 4 | Excellent |
| Daniel Ginczek | 24 | 1275 | 6 | 2 | Good |
| Pavao Pervan | 9 | 765 | 0 | 0 | Below expectations |
| Felix Klaus | 15 | 450 | 1 | 1 | Did not deliver |
Werder Bremen (5 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Davy Klaassen | 33 | 2823 | 5 | 4 | Excellent |
| Nuri Şahin | 20 | 1486 | 1 | 1 | Good |
| Yuya Osako | 21 | 1351 | 3 | 2 | Good |
| Martin Harnik | 18 | 827 | 4 | 2 | Below expectations |
| Stefanos Kapino | 1 | 45 | 0 | 0 | Did not deliver |