Ligue 1 xG leaders 2025/2026
Every Ligue 1 player ranked on the expected goals of the chances he took, with how many shots that took, what the average one was worth and the goals that came of them.
Esteban Lepaul has taken the best chances in the competition, 16.01 expected goals from 2702 minutes.
Showing 101–150 of 600 players
| # | Player | Club | Min | Shots | xG | npxG | xG/shot | xG/90 | G |
|---|---|---|---|---|---|---|---|---|---|
| 101 | Goduine Koyalipou | Angers | 675 | 22 | 2.69 | 1.87 | 0.12 | 0.36 | 2 |
| 102 | Afonso Moreira | Olympique Lyonnais | 1,724 | 40 | 2.67 | 2.67 | 0.07 | 0.14 | 4 |
| 103 | João Neves | Paris Saint-Germain | 1,287 | 27 | 2.62 | 2.62 | 0.10 | 0.18 | 5 |
| 104 | Abdoul Ouattara | RC Strasbourg | 1,775 | 27 | 2.53 | 2.53 | 0.09 | 0.13 | 2 |
| 105 | Mohamed Bamba | Lorient | 686 | 13 | 2.49 | 1.67 | 0.19 | 0.33 | 1 |
| 106 | Yassin Belkhdim | Angers | 2,149 | 33 | 2.42 | 2.42 | 0.07 | 0.10 | 2 |
| 107 | Robinio Vaz | Olympique de Marseille | 393 | 8 | 2.39 | 2.39 | 0.30 | 0.55 | 4 |
| 107 | Fodé Doucouré | Le Havre | 1,243 | 20 | 2.39 | 2.39 | 0.12 | 0.17 | 3 |
| 107 | Ainsley Maitland-Niles | Olympique Lyonnais | 2,485 | 14 | 2.39 | 1.57 | 0.17 | 0.09 | 1 |
| 110 | Vincent Marchetti | Paris FC | 840 | 24 | 2.37 | 2.37 | 0.10 | 0.25 | 2 |
| 111 | Morgan Sanson | Nice | 1,955 | 20 | 2.36 | 2.36 | 0.12 | 0.11 | 0 |
| 112 | Tanner Tessmann | Olympique Lyonnais | 1,960 | 26 | 2.32 | 2.32 | 0.09 | 0.11 | 1 |
| 113 | Ali Abdi | Nice | 1,210 | 16 | 2.31 | 2.31 | 0.14 | 0.17 | 3 |
| 113 | Achraf Hakimi | Paris Saint-Germain | 1,375 | 27 | 2.31 | 2.31 | 0.09 | 0.15 | 2 |
| 115 | Hamed Junior Traorè | Olympique de Marseille | 619 | 13 | 2.30 | 2.30 | 0.18 | 0.33 | 2 |
| 116 | Leonardo Balerdi | Olympique de Marseille | 1,998 | 20 | 2.22 | 2.22 | 0.11 | 0.10 | 0 |
| 117 | Himad Abdelli | Olympique de Marseille | 1,096 | 15 | 2.21 | 0.57 | 0.15 | 0.18 | 2 |
| 118 | Romain Perraud | Lille | 2,253 | 33 | 2.19 | 2.19 | 0.07 | 0.09 | 3 |
| 119 | Ismaelo Ganiou | RC Lens | 2,014 | 22 | 2.15 | 2.15 | 0.10 | 0.10 | 3 |
| 120 | Roman Yaremchuk | Olympique Lyonnais | 561 | 16 | 2.12 | 2.12 | 0.13 | 0.34 | 4 |
| 121 | Timothy Weah | Olympique de Marseille | 2,263 | 29 | 2.07 | 2.07 | 0.07 | 0.08 | 2 |
| 122 | Guéla Doué | RC Strasbourg | 2,063 | 12 | 2.05 | 2.05 | 0.17 | 0.09 | 2 |
| 123 | Sinaly Diomandé | Auxerre | 2,134 | 9 | 2.03 | 2.03 | 0.23 | 0.09 | 2 |
| 123 | Adama Camara | Paris FC | 2,171 | 18 | 2.03 | 2.03 | 0.11 | 0.08 | 1 |
| 123 | Nicolas Cozza | Nantes | 2,303 | 12 | 2.03 | 2.03 | 0.17 | 0.08 | 0 |
| 126 | Kevin Carlos Omoruyi | Nice | 901 | 22 | 2.01 | 2.01 | 0.09 | 0.20 | 0 |
| 126 | Lamine Camara | AS Monaco | 1,851 | 25 | 2.01 | 2.01 | 0.08 | 0.10 | 3 |
| 126 | Antoine Mendy | Nice | 2,278 | 18 | 2.01 | 2.01 | 0.11 | 0.08 | 1 |
| 129 | Luca Koleosho | Paris FC | 543 | 17 | 2.00 | 2.00 | 0.12 | 0.33 | 3 |
| 129 | Ngal'ayel Mukau | Lille | 1,566 | 20 | 2.00 | 2.00 | 0.10 | 0.11 | 1 |
| 131 | Lanroy Machine | Angers | 516 | 15 | 1.98 | 1.98 | 0.13 | 0.35 | 1 |
| 132 | Ibrahim Osman | Auxerre | 630 | 18 | 1.97 | 1.97 | 0.11 | 0.28 | 0 |
| 133 | Simon Adingra | AS Monaco | 868 | 22 | 1.94 | 1.94 | 0.09 | 0.20 | 3 |
| 134 | Diego Moreira | RC Strasbourg | 2,042 | 29 | 1.90 | 1.90 | 0.07 | 0.08 | 4 |
| 134 | Jean-Philippe Gbamin | Metz | 2,488 | 14 | 1.90 | 1.90 | 0.14 | 0.07 | 1 |
| 136 | Isak Jansson | Nice | 683 | 17 | 1.89 | 1.89 | 0.11 | 0.25 | 1 |
| 137 | Noah Cadiou | Lorient | 1,881 | 19 | 1.87 | 1.87 | 0.10 | 0.09 | 3 |
| 138 | Ciro Immobile | Paris FC | 711 | 15 | 1.84 | 1.84 | 0.12 | 0.23 | 2 |
| 139 | Martín Satriano | Olympique Lyonnais | 703 | 16 | 1.81 | 1.81 | 0.11 | 0.23 | 2 |
| 140 | Bahereba Guirassy | Nantes | 827 | 15 | 1.80 | 1.80 | 0.12 | 0.20 | 2 |
| 141 | Julian Vignolo | Toulouse | 207 | 8 | 1.79 | 1.79 | 0.22 | 0.78 | 2 |
| 141 | Théo Le Bris | Lorient | 1,899 | 17 | 1.79 | 1.79 | 0.11 | 0.08 | 2 |
| 141 | Kévin Danois | Auxerre | 2,835 | 25 | 1.79 | 1.79 | 0.07 | 0.06 | 3 |
| 144 | Samir Chergui | Paris FC | 1,155 | 13 | 1.76 | 1.76 | 0.14 | 0.14 | 1 |
| 144 | Cristian Cásseres Jr. | Toulouse | 2,499 | 26 | 1.76 | 0.94 | 0.07 | 0.06 | 2 |
| 146 | Bouna Sarr | Metz | 897 | 15 | 1.75 | 1.75 | 0.12 | 0.18 | 0 |
| 147 | Dehmaine Tabibou | Nantes | 1,282 | 29 | 1.72 | 1.72 | 0.06 | 0.12 | 1 |
| 148 | Thilo Kehrer | AS Monaco | 2,358 | 16 | 1.70 | 1.70 | 0.11 | 0.06 | 0 |
| 149 | Simon Ebonog | Le Havre | 1,778 | 22 | 1.69 | 1.69 | 0.08 | 0.09 | 1 |
| 149 | Samson Baidoo | RC Lens | 1,832 | 17 | 1.69 | 1.69 | 0.10 | 0.08 | 2 |
- goals 2+ above xG
- under 90 minutes
About these figures What each column counts, and which feed it was counted from. Show Hide
- Min
- Minutes played.
- Shots
- Shots he has taken in this competition this season.
- xG
- Expected goals: the quality of the chances he took, summed.
- npxG
- Expected goals with penalties taken out.
- xG/shot
- Expected goals per shot taken — the average chance he gets on the end of. Shown from 5 shots.
- xG/90
- Expected goals per 90 minutes played.
- G
- Goals scored, penalties included.
Appearances, minutes, goals, assists and shots on this page are summed over the Ligue 1 matches we hold per-player figures for — the same matches the expected figures are summed over, so the two can be read against each other.
Learn how xgEdge calculates these figures →