We identified 195 real signings for the first-team squad of the 20 clubs; 193 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 36%.
Distribution of ratings
Club ranking by hit rate
| Club | League position | Signings | Evaluated | Successful | Fair | Unsuccessful | Hit rate % |
|---|
| 1º | Villarreal | 14º | 8 | 8 | 4 | 3 | 1 | 69% |
| 2º | Espanyol | 7º | 4 | 3 | 2 | 0 | 1 | 67% |
| 3º | Atletico Madrid | 2º | 8 | 8 | 4 | 0 | 4 | 50% |
| 4º | Valencia | 4º | 7 | 7 | 2 | 3 | 2 | 50% |
| 5º | Real Sociedad | 9º | 4 | 4 | 1 | 2 | 1 | 50% |
| 6º | Leganes | 13º | 15 | 15 | 5 | 2 | 8 | 40% |
| 7º | Celta Vigo | 16º | 10 | 10 | 2 | 4 | 4 | 40% |
| 8º | Real Betis | 10º | 10 | 10 | 3 | 2 | 5 | 40% |
| 9º | Athletic Club | 8º | 4 | 4 | 1 | 1 | 2 | 38% |
| 10º | Sevilla | 5º | 10 | 10 | 3 | 1 | 6 | 35% |
| 11º | Barcelona | 1º | 8 | 8 | 2 | 1 | 5 | 31% |
| 12º | Valladolid | 17º | 21 | 21 | 5 | 3 | 13 | 31% |
| 13º | Huesca | 19º | 23 | 23 | 5 | 4 | 14 | 30% |
| 14º | Alaves | 11º | 10 | 10 | 2 | 2 | 6 | 30% |
| 15º | Levante | 15º | 7 | 7 | 1 | 2 | 4 | 29% |
| 16º | Rayo Vallecano | 20º | 21 | 21 | 2 | 7 | 12 | 26% |
| 17º | Getafe | 6º | 12 | 12 | 2 | 2 | 8 | 25% |
| 18º | Real Madrid | 3º | 5 | 4 | 0 | 2 | 2 | 25% |
| 19º | Girona | 18º | 4 | 4 | 0 | 1 | 3 | 12% |
| 20º | Eibar | 12º | 4 | 4 | 0 | 0 | 4 | 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 | 29% |
| Defenders | 57 | 13 | 40% |
| Midfielders | 78 | 18 | 32% |
| Forwards | 44 | 14 | 34% |
The 5 best-performing signings
| Player | Club | Minutes | G+A | Rating |
|---|
| Borja Iglesias | Espanyol | 3081 | 17+3 | Excellent |
| Santi Cazorla | Villarreal | 2651 | 4+10 | Excellent |
| Jony | Alaves | 2982 | 5+10 | Excellent |
| Giovani Lo Celso | Real Betis | 2400 | 9+4 | Excellent |
| Jaime Mata | Getafe | 2436 | 14+6 | 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.
Alaves (10 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Jony | 36 | 2982 | 5 | 10 | Excellent |
| Jonathan Calleri | 34 | 2876 | 9 | 2 | Excellent |
| Ximo Navarro | 31 | 2533 | 2 | 2 | Fair |
| Darko Brašanac | 24 | 1581 | 0 | 1 | Did not deliver |
| Borja Bastón | 27 | 1449 | 5 | 1 | Below expectations |
| Takashi Inui | 12 | 834 | 2 | 0 | Fair |
| Diego Rolán | 9 | 300 | 0 | 0 | Did not deliver |
| Adrián Marín | 6 | 287 | 0 | 0 | Did not deliver |
| Patrick Twumasi | 11 | 159 | 0 | 0 | Did not deliver |
| Rafa Navarro | 0 | 0 | 0 | 0 | Did not deliver |
Athletic Club (4 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Yuri Berchiche | 35 | 3120 | 2 | 2 | Excellent |
| Dani García | 29 | 2482 | 0 | 0 | Fair |
| Ander Capa | 25 | 1637 | 0 | 0 | Did not deliver |
| Kenan Kodro | 11 | 162 | 1 | 0 | Did not deliver |
Atletico Madrid (8 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Rodri | 34 | 2742 | 3 | 1 | Excellent |
| Thomas Lemar | 31 | 1827 | 3 | 3 | Good |
| Santiago Arias | 25 | 1773 | 1 | 1 | Good |
| Álvaro Morata | 15 | 1089 | 6 | 1 | Excellent |
| Nikola Kalinić | 17 | 639 | 2 | 0 | Did not deliver |
| Gelson Martins | 8 | 223 | 0 | 0 | Did not deliver |
| Antonio Adán | 1 | 90 | 0 | 0 | Did not deliver |
| Óscar Pinchi | 0 | 0 | 0 | 0 | Did not deliver |
Barcelona (8 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Clément Lenglet | 23 | 1935 | 1 | 0 | Good |
| Arturo Vidal | 33 | 1927 | 3 | 7 | Excellent |
| Arthur | 27 | 1444 | 0 | 1 | Fair |
| Malcom | 15 | 610 | 1 | 2 | Below expectations |
| Kevin-Prince Boateng | 3 | 240 | 0 | 0 | Did not deliver |
| Jeison Murillo | 2 | 112 | 0 | 0 | Did not deliver |
| Martin Hongla | 0 | 0 | 0 | 0 | Did not deliver |
| Ballou Tabla | 0 | 0 | 0 | 0 | Did not deliver |
Celta Vigo (10 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Néstor Araujo | 32 | 2682 | 3 | 0 | Fair |
| Okay Yokuşlu | 30 | 2203 | 2 | 0 | Good |
| Sofiane Boufal | 35 | 2097 | 3 | 3 | Good |
| David Juncà | 21 | 1758 | 0 | 3 | Below expectations |
| Lucas Olaza | 10 | 898 | 0 | 2 | Fair |
| Wesley Hoedt | 10 | 893 | 0 | 0 | Fair |
| Ryad Boudebouz | 11 | 720 | 1 | 2 | Fair |
| Junior Alonso | 9 | 534 | 0 | 0 | Did not deliver |
| Mathias Jensen | 6 | 235 | 0 | 0 | Did not deliver |
| Dennis Eckert | 9 | 211 | 0 | 0 | Did not deliver |
Eibar (4 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Pablo De Blasis | 23 | 1516 | 2 | 0 | Did not deliver |
| Sergio Álvarez | 19 | 1072 | 0 | 0 | Did not deliver |
| Marc Cardona | 16 | 598 | 3 | 1 | Below expectations |
| Pedro Bigas | 10 | 584 | 0 | 1 | Below expectations |
Espanyol (4 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Borja Iglesias | 37 | 3081 | 17 | 3 | Excellent |
| Roberto Rosales | 21 | 1751 | 3 | 1 | Good |
| Facundo Ferreyra | 9 | 204 | 1 | 0 | Did not deliver |
| Alfa Semedo * | 3 | 42 | 0 | 0 | Investment |
Getafe (12 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| David Soria | 37 | 3330 | 0 | 0 | Good |
| Nemanja Maksimović | 36 | 3211 | 1 | 0 | Fair |
| Jaime Mata | 34 | 2436 | 14 | 6 | Excellent |
| Dimitri Foulquier | 25 | 1809 | 3 | 2 | Fair |
| Sebastián Cristóforo | 15 | 457 | 0 | 2 | Below expectations |
| Ignasi Miquel | 7 | 317 | 0 | 0 | Did not deliver |
| Samu Sáiz | 10 | 302 | 1 | 0 | Did not deliver |
| Iván Alejo | 4 | 146 | 0 | 0 | Did not deliver |
| Leandro Chichizola | 1 | 90 | 0 | 0 | Did not deliver |
| Robert Ibáñez | 7 | 75 | 0 | 0 | Did not deliver |
| Sergi Guardiola | 3 | 28 | 0 | 0 | Did not deliver |
| Oswaldo Alanís | 0 | 0 | 0 | 0 | Did not deliver |
Girona (4 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Raúl García | 10 | 854 | 0 | 1 | Fair |
| Patrick Roberts | 19 | 594 | 0 | 0 | Did not deliver |
| Seydou Doumbia | 17 | 535 | 2 | 0 | Did not deliver |
| Jairo Izquierdo González | 0 | 0 | 0 | 0 | Did not deliver |
Huesca (23 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Moi Gómez | 36 | 3061 | 2 | 7 | Good |
| Jorge Pulido | 32 | 2788 | 3 | 3 | Good |
| Xabier Etxeita | 31 | 2678 | 4 | 0 | Fair |
| Jorge Miramon | 30 | 2496 | 1 | 0 | Good |
| David Ferreiro | 35 | 2276 | 1 | 3 | Below expectations |
| Cucho Hernández | 34 | 2150 | 4 | 3 | Good |
| Ezequiel Ávila | 34 | 1997 | 10 | 2 | Excellent |
| Damián Musto | 24 | 1697 | 0 | 0 | Below expectations |
| Cristian Rivera | 22 | 1694 | 2 | 0 | Fair |
| Gonzalo Melero | 22 | 1346 | 2 | 1 | Did not deliver |
| Yangel Herrera | 16 | 1158 | 0 | 0 | Did not deliver |
| Carlos Akapo | 13 | 1012 | 0 | 0 | Did not deliver |
| Álex Gallar | 25 | 1002 | 4 | 1 | Below expectations |
| Ruben Semedo | 11 | 848 | 0 | 0 | Did not deliver |
| Pablo Insua | 10 | 779 | 0 | 0 | Did not deliver |
| Adrián Diéguez | 9 | 749 | 0 | 0 | Did not deliver |
| Martín Mantovani | 9 | 699 | 2 | 0 | Fair |
| Juanpi Añor | 14 | 672 | 2 | 2 | Fair |
| Samuele Longo | 15 | 551 | 1 | 2 | Below expectations |
| Axel Werner | 6 | 540 | 0 | 0 | Did not deliver |
| Luisinho | 7 | 509 | 0 | 0 | Did not deliver |
| Serdar Gürler | 13 | 479 | 0 | 1 | Did not deliver |
| Lluis Sastre | 4 | 117 | 0 | 0 | Did not deliver |
Leganes (15 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Jonathan Silva | 30 | 2700 | 3 | 6 | Excellent |
| Kenneth Omeruo | 28 | 2434 | 0 | 0 | Fair |
| Youssef En-Nesyri | 31 | 2104 | 9 | 2 | Excellent |
| Mikel Vesga | 26 | 2075 | 1 | 1 | Below expectations |
| Guido Carrillo | 32 | 1995 | 6 | 1 | Good |
| Allan Nyom | 23 | 1712 | 1 | 1 | Fair |
| Juanfran | 23 | 1471 | 1 | 1 | Good |
| Martin Braithwaite | 19 | 1407 | 4 | 5 | Good |
| Recio | 18 | 1291 | 0 | 0 | Did not deliver |
| Michael Santos | 16 | 555 | 1 | 3 | Below expectations |
| Diego Reyes | 6 | 319 | 0 | 0 | Below expectations |
| Sabin Merino | 12 | 292 | 0 | 0 | Did not deliver |
| Diego Rolán | 6 | 213 | 0 | 0 | Did not deliver |
| Daniel Ojeda | 5 | 192 | 0 | 0 | Did not deliver |
| José Manuel Arnáiz | 6 | 118 | 0 | 0 | Did not deliver |
Levante (7 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Borja Mayoral | 29 | 1614 | 3 | 2 | Fair |
| Aitor | 16 | 1440 | 0 | 0 | Fair |
| Rubén Vezo | 15 | 1340 | 2 | 1 | Good |
| Moses Simon | 19 | 779 | 1 | 1 | Did not deliver |
| Nikola Vukčević | 16 | 676 | 0 | 1 | Did not deliver |
| Sanjin Prcić | 10 | 533 | 0 | 0 | Did not deliver |
| Raphael Dwamena | 12 | 225 | 0 | 1 | Did not deliver |
Rayo Vallecano (21 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Álex Moreno | 36 | 3139 | 1 | 1 | Fair |
| Jordi Amat | 31 | 2764 | 0 | 0 | Below expectations |
| Luis Advíncula | 28 | 2391 | 1 | 3 | Fair |
| Abdoulaye Ba | 26 | 2111 | 1 | 0 | Fair |
| Santi Comesaña | 25 | 2032 | 1 | 1 | Below expectations |
| Stole Dimitrievski | 21 | 1890 | 0 | 0 | Below expectations |
| Oscar Trejo | 26 | 1779 | 1 | 4 | Fair |
| Álvaro García | 35 | 1763 | 4 | 2 | Fair |
| Giannelli Imbula | 22 | 1739 | 1 | 1 | Fair |
| Jose Pozo | 29 | 1617 | 3 | 0 | Below expectations |
| Alberto Garcia | 17 | 1530 | 0 | 0 | Did not deliver |
| Alejandro Gálvez | 17 | 1418 | 1 | 0 | Below expectations |
| Emiliano Velázquez | 18 | 1275 | 0 | 2 | Good |
| Álvaro Medrán | 21 | 1152 | 3 | 0 | Good |
| Mario Suárez | 14 | 1026 | 2 | 0 | Fair |
| Gaël Kakuta | 12 | 720 | 1 | 0 | Did not deliver |
| Uche Agbo | 6 | 372 | 0 | 0 | Did not deliver |
| Gorka Elustondo | 5 | 285 | 0 | 0 | Below expectations |
| Franco di Santo | 6 | 175 | 0 | 0 | Did not deliver |
| Álex Alegría | 9 | 132 | 0 | 0 | Did not deliver |
| Emiliano Armenteros | 0 | 0 | 0 | 0 | Did not deliver |
Real Betis (10 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Pau López | 33 | 2970 | 0 | 0 | Fair |
| Sergio Canales | 32 | 2658 | 7 | 2 | Excellent |
| Giovani Lo Celso | 32 | 2400 | 9 | 4 | Excellent |
| William Carvalho | 30 | 2386 | 0 | 5 | Good |
| Sidnei | 24 | 1743 | 1 | 0 | Below expectations |
| Jesé Rodríguez | 14 | 787 | 2 | 0 | Below expectations |
| Joel Robles | 5 | 450 | 0 | 0 | Fair |
| Takashi Inui | 8 | 377 | 0 | 0 | Did not deliver |
| Diego Lainez | 12 | 357 | 0 | 1 | Below expectations |
| Emerson | 6 | 317 | 0 | 0 | Did not deliver |
Real Madrid (5 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Thibaut Courtois | 27 | 2430 | 0 | 0 | Fair |
| Álvaro Odriozola | 14 | 1179 | 0 | 2 | Fair |
| Vinícius Júnior | 18 | 864 | 2 | 0 | Did not deliver |
| Brahim Díaz | 9 | 381 | 1 | 1 | Below expectations |
| Jorge De Frutos * | 0 | 0 | 0 | 0 | Investment |
Real Sociedad (4 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Mikel Merino | 29 | 2060 | 3 | 3 | Good |
| Theo Hernández | 24 | 1976 | 1 | 2 | Fair |
| Sandro Ramírez | 24 | 1055 | 0 | 0 | Below expectations |
| Robin Le Normand | 4 | 283 | 0 | 1 | Fair |
Sevilla (10 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Tomáš Vaclík | 33 | 2970 | 0 | 0 | Fair |
| Sergi Gómez | 32 | 2766 | 0 | 0 | Good |
| André Silva | 27 | 2163 | 9 | 0 | Excellent |
| Munir El Haddadi | 16 | 1044 | 5 | 1 | Good |
| Ibrahim Amadou | 17 | 757 | 0 | 0 | Did not deliver |
| Maximilian Wöber | 7 | 536 | 0 | 0 | Below expectations |
| Maxime Gonalons | 10 | 536 | 0 | 0 | Did not deliver |
| Aleix Vidal | 11 | 526 | 0 | 0 | Did not deliver |
| Joris Gnagnon | 7 | 444 | 0 | 0 | Below expectations |
| Marko Rog | 10 | 354 | 0 | 0 | Did not deliver |
Valencia (7 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Daniel Wass | 32 | 2355 | 1 | 3 | Good |
| Cristiano Piccini | 23 | 1868 | 1 | 0 | Fair |
| Kévin Gameiro | 33 | 1605 | 6 | 1 | Good |
| Mouctar Diakhaby | 22 | 1574 | 2 | 0 | Fair |
| Facundo Roncaglia | 7 | 603 | 0 | 0 | Fair |
| Michy Batshuayi | 15 | 519 | 1 | 0 | Below expectations |
| Rubén Sobrino | 4 | 192 | 0 | 0 | Did not deliver |
Valladolid (21 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Jordi Masip | 34 | 3060 | 0 | 0 | Fair |
| Nacho Martinez | 34 | 3060 | 1 | 3 | Excellent |
| Kiko Olivas | 34 | 3012 | 0 | 0 | Good |
| Ruben Alcaraz | 33 | 2888 | 3 | 2 | Excellent |
| Oscar Plano | 32 | 2606 | 3 | 4 | Good |
| Míchel Herrero | 34 | 2492 | 1 | 2 | Fair |
| Enes Ünal | 32 | 2125 | 6 | 3 | Fair |
| Javi Moyano | 26 | 2024 | 0 | 0 | Did not deliver |
| Keko | 25 | 1478 | 2 | 1 | Below expectations |
| Sergi Guardiola | 16 | 1426 | 2 | 1 | Good |
| Joaquin Fernandez | 13 | 844 | 1 | 0 | Below expectations |
| Duje Čop | 18 | 686 | 0 | 0 | Did not deliver |
| Daniele Verde | 21 | 620 | 1 | 0 | Below expectations |
| Leonardo Suárez | 12 | 519 | 2 | 0 | Did not deliver |
| Yoel Rodríguez | 3 | 270 | 0 | 0 | Did not deliver |
| Pablo Hervias | 3 | 161 | 0 | 0 | Did not deliver |
| Ivi | 3 | 17 | 0 | 0 | Did not deliver |
| Hacen | 1 | 9 | 0 | 0 | Did not deliver |
| Diego Barrios | 0 | 0 | 0 | 0 | Did not deliver |
| Lukas Rotpuller | 0 | 0 | 0 | 0 | Did not deliver |
| Javier Ontiveros | 0 | 0 | 0 | 0 | Did not deliver |
Villarreal (8 signings)
| Player | Matches | Minutes | Goals | Assists | Rating |
|---|
| Santi Cazorla | 35 | 2651 | 4 | 10 | Excellent |
| Ramiro Funes Mori | 31 | 2628 | 2 | 1 | Fair |
| Gerard Moreno | 35 | 2324 | 8 | 1 | Good |
| Karl Toko Ekambi | 34 | 2148 | 10 | 1 | Excellent |
| Vicente Iborra | 19 | 1667 | 3 | 1 | Good |
| Santiago Cáseres | 23 | 1588 | 0 | 1 | Fair |
| Miguel Layún | 8 | 505 | 0 | 1 | Fair |
| Manuel Iturra | 3 | 79 | 0 | 0 | Did not deliver |