Goalkeeper · PEC Zwolle · season-by-season, by competition, and every match.
Graaff is operating at his career peak — the 2025/26 level is the level.
The record covers 4 seasons (2022/23–2025/26) across 3 clubs — 124 appearances with 1 goal contributions as a goalkeeper.
His best campaign on record is 2025/26 at PEC Zwolle — Season rating 10, 0 goals and 0 assists in 36 games. Output has held steady across his last 3 full seasons (6 → 10).
Season-to-season output barely moves — his form has stayed within a tight band (±3 points) across 4 campaigns. Made the jump to a higher division in 2025/26 (Eredivisie) and kept playing — 36 games that season.
| Season | Club | Apps | G | A | Rating | Season |
|---|---|---|---|---|---|---|
| 2025/26 | PEC Zwolle | 36 | 0 | 0 | 73 | 10 |
| 2024/25 | Jong Utrecht | 22 | 0 | 0 | 51 | 2 |
| 2023/24 | Jong Ajax | 35 | 0 | 0 | 52 | 6 |
| 2022/23 | Jong Ajax | 31 | 0 | 1 | 54 | 2 |
| Competition | Apps | Min | G | A | Rating |
|---|---|---|---|---|---|
| Eredivisie | 31 | 2790 | 0 | 0 | 6.8 |
| Eredivisie | 5 | 450 | 0 | 0 | 7.2 |
| KNVB Beker | 2 | 180 | 0 | 0 | 6.6 |
| Date | Competition | Opponent | Res | Status | Min | G | A | Rating |
|---|---|---|---|---|---|---|---|---|
| Jul 26 | Friendlies Clubs | H Rayo Vallecano | 0-5 | Not in squad | — | |||
| Aug 2 | Friendlies Clubs | A Portsmouth | 0-1 | Not in squad | — | |||
| Aug 10 | Eredivisie | H Twente | 1-0 | Played | 90 | 8.0 | ||
| Aug 15 | Eredivisie | A Telstar | 2-0 | Played | 90 | 7.6 | ||
| Aug 31 | Eredivisie | H Utrecht | 0-2 | Played | 90 | 7.3 | ||
| Sep 13 | Eredivisie | A Ajax | 1-3 | Played | 90 | 6.3 | ||
| Sep 21 | Eredivisie | H GO Ahead Eagles | 0-2 | Played | 90 | 6.7 | ||
| Sep 24 | Eredivisie | A AZ Alkmaar | 2-2 | Played | 90 | 8.3 | ||
| Sep 27 | Eredivisie | A FC Volendam | 1-2 | Played | 90 | 6.2 | ||
| Oct 4 | Eredivisie | H PSV Eindhoven | 0-4 | Played | 90 | 5.9 | ||
| Oct 9 | Friendlies Clubs | A Heerenveen | 1-4 | Not in squad | — | |||
| Oct 18 | Eredivisie | A NAC Breda | 2-2 | Unused sub | 0 | — | ||
| Oct 25 | Eredivisie | H NEC Nijmegen | 2-2 | Unused sub | 0 | — | ||
| Oct 28 | KNVB Beker | A Helmond Sport | 4-1 | Played | 90 | 6.9 | ||
| Nov 2 | Eredivisie | A Heracles | 2-8 | Played | 90 | 5.3 | ||
| Nov 8 | Eredivisie | H Sparta Rotterdam | 1-0 | Played | 90 | 7.0 | ||
| Nov 23 | Eredivisie | A Groningen | 2-2 | Played | 90 | 7.9 | ||
| Nov 28 | Eredivisie | H Heerenveen | 2-1 | Played | 90 | 7.5 | ||
| Dec 3 | KNVB Beker | H AZ Alkmaar | 1-3 | Played | 90 | 6.3 | ||
| Dec 6 | Eredivisie | A Feyenoord | 1-6 | Played | 90 | 5.9 | ||
| Dec 13 | Eredivisie | H Fortuna Sittard | 1-0 | Played | 90 | 8.0 | ||
| Dec 20 | Eredivisie | A Excelsior | 1-2 | Played | 90 | 6.2 | ||
| Jan 10 | Eredivisie | A Twente | 1-1 | Played | 90 | 8.3 | ||
| Jan 17 | Eredivisie | H AZ Alkmaar | 3-1 | Played | 90 | 6.6 | ||
| Jan 24 | Eredivisie | A NEC Nijmegen | 1-2 | Played | 90 | 5.7 | ||
| Jan 31 | Eredivisie | H Telstar | 4-1 | Played | 90 | 8.2 | ||
| Feb 7 | Eredivisie | H FC Volendam | 1-2 | Played | 90 | 6.7 | ||
| Feb 15 | Eredivisie | A Heerenveen | 2-4 | Played | 90 | 5.6 | ||
| Feb 22 | Eredivisie | A Utrecht | 1-1 | Played | 90 | 6.9 | ||
| Mar 1 | Eredivisie | H Ajax | 0-0 | Played | 90 | 6.9 | ||
| Mar 8 | Eredivisie | A Sparta Rotterdam | 1-1 | Played | 90 | 7.9 | ||
| Mar 13 | Eredivisie | H Groningen | 1-1 | Played | 90 | 7.3 | ||
| Mar 21 | Eredivisie | H NAC Breda | 2-1 | Played | 90 | 6.6 | ||
| Apr 5 | Eredivisie | A GO Ahead Eagles | 0-5 | Played | 90 | 6.3 | ||
| Apr 12 | Eredivisie | H Excelsior | 2-2 | Played | 90 | 6.2 | ||
| Apr 23 | Eredivisie | A PSV Eindhoven | 1-6 | Played | 90 | 5.2 | ||
| May 3 | Eredivisie | H Heracles | 1-0 | Played | 90 | 7.0 | ||
| May 10 | Eredivisie | A Fortuna Sittard | 2-3 | Played | 90 | 6.0 | ||
| May 17 | Eredivisie | H Feyenoord | 0-2 | Unused sub | 0 | — |