Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Bristol Rovers | 2025/26 – 2026/27 | 27 | 3 | 2 |
| Wycombe | 2026/27 | 1 | 0 | 0 |
| Oldham | 2025/26 | 21 | 3 | 1 |
| Chesterfield | 2021/22 – 2024/25 | 109 | 22 | 1 |
| Forest Green | 2024/25 | 45 | 3 | — |
| Yeovil Town | 2020/21 – 2021/22 | 61 | 20 | — |
| Dagenham & Redbridge | 2019/20 – 2020/21 | 34 | 6 | — |
| Republic of Ireland U21 | 2017 – 2019 | 4 | 0 | — |
| Billericay Town | 2019/20 | 1 | 0 | — |
| Boreham Wood | 2017/18 – 2018/19 | 14 | 2 | — |
| Havant & Wville | 2018/19 | 15 | 2 | — |
| Eastbourne Borough | 2018/19 | 5 | 3 | — |
| Bromley | 2018/19 | 8 | 1 | — |
| Maidstone Utd | 2018/19 | 11 | 0 | — |
| Newport | 2017/18 | 5 | 0 | — |
| Gillingham | 2016/17 | 3 | 0 | — |
| Woking | 2015/16 | 23 | 7 | — |
| Wrexham | 2015/16 | 4 | 1 | — |
| Torquay | 2015/16 | 10 | 1 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 30 Aug 2024 | Chesterfield | Forest Green | — |
| 21 Jan 2022 | Yeovil Town | Chesterfield | — |
| 12 Oct 2020 | Dagenham & Redbridge | Yeovil Town | Free |
| 8 Apr 2020 | Billericay Town | Dagenham & Redbridge | — |
| 9 Mar 2020 | Dagenham & Redbridge | Billericay Town | Loan |
| 11 Jul 2019 | Bromley | Dagenham & Redbridge | Free |
| 28 Jan 2019 | Bromley | Havant & Wville | Loan |
| 31 Dec 2018 | Bromley | Eastbourne Borough | Loan |
| 18 Oct 2018 | Maidstone Utd | Bromley | — |
| 18 Aug 2017 | Bournemouth | Newport County | Loan |
| 31 Jan 2017 | Bournemouth | Gillingham | Loan |
| 8 Jul 2016 | Bournemouth | Gillingham | Loan |
| 20 Nov 2015 | Bournemouth | Woking | Loan |
| 2 Oct 2015 | Bournemouth | Wrexham | Loan |
| 7 Aug 2015 | Bournemouth | Torquay | Loan |
| 7 Aug 2025 | Forest Green | Oldham | Free Transfer |
| 1 Feb 2026 | Oldham | Bristol Rovers | Transfer |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | League Cup | Bristol Rovers | 1 | 1 | 70 | 0 | 0 | 0 | 0 | 6.90 |
| 2026/27 | EFL Trophy | Bristol Rovers | 1 | 1 | 90 | 0 | 0 | 1 | 0 | 6.18 |
| 2026/27 | League Two | Bristol Rovers | 8 | 1 | 193 | 0 | 0 | 0 | 0 | 6.65 |
| 2026/27 | EFL Trophy | Wycombe | 1 | 1 | 90 | 0 | 0 | 0 | 0 | 6.18 |
| 2025/26 | EFL Trophy | Oldham | 2 | 2 | 138 | 0 | 0 | 0 | 0 | 6.60 |
| 2025/26 | League Two | Oldham | 19 | 11 | 1041 | 3 | 1 | 3 | 0 | 6.73 |
| 2025/26 | League Two | Bristol Rovers | 17 | 10 | 929 | 3 | 2 | 1 | 0 | 6.86 |
| 2024/25 | National League | Forest Green | 38 | 12 | 1293 | 0 | — | 1 | 0 | — |
| 2024/25 | League Two | Chesterfield | 3 | 0 | 35 | 0 | 0 | 0 | 0 | 6.37 |
| 2024/25 | FA Trophy | Forest Green | 2 | 1 | 118 | 2 | — | 0 | 0 | — |
| 2024/25 | FA Cup | Forest Green | 2 | 1 | 81 | 0 | — | 0 | 0 | — |
| 2024/25 | National League Cup | Forest Green | 3 | 2 | 221 | 1 | — | 1 | 0 | — |
| 2024/25 | League Cup | Chesterfield | 1 | 1 | 74 | 0 | 1 | 0 | 0 | 7.30 |
| 2024/25 | EFL Trophy | Chesterfield | 1 | 1 | 74 | 0 | 0 | 0 | 0 | 6.90 |
| 2023/24 | National League | Chesterfield | 35 | 14 | 1332 | 12 | — | 5 | 0 | — |
| 2023/24 | FA Trophy | Chesterfield | 1 | 1 | 46 | 0 | — | 0 | 0 | — |
| 2023/24 | FA Cup | Chesterfield | 2 | 1 | 81 | 1 | — | 1 | 0 | — |
| 2022/23 | National League | Chesterfield | 45 | 28 | 2559 | 7 | — | 3 | 0 | — |
| 2022/23 | FA Cup | Chesterfield | 4 | 4 | 317 | 0 | — | 1 | 0 | 6.70 |
| 2021/22 | National League | Chesterfield | 17 | 10 | 989 | 2 | — | 4 | 0 | — |
| 2021/22 | National League | Yeovil Town | 16 | 10 | 1041 | 6 | — | 2 | 0 | — |
| 2021/22 | FA Cup | Yeovil Town | 4 | 3 | 313 | 1 | — | 0 | 0 | — |
| 2020/21 | National League | Yeovil Town | 38 | 22 | 2081 | 12 | — | 5 | 0 | — |
| 2020/21 | FA Cup | Yeovil Town | 3 | 3 | 330 | 1 | — | 1 | 0 | — |
| 2019/20 | National League - South | Billericay Town | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2019/20 | National League | Dagenham & Redbridge | 30 | 21 | 1924 | 5 | — | 1 | 0 | — |
| 2019/20 | FA Cup | Dagenham & Redbridge | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2019/20 | FA Trophy | Dagenham & Redbridge | 3 | 3 | 271 | 1 | — | 0 | 0 | — |
| 2019 | UEFA U21 Championship | Republic of Ireland U21 | 4 | 0 | 13 | 0 | — | 0 | 0 | — |
| 2018/19 | National League - Play-offs | Havant & Wville | 15 | 10 | 918 | 2 | — | 0 | 0 | — |
| 2018/19 | National League N / S | Eastbourne Borough | 5 | 5 | 450 | 3 | — | 0 | 0 | — |
| 2018/19 | National League - Play-offs | Bromley | 6 | 4 | 321 | 1 | — | 0 | 0 | — |
| 2018/19 | National League - Play-offs | Maidstone Utd | 11 | 4 | 406 | 0 | — | 1 | 0 | — |
| 2018/19 | FA Trophy | Bromley | 1 | 0 | 4 | 0 | — | 0 | 0 | — |
| 2018/19 | FA Cup | Bromley | 1 | 0 | 39 | 0 | — | 0 | 0 | — |
| 2017/18 | National League | Boreham Wood | 12 | 5 | 371 | 1 | — | 1 | 0 | — |
| 2017/18 | League Two | Newport | 2 | 1 | 83 | 0 | — | 0 | 0 | — |
| 2017/18 | FA Trophy | Boreham Wood | 2 | 2 | 157 | 1 | — | 0 | 0 | — |
| 2017/18 | EFL Trophy | Newport | 2 | 2 | 171 | 0 | — | 0 | 0 | — |
| 2017/18 | League Cup | Newport | 1 | 0 | 24 | 0 | — | 1 | 0 | — |
| 2016/17 | League Cup | Gillingham | 1 | 1 | 63 | 0 | — | 0 | 0 | — |
| 2016/17 | League One | Gillingham | 2 | 0 | 7 | 0 | — | 0 | 0 | — |
| 2015/16 | National League | Woking | 19 | 15 | 1305 | 5 | — | 0 | 0 | — |
| 2015/16 | National League | Wrexham | 4 | 2 | 212 | 1 | — | 1 | 0 | — |
| 2015/16 | National League | Torquay | 10 | 8 | 581 | 1 | — | 0 | 0 | — |
| 2015/16 | FA Trophy | Woking | 4 | 3 | 283 | 2 | — | 0 | 0 | — |
Availability history
No injuries or suspensions recorded.
Trophies
| Competition | Season | Place |
|---|---|---|
| National League (England) | 2023/2024 | Winner |
