Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Walsall | 2026/27 | 3 | 0 | 0 |
| Huddersfield | 2024/25 – 2025/26 | 91 | 7 | 11 |
| Bristol Rovers | 2021/22 – 2023/24 | 142 | 26 | 21 |
| Paderborn | 2019/20 – 2021/22 | 9 | 0 | 1 |
| Crewe | 2020/21 | 14 | 0 | — |
| Everton U23 | 2016 – 2019 | 49 | 14 | — |
| Everton U21 | 2017 – 2019 | 7 | 1 | — |
| Blackpool | 2018/19 | 12 | 0 | — |
| Morecambe | 2016/17 | 14 | 2 | — |
| Everton U18 | 2016 | 6 | 5 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 5 Jul 2024 | Bristol Rovers | Huddersfield | € 510K |
| 31 Aug 2021 | SC Paderborn 07 | Bristol Rovers | Free |
| 23 Jan 2021 | SC Paderborn 07 | Crewe | Loan |
| 19 Jan 2017 | Everton | Morecambe | Loan |
| 31 Aug 2026 | Huddersfield | Walsall | Loan |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | League Two | Walsall | 3 | 3 | 143 | 0 | 0 | 0 | 0 | 6.80 |
| 2025/26 | EFL Trophy | Huddersfield | 1 | 0 | 17 | 0 | 0 | 0 | 0 | 6.50 |
| 2025/26 | League One | Huddersfield | 8 | 3 | 248 | 0 | 2 | 0 | 0 | 6.34 |
| 2024/25 | League One | Huddersfield | 35 | 28 | 1963 | 2 | 5 | 7 | 0 | 6.96 |
| 2024/25 | FA Cup | Huddersfield | 43 | 38 | 2798 | 5 | 3 | 7 | 1 | 7.04 |
| 2024/25 | League Cup | Huddersfield | 2 | 1 | 85 | — | 1 | 1 | 0 | 7.70 |
| 2024/25 | EFL Trophy | Huddersfield | 2 | 1 | 93 | 0 | 0 | 0 | 0 | 6.85 |
| 2023/24 | League One | Bristol Rovers | 43 | 39 | 3386 | 6 | 6 | 11 | 0 | 7.20 |
| 2023/24 | FA Cup | Bristol Rovers | 4 | 4 | 360 | 2 | — | 0 | 0 | — |
| 2023/24 | League Cup | Bristol Rovers | 1 | 0 | 25 | 0 | — | 0 | 0 | 6.70 |
| 2023/24 | EFL Trophy | Bristol Rovers | 4 | 3 | 226 | 2 | — | 2 | 0 | 7.67 |
| 2022/23 | League One | Bristol Rovers | 43 | 38 | 2798 | 5 | 3 | 7 | 1 | 7.04 |
| 2022/23 | League Cup | Bristol Rovers | 1 | 1 | 90 | 0 | — | 1 | 0 | 7.20 |
| 2022/23 | EFL Trophy | Bristol Rovers | 5 | 3 | 321 | 0 | — | 0 | 0 | 7.17 |
| 2022/23 | FA Cup | Bristol Rovers | 2 | 2 | 126 | 0 | — | 0 | 0 | 6.90 |
| 2021/22 | League Two | Bristol Rovers | 35 | 34 | 2837 | 10 | 12 | 9 | 0 | 7.33 |
| 2021/22 | FA Cup | Bristol Rovers | 4 | 4 | 367 | 1 | — | 2 | 0 | — |
| 2020/21 | League One | Crewe | 14 | 6 | 638 | 0 | — | 1 | 0 | 6.96 |
| 2020/21 | 2. Bundesliga | Paderborn | 1 | 0 | 2 | 0 | — | 0 | 0 | — |
| 2020/21 | DFB Pokal | Paderborn | 1 | 0 | 9 | 0 | 1 | 0 | 0 | 7.20 |
| 2020/21 | Friendlies Clubs | Paderborn | 1 | 0 | 25 | 0 | — | 0 | 0 | — |
| 2019/20 | Bundesliga | Paderborn | 6 | 2 | 153 | 0 | — | 0 | 0 | 6.84 |
| 2019 | Premier League 2 | Everton U23 | 12 | 12 | 1080 | 4 | — | 1 | 0 | — |
| 2019 | EFL Trophy | Everton U21 | 3 | 3 | 255 | 1 | — | 0 | 0 | — |
| 2019 | Premier League International Cup | Everton U23 | 1 | 1 | 90 | 2 | — | 0 | 0 | — |
| 2018/19 | League One | Blackpool | 12 | 9 | 614 | 0 | — | 1 | 0 | — |
| 2018 | Premier League 2 | Everton U23 | 12 | 12 | 929 | 3 | — | 0 | 0 | — |
| 2018 | EFL Trophy | Everton U21 | 1 | 1 | 85 | 0 | — | 1 | 0 | — |
| 2018 | Premier League International Cup | Everton U23 | 2 | 1 | 113 | 0 | — | 0 | 0 | — |
| 2017 | Premier League 2 | Everton U23 | 16 | 14 | 1261 | 4 | — | 6 | 0 | — |
| 2017 | EFL Trophy | Everton U21 | 3 | 2 | 197 | 0 | — | 0 | 0 | — |
| 2017 | Premier League International Cup | Everton U23 | 2 | 1 | 134 | 0 | — | 0 | 0 | — |
| 2016/17 | League Two | Morecambe | 14 | 7 | 611 | 2 | — | 1 | 0 | — |
| 2016 | U18 Premier League | Everton U18 | 6 | 6 | 498 | 5 | — | 0 | 0 | — |
| 2016 | EFL Trophy | Everton U23 | 1 | 0 | 29 | 0 | — | 0 | 0 | — |
| 2016 | Premier League 2 | Everton U23 | 3 | 1 | 109 | 1 | — | 0 | 0 | — |
Availability history
| Reason | From | Until | Days |
|---|---|---|---|
| Knee Injury | 18 Jul 2025 | Ongoing | 463 |
Trophies
| Competition | Season | Place |
|---|---|---|
| Premier League 2 (England) | 2016/2017 | Winner |
