Attacking · Feyenoord · season-by-season, by competition, and every match.
A career still climbing — Hadj-Moussa is at his peak right now, and the curve hasn't flattened.
The record covers 3 seasons (2023/24–2025/26) across 2 clubs — 77 appearances, 20 goals and 13 assists.
His best campaign on record is 2025/26 at Feyenoord — Season rating 61, 11 goals and 6 assists in 30 games. 2024/25 was the leap — Season rating up 24 points at Feyenoord. Form is on a climb — up 45 Season points across his last 3 full seasons.
A streaky profile — form has swung hard between campaigns (spread of ±18 points), so the peak and the trough are far apart.
| Season | Club | Apps | G | A | Rating | Season |
|---|---|---|---|---|---|---|
| 2025/26 | Feyenoord | 30 | 11 | 6 | 81 | 61 |
| 2024/25 | Feyenoord | 33 | 8 | 3 | 75 | 39 |
| 2023/24 | Patro Eisden | 13 | 1 | 0 | 42 | 6 |
| 2023/24 | Vitesse | 14 | 1 | 4 | 60 | 15 |
| Competition | Apps | Min | G | A | Rating |
|---|---|---|---|---|---|
| Eredivisie | 30 | 2553 | 11 | 6 | 7.5 |
| UEFA Europa League | 8 | 620 | 2 | 1 | 7.1 |
| Africa Cup of Nations | 4 | 182 | 0 | 2 | 6.8 |
| UEFA Champions League | 2 | 180 | 1 | 0 | 7.7 |
| Friendlies Clubs | 1 | 90 | 0 | 0 | 7.0 |
| Africa Cup of Nations Qualification | 1 | 0 | 0 | 0 | — |
| Friendlies | 3 | 0 | 0 | 0 | — |
| Date | Competition | Opponent | Res | Status | Min | G | A | Rating |
|---|---|---|---|---|---|---|---|---|
| Jan 6 | Friendlies Clubs | A Fortuna Düsseldorf | 1-0 | Not in squad | — | |||
| Jul 5 | Friendlies Clubs | A Cambuur | 4-1 | Not in squad | — | |||
| Jul 12 | Friendlies Clubs | H Union St. Gilloise | 1-1 | Not in squad | — | |||
| Jul 19 | Friendlies Clubs | H Gent | 1-2 | Not in squad | — | |||
| Jul 26 | Friendlies Clubs | H Nice | 1-2 | Not in squad | — | |||
| Jul 26 | Friendlies Clubs | A FC Liefering | 0-2 | Not in squad | — | |||
| Aug 2 | Friendlies Clubs | H VfL Wolfsburg | 4-0 | Not in squad | — | |||
| Aug 6 | UEFA Champions League | H Fenerbahçe | 2-1 | Played | 90 | 1 | 8.3 | |
| Aug 9 | Eredivisie | H NAC Breda | 2-0 | Played | 90 | 7.7 | ||
| Aug 12 | UEFA Champions League | A Fenerbahçe | 2-5 | Played | 90 | 7.0 | ||
| Aug 16 | Eredivisie | A Excelsior | 2-1 | Played | 88 | 6.3 | ||
| Aug 31 | Eredivisie | A Sparta Rotterdam | 4-0 | Played | 76 | 7.2 | ||
| Sep 13 | Eredivisie | H Heerenveen | 1-0 | Played | 57 | 1 | 6.9 | |
| Sep 17 | Eredivisie | H Fortuna Sittard | 2-0 | Suspended | — | |||
| Sep 21 | Eredivisie | A AZ Alkmaar | 3-3 | Played | 84 | 1 | 7.9 | |
| Sep 24 | UEFA Europa League | A SC Braga | 0-1 | Played | 9 | 6.2 | ||
| Sep 28 | Eredivisie | A Groningen | 1-0 | Played | 90 | 7.2 | ||
| Oct 2 | UEFA Europa League | H Aston Villa | 0-2 | Played | 90 | 7.3 | ||
| Oct 5 | Eredivisie | H Utrecht | 3-2 | Played | 90 | 6.6 | ||
| Oct 19 | Eredivisie | A Heracles | 7-0 | Played | 71 | 2 | 1 | 10.0 |
| Oct 23 | UEFA Europa League | H Panathinaikos | 3-1 | Played | 90 | 1 | 7.9 | |
| Oct 26 | Eredivisie | H PSV Eindhoven | 2-3 | Played | 90 | 6.6 | ||
| Nov 1 | Eredivisie | H FC Volendam | 3-1 | Played | 87 | 7.9 | ||
| Nov 6 | UEFA Europa League | A VfB Stuttgart | 0-2 | Played | 90 | 7.5 | ||
| Nov 9 | Eredivisie | A GO Ahead Eagles | 1-2 | Played | 90 | 6.9 | ||
| Nov 23 | Eredivisie | H NEC Nijmegen | 2-4 | Played | 76 | 1 | 6.9 | |
| Nov 27 | UEFA Europa League | H Celtic | 1-3 | Played | 90 | 7.0 | ||
| Nov 30 | Eredivisie | A Telstar | 2-1 | Played | 90 | 1 | 1 | 8.7 |
| Dec 6 | Eredivisie | H PEC Zwolle | 6-1 | Played | 90 | 7.3 | ||
| Dec 11 | UEFA Europa League | A FCSB | 3-4 | Played | 90 | 6.9 | ||
| Dec 14 | Eredivisie | A Ajax | 0-2 | Played | 90 | 6.6 | ||
| Dec 17 | KNVB Beker | H Heerenveen | 2-3 | Not in squad | — | |||
| Dec 21 | Eredivisie | H Twente | 1-1 | International duty | — | |||
| Jan 11 | Eredivisie | A Heerenveen | 2-2 | Not in squad | — | |||
| Jan 18 | Eredivisie | H Sparta Rotterdam | 3-4 | Played | 90 | 8.6 | ||
| Jan 22 | UEFA Europa League | H Sturm Graz | 3-0 | Played | 71 | 1 | 1 | 7.9 |
| Jan 25 | Eredivisie | H Heracles | 4-2 | Played | 90 | 1 | 1 | 9.9 |
| Jan 29 | UEFA Europa League | A Real Betis | 1-2 | Played | 90 | 6.0 | ||
| Feb 1 | Eredivisie | A PSV Eindhoven | 0-3 | Played | 45 | 5.7 | ||
| Feb 8 | Eredivisie | A Utrecht | 1-0 | Played | 90 | 6.6 | ||
| Feb 15 | Eredivisie | H GO Ahead Eagles | 1-0 | Played | 90 | 7.2 | ||
| Feb 22 | Eredivisie | H Telstar | 2-1 | Played | 90 | 2 | 9.2 | |
| Mar 1 | Eredivisie | A Twente | 0-2 | Played | 80 | 6.9 | ||
| Mar 8 | Eredivisie | A NAC Breda | 3-3 | Played | 90 | 1 | 8.0 | |
| Mar 15 | Eredivisie | H Excelsior | 2-1 | Played | 90 | 6.3 | ||
| Mar 22 | Eredivisie | H Ajax | 1-1 | Played | 90 | 7.3 | ||
| Apr 5 | Eredivisie | A FC Volendam | 0-0 | Groin Injury | — | |||
| Apr 12 | Eredivisie | A NEC Nijmegen | 1-1 | Played | 89 | 1 | 7.3 | |
| Apr 25 | Eredivisie | H Groningen | 3-1 | Played | 90 | 6.2 | ||
| May 3 | Eredivisie | A Fortuna Sittard | 2-1 | Played | 90 | 6.7 | ||
| May 10 | Eredivisie | H AZ Alkmaar | 1-1 | Played | 90 | 1 | 7.5 | |
| May 17 | Eredivisie | A PEC Zwolle | 2-0 | Played | 90 | 2 | 10.0 |