Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Newport | 2025/26 – 2026/27 | 53 | 1 | 3 |
| Haverfordwest County AFC | 2022/23 – 2024/25 | 102 | 7 | — |
| Aberystwyth Town | 2017/18 – 2021/22 | 99 | 6 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 1 Jul 2022 | Aberystwyth Town | Haverfordwest County AFC | — |
| 1 Jul 2025 | Haverfordwest County AFC | Newport County | Free Transfer |
| 29 Jun 2025 | Haverfordwest County AFC | Newport County | Free agent |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | League Cup | Newport | 1 | 1 | 100 | 0 | 0 | 0 | 0 | 7.00 |
| 2026/27 | EFL Trophy | Newport | 1 | 0 | 45 | 0 | 0 | 0 | 0 | 6.34 |
| 2026/27 | League Two | Newport | 12 | 12 | 1089 | 0 | 0 | 1 | 0 | 6.76 |
| 2025/26 | League Cup | Newport | 2 | 1 | 125 | 0 | 1 | 1 | 0 | 6.45 |
| 2025/26 | EFL Trophy | Newport | 2 | 2 | 180 | 0 | 0 | 0 | 0 | 7.00 |
| 2025/26 | League Two | Newport | 35 | 32 | 2807 | 1 | 2 | 4 | 0 | 6.81 |
| 2024/25 | Premier League | Haverfordwest County AFC | 31 | 31 | 2776 | 2 | — | 5 | 0 | — |
| 2024/25 | Welsh Cup | Haverfordwest County AFC | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2023/24 | Premier League | Haverfordwest County AFC | 32 | 32 | 2880 | 3 | — | 3 | 0 | — |
| 2023/24 | Welsh Cup | Haverfordwest County AFC | 1 | 1 | 90 | 0 | — | 1 | 0 | — |
| 2023/24 | UEFA Europa Conference League | Haverfordwest County AFC | 4 | 4 | 420 | 1 | — | 1 | 0 | — |
| 2022/23 | Premier League | Haverfordwest County AFC | 33 | 33 | 3025 | 1 | — | 4 | 0 | — |
| 2021/22 | Premier League | Aberystwyth Town | 26 | 26 | 2262 | 3 | — | 3 | 1 | — |
| 2021/22 | Welsh Cup | Aberystwyth Town | 2 | 2 | 180 | 0 | — | 0 | 0 | — |
| 2020/21 | Premier League | Aberystwyth Town | 28 | 28 | 2456 | 2 | — | 7 | 0 | — |
| 2019/20 | Premier League | Aberystwyth Town | 22 | 21 | 1895 | 0 | — | 3 | 0 | — |
| 2019/20 | League Cup | Aberystwyth Town | 2 | 2 | 180 | 0 | — | 0 | 0 | — |
| 2019/20 | Welsh Cup | Aberystwyth Town | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2018/19 | Premier League | Aberystwyth Town | 16 | 11 | 1105 | 1 | — | 3 | 0 | — |
| 2018/19 | League Cup | Aberystwyth Town | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2017/18 | Premier League | Aberystwyth Town | 1 | 0 | 2 | 0 | — | 0 | 0 | — |
Availability history
No injuries or suspensions recorded.
Trophies
| Competition | Season | Place |
|---|---|---|
| Welsh Cup (Wales) | 2017/2018 | 2nd Place |
