We identified 125 real signings for the first-team squad of the 18 clubs; 123 are included in the hit-rate calculation — 2 youth investments (under-23) are classified separately. Signings without relevant game time are classified as unsuccessful. The league's average hit rate was 40%.
Distribution of ratings
Club ranking by hit rate
| Club | League position | Signings | Evaluated | Successful | Fair | Unsuccessful | Hit rate % |
|---|
| 1º | Bayern München | 1º | 5 | 5 | 3 | 2 | 0 | 80% |
| 2º | Borussia Dortmund | 4º | 6 | 6 | 3 | 3 | 0 | 75% |
| 3º | Hertha BSC | 10º | 4 | 4 | 1 | 3 | 0 | 62% |
| 4º | Eintracht Frankfurt | 8º | 10 | 9 | 3 | 4 | 2 | 56% |
| 5º | Hannover 96 | 13º | 12 | 12 | 4 | 4 | 4 | 50% |
| 6º | RB Leipzig | 6º | 6 | 6 | 2 | 2 | 2 | 50% |
| 7º | Bayer Leverkusen | 5º | 4 | 4 | 2 | 0 | 2 | 50% |
| 8º | FC Schalke 04 | 2º | 4 | 4 | 1 | 2 | 1 | 50% |
| 9º | VfB Stuttgart | 7º | 17 | 17 | 5 | 5 | 7 | 44% |
| 10º | 1899 Hoffenheim | 3º | 8 | 7 | 2 | 1 | 4 | 36% |
| 11º | Borussia Mönchengladbach | 9º | 5 | 5 | 1 | 1 | 3 | 30% |
| 12º | FC Augsburg | 12º | 5 | 5 | 1 | 1 | 3 | 30% |
| 13º | VfL Wolfsburg | 16º | 11 | 11 | 1 | 4 | 6 | 27% |
| 14º | 1. FC Köln | 18º | 6 | 6 | 1 | 1 | 4 | 25% |
| 15º | Werder Bremen | 11º | 7 | 7 | 1 | 1 | 5 | 21% |
| 16º | SC Freiburg | 15º | 6 | 6 | 0 | 2 | 4 | 17% |
| 17º | FSV Mainz 05 | 14º | 7 | 7 | 1 | 0 | 6 | 14% |
| 18º | Hamburger SV | 17º | 2 | 2 | 0 | 0 | 2 | 0% |
Successful signings count as a full point; Fair ones, half a point.
Hit rate by position
| Position | Evaluated | Successful | Hit rate % |
|---|
| Goalkeepers | 8 | 2 | 31% |
| Defenders | 35 | 9 | 39% |
| Midfielders | 45 | 11 | 43% |
| Forwards | 35 | 10 | 41% |
The 5 best-performing signings
| Player | Club | Minutes | G+A | Rating |
|---|
| Niclas Füllkrug | Hannover 96 | 2389 | 14+3 | Excellent |
| James Rodríguez | Bayern München | 1625 | 7+11 | Excellent |
| Serge Gnabry | 1899 Hoffenheim | 1507 | 10+5 | Excellent |
| Michael Gregoritsch | FC Augsburg | 2534 | 13+2 | Excellent |
| Matthias Ginter | Borussia Mönchengladbach | 3060 | 5+2 | 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 Köln (6 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Jorge Meré | 22 | 1890 | 1 | 1 | Fair |
| Simon Terodde | 15 | 1163 | 5 | 0 | Good |
| Jhon Córdoba | 18 | 951 | 0 | 2 | Below expectations |
| Jannes Horn | 11 | 827 | 0 | 0 | Did not deliver |
| Vincent Koziello | 12 | 788 | 1 | 0 | Below expectations |
| Claudio Pizarro | 16 | 574 | 1 | 1 | Did not deliver |
1899 Hoffenheim (8 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Florian Grillitsch | 25 | 1895 | 1 | 2 | Good |
| Nico Schulz | 27 | 1773 | 1 | 2 | Fair |
| Kevin Akpoguma | 22 | 1690 | 0 | 1 | Did not deliver |
| Serge Gnabry | 22 | 1507 | 10 | 5 | Excellent |
| Håvard Nordtveit | 15 | 966 | 0 | 0 | Below expectations |
| Felix Passlack * | 2 | 61 | 0 | 0 | Investment |
| Danilo Soares | 0 | 0 | 0 | 0 | Did not deliver |
| Justin Hoogma | 0 | 0 | 0 | 0 | Did not deliver |
Bayer Leverkusen (4 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Sven Bender | 29 | 2347 | 2 | 0 | Good |
| Panagiotis Retsos | 24 | 1714 | 1 | 3 | Below expectations |
| Dominik Kohr | 28 | 1666 | 1 | 1 | Did not deliver |
| Lucas Alario | 23 | 1545 | 9 | 4 | Excellent |
Bayern München (5 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Niklas Süle | 27 | 1919 | 2 | 1 | Good |
| James Rodríguez | 23 | 1625 | 7 | 11 | Excellent |
| Corentin Tolisso | 26 | 1527 | 6 | 4 | Fair |
| Sebastian Rudy | 25 | 1509 | 1 | 4 | Good |
| Sandro Wagner | 14 | 722 | 8 | 1 | Fair |
Borussia Dortmund (6 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Ömer Toprak | 26 | 2017 | 0 | 1 | Good |
| Jeremy Toljan | 16 | 1208 | 1 | 2 | Fair |
| Maximilian Philipp | 20 | 1207 | 9 | 1 | Excellent |
| Mahmoud Dahoud | 23 | 1137 | 0 | 4 | Fair |
| Andriy Yarmolenko | 18 | 1041 | 3 | 2 | Good |
| Michy Batshuayi | 10 | 836 | 7 | 1 | Fair |
Borussia Mönchengladbach (5 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Matthias Ginter | 34 | 3060 | 5 | 2 | Excellent |
| Denis Zakaria | 30 | 2306 | 2 | 1 | Fair |
| Vincenzo Grifo | 17 | 780 | 0 | 3 | Did not deliver |
| Reece Oxford | 7 | 463 | 0 | 0 | Did not deliver |
| Raúl Bobadilla | 13 | 444 | 0 | 0 | Did not deliver |
Eintracht Frankfurt (10 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Kevin-Prince Boateng | 31 | 2361 | 6 | 1 | Good |
| Sébastien Haller | 31 | 2351 | 9 | 4 | Excellent |
| Simon Falette | 27 | 2208 | 1 | 0 | Fair |
| Jetro Willems | 23 | 1670 | 0 | 2 | Good |
| Carlos Salcedo | 20 | 1607 | 0 | 0 | Did not deliver |
| Danny da Costa | 17 | 1199 | 1 | 3 | Fair |
| Jonathan de Guzmán | 16 | 1094 | 0 | 3 | Fair |
| Gélson Fernandes | 19 | 1034 | 0 | 0 | Did not deliver |
| Luka Jović | 22 | 929 | 8 | 1 | Fair |
| Daichi Kamada * | 3 | 145 | 0 | 0 | Investment |
FC Augsburg (5 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Michael Gregoritsch | 32 | 2534 | 13 | 2 | Excellent |
| Rani Khedira | 30 | 2279 | 1 | 1 | Fair |
| Marcel Heller | 24 | 1300 | 0 | 1 | Did not deliver |
| Sergio Córdova | 26 | 566 | 2 | 0 | Did not deliver |
| Fabian Giefer | 0 | 0 | 0 | 0 | Did not deliver |
FC Schalke 04 (4 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Bastian Oczipka | 29 | 2320 | 0 | 1 | Fair |
| Amine Harit | 31 | 2052 | 3 | 3 | Good |
| Marko Pjaca | 7 | 259 | 2 | 0 | Fair |
| Pablo Insua | 1 | 26 | 0 | 0 | Did not deliver |
FSV Mainz 05 (7 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Abdou Diallo | 27 | 2416 | 2 | 1 | Good |
| René Adler | 14 | 1260 | 0 | 0 | Below expectations |
| Alexandru Maxim | 22 | 958 | 2 | 2 | Below expectations |
| Nigel de Jong | 11 | 742 | 0 | 0 | Did not deliver |
| Viktor Fischer | 10 | 331 | 0 | 0 | Did not deliver |
| Kenan Kodro | 8 | 227 | 0 | 0 | Did not deliver |
| Anthony Ujah | 11 | 200 | 0 | 0 | Did not deliver |
Hamburger SV (2 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Rick Van Drongelen | 18 | 1443 | 0 | 0 | Did not deliver |
| André Hahn | 23 | 1353 | 3 | 0 | Did not deliver |
Hannover 96 (12 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Philipp Tschauner | 31 | 2790 | 0 | 0 | Fair |
| Niclas Füllkrug | 34 | 2389 | 14 | 3 | Excellent |
| Matthias Ostrzolek | 27 | 2380 | 0 | 1 | Fair |
| Julian Korb | 28 | 2341 | 1 | 1 | Fair |
| Pirmin Schwegler | 29 | 2328 | 0 | 6 | Excellent |
| Ihlas Bebou | 30 | 2138 | 5 | 2 | Good |
| Marvin Bakalorz | 28 | 2058 | 0 | 1 | Below expectations |
| Martin Harnik | 30 | 1887 | 9 | 2 | Good |
| Jonathas | 12 | 634 | 3 | 3 | Fair |
| Florian Hübner | 9 | 325 | 0 | 0 | Did not deliver |
| Michael Esser | 3 | 270 | 0 | 0 | Did not deliver |
| Sebastian Maier | 10 | 260 | 0 | 0 | Did not deliver |
Hertha BSC (4 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Karim Rekik | 26 | 2304 | 2 | 2 | Fair |
| Davie Selke | 27 | 1888 | 10 | 0 | Excellent |
| Valentino Lazaro | 26 | 1859 | 2 | 5 | Fair |
| Mathew Leckie | 26 | 1853 | 5 | 1 | Fair |
RB Leipzig (6 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Kevin Kampl | 26 | 2021 | 1 | 3 | Fair |
| Bruma | 28 | 1608 | 4 | 2 | Good |
| Konrad Laimer | 22 | 1331 | 0 | 2 | Below expectations |
| Jean-Kévin Augustin | 25 | 1272 | 9 | 5 | Good |
| Ademola Lookman | 11 | 575 | 5 | 3 | Fair |
| Yvon Mvogo | 1 | 90 | 0 | 0 | Did not deliver |
SC Freiburg (6 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Robin Koch | 26 | 1916 | 2 | 1 | Fair |
| Marco Terrazzino | 24 | 1500 | 0 | 1 | Below expectations |
| Lucas Höler | 14 | 915 | 1 | 0 | Did not deliver |
| Yoric Ravet | 10 | 494 | 0 | 2 | Fair |
| Ryan Kent | 6 | 244 | 0 | 0 | Did not deliver |
| Vincent Sierro | 4 | 215 | 0 | 0 | Did not deliver |
VfB Stuttgart (17 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Ron-Robert Zieler | 34 | 3060 | 0 | 0 | Good |
| Benjamin Pavard | 34 | 3060 | 1 | 0 | Excellent |
| Holger Badstuber | 27 | 2168 | 2 | 0 | Good |
| Dennis Aogo | 29 | 1954 | 0 | 6 | Good |
| Andreas Beck | 23 | 1930 | 1 | 1 | Fair |
| Mario Gómez | 16 | 1389 | 8 | 1 | Excellent |
| Marcin Kamiński | 23 | 1134 | 0 | 0 | Did not deliver |
| Chadrac Akolo | 22 | 1105 | 5 | 0 | Below expectations |
| Erik Thommy | 14 | 992 | 2 | 4 | Fair |
| Simon Terodde | 15 | 952 | 2 | 1 | Fair |
| Anastasios Donis | 18 | 950 | 2 | 2 | Fair |
| Josip Brekalo | 14 | 727 | 1 | 1 | Fair |
| Takuma Asano | 15 | 719 | 1 | 0 | Did not deliver |
| Dženis Burnić | 6 | 304 | 0 | 0 | Did not deliver |
| Ailton | 5 | 106 | 0 | 0 | Did not deliver |
| Alexander Meyer | 0 | 0 | 0 | 0 | Did not deliver |
| Julian Green | 0 | 0 | 0 | 0 | Did not deliver |
VfL Wolfsburg (11 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Paul Verhaegh | 31 | 2617 | 2 | 2 | Good |
| Divock Origi | 31 | 1966 | 6 | 2 | Fair |
| William | 22 | 1611 | 0 | 2 | Below expectations |
| Felix Uduokhai | 19 | 1558 | 1 | 0 | Fair |
| Marcel Tisserand | 16 | 1248 | 0 | 1 | Below expectations |
| Ignacio Camacho | 11 | 953 | 0 | 0 | Fair |
| Landry Dimata | 21 | 899 | 0 | 1 | Did not deliver |
| John Brooks | 9 | 729 | 0 | 0 | Fair |
| Renato Steffen | 16 | 656 | 0 | 0 | Did not deliver |
| Admir Mehmedi | 5 | 288 | 1 | 0 | Below expectations |
| Kaylen Hinds | 1 | 90 | 0 | 0 | Did not deliver |
Werder Bremen (7 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Jiří Pavlenka | 34 | 3060 | 0 | 0 | Good |
| Ludwig Augustinsson | 29 | 2534 | 1 | 0 | Fair |
| Ishak Belfodil | 26 | 1343 | 4 | 1 | Below expectations |
| Jérôme Gondorf | 21 | 794 | 1 | 1 | Did not deliver |
| Sebastian Langkamp | 9 | 410 | 0 | 0 | Did not deliver |
| Milot Rashica | 9 | 385 | 1 | 0 | Below expectations |
| Yuning Zhang | 0 | 0 | 0 | 0 | Did not deliver |