

Last 5rating per match
Form, 12 monthsaverage rating per month
Club matchesNice
Next matches
23 Oct · 19:45Ligue 1A
Stade Brestois 292.313.493.37PredictionOdds are 1X2 for the match; the club's outcome is highlighted. Prediction opens the full match preview.
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 forwards — Ligue 1, season 26/27. What xG, npxG, xA and xGChain mean
Player profileattributes and traits
Player Position average
Strengths
- Discipline
- Passing
Weaknesses
No outstanding weaknesses
Player positions: LW · AM
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 40 forwards · Ligue 1 · season 26/27 · min 270′ · player 288′
Similar playersLigue 1 · forwards · season 26/27
Gauthier HeinNice · Attack - Right WingerRating0G1A30age79%
Merwan IfnaouiTroyes · Attack - Right WingerRating0G0A27age77%
Amine HaritMarseille · Attack - Left WingerRating2G1A29age77%
Luca KoleoshoParis FC · Attack - Right WingerRating0G1A21age77%
Sota NakamuraLe Havre AC · Attack - Centre-ForwardRating0G1A23age76%
Kandet DiawaraTroyes · Attack - Left WingerRating0G1A26ageProfile match = 100 − mean gap of per-90 percentiles across 24 metrics of this position; players of the same league, position group and season with at least 270 minutes.
Reality checkactual vs expected, by season
Goals vs xG
-0.6Goals xG · total 8 / 8.6
Assists vs xA
-1.4Assists xA · total 3 / 4.4
Bars above xG mean the player scores more than the quality of his chances suggests; a long run below xG is usually a finishing problem, a short one — variance.
Availability
Morocco1 caps · 0 goalsSeason statsSeason 26/27
| Competition | Team | Season | Apps | Min | Rating | G | A | G+A | YC | RC |
|---|---|---|---|---|---|---|---|---|---|---|
Ligue 1 | Nice | 26/27 | 7 | 288 | 6.71 | — | 2 | 2 | 1 | — |
Transfers8
| Date | Season | From | To | Fee | Market value |
|---|---|---|---|---|---|
| 29/08/2022 | 22/23 | Monaco | Nice | €22.00m | €20.00m |
| 30/06/2020 | 19/20 | FC Sochaux | Monaco | End of loan | €2.70m |
| 17/09/2019 | 19/20 | Monaco | FC Sochaux | loan transfer | €5.00m |
| 01/07/2018 | 18/19 | Rennes B | Monaco | free transfer | - |
| 01/07/2017 | 17/18 | Rennes U19 | Rennes B | - | - |
| 01/07/2016 | 16/17 | Rennes U17 | Rennes U19 | - | - |
| 01/07/2015 | 15/16 | Chambray FC Jgd | Rennes U17 | free transfer | - |
| 01/07/2014 | 14/15 | Tours FC Jugend | Chambray FC Jgd | free transfer | - |
Market value
Value history
| Date | Age | Club | Value |
|---|---|---|---|
| 06/09/2018 | 18 | AS Monaco | €3.00m |
| 24/10/2018 | 18 | AS Monaco | €5.00m |
| 17/12/2018 | 18 | AS Monaco | €5.00m |
| 03/06/2019 | 18 | AS Monaco | €5.00m |
| 27/09/2019 | 19 | FC Sochaux-Montbéliard | €4.00m |
| 06/01/2020 | 19 | FC Sochaux-Montbéliard | €3.00m |
| 08/04/2020 | 19 | FC Sochaux-Montbéliard | €2.70m |
| 12/10/2020 | 20 | AS Monaco | €6.00m |
| 07/01/2021 | 20 | AS Monaco | €10.00m |
| 09/04/2021 | 20 | AS Monaco | €16.00m |
| 04/06/2021 | 20 | AS Monaco | €16.00m |
| 08/10/2021 | 21 | AS Monaco | €20.00m |
| 16/12/2021 | 21 | AS Monaco | €20.00m |
| 30/05/2022 | 21 | AS Monaco | €20.00m |
| 02/11/2022 | 22 | OGC Nice | €18.00m |
| 27/06/2023 | 23 | OGC Nice | €15.00m |
| 18/12/2023 | 23 | OGC Nice | €15.00m |
| 03/06/2024 | 23 | OGC Nice | €12.00m |
| 10/12/2024 | 24 | OGC Nice | €12.00m |
| 03/06/2025 | 24 | OGC Nice | €10.00m |
| 10/10/2025 | 25 | OGC Nice | €8.00m |
| 15/12/2025 | 25 | OGC Nice | €10.00m |
| 27/03/2026 | 25 | OGC Nice | €12.00m |
| 01/06/2026 | 25 | OGC Nice | €15.00m |
xG Statisticsall seasons
| Season | League | Club | Apps | Min | G | xG | npxG | A | xA | Sh | KP | xGChain |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026 | Ligue 1 | Nice | 3 | 238 | 0 | 0.42 | 0.42 | 1 | 0.83 | 2 | 8 | 1.39 |
| 2025 | Ligue 1 | Nice | 33 | 2191 | 8 | 8.18 | 6.66 | 2 | 3.58 | 54 | 36 | 13.85 |
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
Lyon
Strasbourg
Lille
Auxerre
Le Mans
Ligue 1
Monaco
FC Sochaux
Rennes B
AS Monaco