

Last 5rating per match
Form, 12 monthsaverage rating per month
Club matchesNice
Key statsLigue 1
xG — expected goals: the quality of the chances taken; xA — expected assists: the quality of the chances created. Values per 90 minutes are shown under the totals. Rank: place among defenders — Ligue 1, season 26/27. What xG, npxG, xA and xGChain mean
Player profileattributes and traits
Player Position average
Strengths
No outstanding strengths
Weaknesses
No outstanding weaknesses
Player positions: ML · DL
Positions on the pitch
Percentiles per 90per 90 minutes vs positional peers of the league
AttackingPer 90 · Percentile
PlaymakingPer 90 · Percentile
DefendingPer 90 · Percentile
What a percentile means
The percentile shows what share of players of the same position in this league the player beats on a per-90-minute metric. 90% — better than nine out of ten peers; 50% — the league median. Per 90 minutes removes the effect of playing time.
For fouls, offsides, being dribbled past and goals conceded the scale is inverted: a higher percentile means fewer of them.
vs 55 defenders · Ligue 1 · season 26/27 · min 270′ · player 403′
Similar playersLigue 1 · defenders · season 26/27
Rafik MessaliToulouse · Defender - Right-BackRating0G0A23age81%
Bradley LockoStade Brestois · Defender - Left-BackRating0G0A24age80%
Matthieu UdolLens · Defender - Left-BackRating2G0A30age80%DDjibril OuziadLe Havre U19 · Defender - Right-BackRating0G0A17age77%
Romain PerraudLille · Defender - Left-BackRating0G0A28age77%
Noa BoisséLe Mans FC · Defender - Centre-BackRating0G0A20ageProfile match = 100 − mean gap of per-90 percentiles across 28 metrics of this position; players of the same league, position group and season with at least 270 minutes.
Availability
Season statsSeason 26/27
| Competition | Team | Season | Apps | Min | Rating | G | A | G+A | YC | RC |
|---|---|---|---|---|---|---|---|---|---|---|
Ligue 1 | Nice | 26/27 | 5 | 403 | 7.02 | — | — | 0 | 1 | — |
Transfers19
| Date | Season | From | To | Fee | Market value |
|---|---|---|---|---|---|
| 30/06/2027 | 26/27 | Nice | Frankfurt | End of loan | €2.60m |
| 01/09/2026 | 26/27 | Frankfurt | Nice | loan transfer | €2.60m |
| 30/06/2026 | 25/26 | Torino | Frankfurt | End of loan | €2.60m |
| 01/09/2025 | 25/26 | Frankfurt | Torino | Loan fee:€500k | €3.50m |
| 01/09/2023 | 23/24 | Saint-Étienne | Frankfurt | €7.50m | €5.00m |
| 01/07/2023 | 23/24 | Everton | Saint-Étienne | €2.00m | €5.00m |
| 30/06/2023 | 22/23 | Saint-Étienne | Everton | End of loan | €5.00m |
| 14/01/2023 | 22/23 | Everton | Saint-Étienne | loan transfer | €2.50m |
| 13/01/2023 | 22/23 | Cardiff | Everton | End of loan | €2.50m |
| 27/08/2022 | 22/23 | Everton | Cardiff | loan transfer | €2.20m |
| 30/06/2022 | 21/22 | Standard Liège | Everton | End of loan | €2.20m |
| 31/08/2021 | 21/22 | Everton | Standard Liège | loan transfer | €3.00m |
| 02/07/2020 | 20/21 | Marseille B | Everton | €270k | - |
| 01/07/2018 | 18/19 | Marseille U19 | Marseille B | - | - |
| 01/11/2017 | 17/18 | Stade Brest U19 | Marseille U19 | free transfer | - |
| 01/07/2017 | 17/18 | Entente SSG U17 | Stade Brest U19 | free transfer | - |
| 01/07/2016 | 16/17 | Cergy FC U17 | Entente SSG U17 | free transfer | - |
| 01/01/2016 | 15/16 | FC Rouen U17 | Cergy FC U17 | free transfer | - |
| 01/07/2015 | 15/16 | Cergy FC Jugend | FC Rouen U17 | free transfer | - |
Market value
Value history
| Date | Age | Club | Value |
|---|---|---|---|
| 30/07/2020 | 19 | Everton FC | €500k |
| 13/10/2020 | 19 | Everton FC | €3.00m |
| 18/03/2021 | 20 | Everton FC | €3.00m |
| 08/06/2021 | 20 | Everton FC | €3.00m |
| 06/01/2022 | 21 | Standard Liège | €3.00m |
| 12/04/2022 | 21 | Standard Liège | €2.20m |
| 27/10/2022 | 21 | Cardiff City | €2.50m |
| 06/04/2023 | 22 | AS Saint-Étienne | €3.00m |
| 16/06/2023 | 22 | AS Saint-Étienne | €5.00m |
| 18/10/2023 | 22 | Eintracht Frankfurt | €7.50m |
| 14/12/2023 | 23 | Eintracht Frankfurt | €6.00m |
| 27/03/2024 | 23 | Eintracht Frankfurt | €7.50m |
| 29/05/2024 | 23 | Eintracht Frankfurt | €7.50m |
| 20/12/2024 | 24 | Eintracht Frankfurt | €6.00m |
| 27/03/2025 | 24 | Eintracht Frankfurt | €5.00m |
| 05/06/2025 | 24 | Eintracht Frankfurt | €3.50m |
| 23/12/2025 | 25 | Torino FC | €3.50m |
| 29/05/2026 | 25 | Torino FC | €2.60m |
xG Statisticsall seasons
| Season | League | Club | Apps | Min | G | xG | npxG | A | xA | Sh | KP | xGChain |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026 | Ligue 1 | Nice | 1 | 74 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
What xG, npxG, xA and xGChain mean
xGExpected goals- How many goals an average finisher would score from the same shots. A 0.30 xG shot goes in about 3 times in 10. Goals above xG mean efficient finishing; below — a cold streak or poor finishing.
npxGNon-penalty xG- The same xG without penalties. A penalty alone is worth about 0.76 xG, so npxG is a cleaner view of open-play and set-piece chances.
xAExpected assists- The xG of the shots that followed the player's passes. High xA with few assists means teammates missed good chances.
xGChainxG chain- Team xG from every possession the player touched. It shows involvement in build-up, not only the shot or the final pass, so a deep midfielder can rank high without scoring.
KPKey passes- Passes that led directly to a shot — the volume behind xA.
Teammatessame club
Ali AbdiDefender - Left-Back32age€2.00mvalue
Antoine MendyDefender - Centre-Back22age€10.00mvalue
Axel WitselMidfield - Defensive Midfield37age€1.20mvalue
Djibril CoulibalyMidfield - Central Midfield17age€1.00mvalue
Elye WahiAttack - Centre-Forward23age€18.00mvalue
EvertonMidfield - Defensive Midfield19age€2.00mvalue
Gauthier HeinAttack - Right Winger30age€5.00mvalue
Hamza KoutouneDefender - Right-Back19age€150kvalue
Ligue 1
Stade Brestois 29
Lyon
Strasbourg
Lille
Auxerre
Ligue 1
Frankfurt
Torino
Saint-Étienne
Everton
Cardiff
Standard Liège
Marseille B
FC Rouen U17
Cardiff City