Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| The New Saints | 2024/25 | 32 | 18 | — |
| Walsall | 2018/19 – 2023/24 | 28 | 3 | 1 |
| Crawley | 2021/22 – 2023/24 | 46 | 9 | 2 |
| Salford | 2021/22 | 14 | 2 | — |
| QPR | 2017/18 – 2020/21 | 21 | 2 | — |
| Colchester | 2020/21 | 13 | 1 | 1 |
| Stevenage | 2020/21 | 16 | 4 | 1 |
| Bradford | 2019/20 | 22 | 4 | 2 |
| Tottenham Hotspur U23 | 2016 | 1 | 0 | — |
| Tottenham Hotspur U18 | 2016 | 9 | 4 | — |
| Tottenham Hotspur U19 | 2016 | 1 | 0 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 24 Jul 2023 | Crawley Town | Walsall | Free |
| 4 Feb 2022 | Salford City | Crawley Town | — |
| 23 Sept 2021 | QPR | Salford City | Free |
| 1 Jul 2021 | Colchester | QPR | — |
| 19 Jan 2021 | QPR | Colchester | Loan |
| 16 Oct 2020 | QPR | Stevenage | Loan |
| 1 Feb 2020 | Bradford | QPR | — |
| 2 Sept 2019 | QPR | Bradford | Loan |
| 1 Jul 2019 | Walsall | QPR | — |
| 30 Jan 2019 | QPR | Walsall | Loan |
| 11 Nov 2025 | The New Saints | Oteh Aramide | Free agent |
| 25 Dec 2025 | The New Saints | Braintree | Free agent |
| 11 Nov 2025 | The New Saints | Braintree | Free agent |
| 6 Feb 2026 | Braintree | Dagenham & Redbridge | Free agent |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2024/25 | Premier League | The New Saints | 27 | 18 | 1489 | 13 | — | 4 | 0 | — |
| 2024/25 | Welsh Cup | The New Saints | 3 | 1 | 126 | 2 | — | 0 | 0 | — |
| 2024/25 | League Cup | The New Saints | 2 | 2 | 157 | 3 | — | 0 | 0 | — |
| 2023/24 | League Two | Walsall | 13 | 4 | 576 | 2 | — | 1 | 0 | 6.56 |
| 2023/24 | League Cup | Walsall | 1 | 0 | 22 | 0 | 1 | 0 | 0 | 7.00 |
| 2023/24 | EFL Trophy | Walsall | 1 | 1 | 66 | 0 | — | 0 | 0 | — |
| 2022/23 | League Two | Crawley | 33 | 24 | 1550 | 5 | 2 | 4 | 0 | 6.73 |
| 2022/23 | League Cup | Crawley | 2 | 1 | 94 | 0 | — | 0 | 0 | 6.70 |
| 2022/23 | EFL Trophy | Crawley | 2 | 1 | 69 | 2 | — | 0 | 0 | — |
| 2022/23 | FA Cup | Crawley | 1 | 0 | 44 | 0 | — | 0 | 0 | — |
| 2021/22 | League Two | Crawley | 8 | 5 | 363 | 2 | — | 1 | 0 | 6.72 |
| 2021/22 | League Two | Salford | 10 | 3 | 273 | 1 | — | 0 | 0 | 6.72 |
| 2021/22 | EFL Trophy | Salford | 2 | 2 | 180 | 1 | — | 0 | 0 | 7.20 |
| 2021/22 | FA Cup | Salford | 2 | 1 | 73 | 0 | — | 0 | 0 | 6.70 |
| 2020/21 | League Two | Colchester | 13 | 4 | 447 | 1 | 1 | 1 | 0 | 6.57 |
| 2020/21 | League Two | Stevenage | 13 | 7 | 677 | 4 | 1 | 3 | 0 | 6.57 |
| 2020/21 | FA Cup | Stevenage | 3 | 1 | 167 | 0 | — | 0 | 0 | 6.30 |
| 2020/21 | League Cup | QPR | 1 | 1 | 77 | 0 | — | 0 | 0 | 6.90 |
| 2019/20 | Championship | QPR | 9 | 1 | 181 | 0 | — | 0 | 0 | 6.59 |
| 2019/20 | League Two | Bradford | 18 | 8 | 842 | 3 | 2 | 3 | 0 | 6.62 |
| 2019/20 | FA Cup | Bradford | 2 | 2 | 167 | 1 | — | 0 | 0 | — |
| 2019/20 | EFL Trophy | Bradford | 2 | 2 | 136 | 0 | — | 0 | 0 | — |
| 2018/19 | League One | Walsall | 13 | 4 | 355 | 1 | — | 1 | 0 | — |
| 2018/19 | Championship | QPR | 2 | 0 | 6 | 0 | — | 0 | 0 | 6.70 |
| 2018/19 | League Cup | QPR | 1 | 0 | 13 | 0 | — | 0 | 0 | — |
| 2018/19 | FA Cup | QPR | 2 | 2 | 148 | 1 | — | 0 | 0 | — |
| 2017/18 | Championship | QPR | 6 | 3 | 245 | 1 | — | 0 | 0 | 6.68 |
| 2016 | Premier League 2 | Tottenham Hotspur U23 | 1 | 0 | 1 | 0 | — | 0 | 0 | — |
| 2016 | U18 Premier League | Tottenham Hotspur U18 | 9 | 5 | 522 | 4 | — | 1 | 0 | — |
| 2016 | UEFA Youth League | Tottenham Hotspur U19 | 1 | 0 | 5 | 0 | — | 0 | 0 | — |
Availability history
No injuries or suspensions recorded.
Trophies
No trophies recorded.
