Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Exeter | 2025/26 – 2026/27 | 37 | 0 | 2 |
| Sligo Rovers | 2025/26 | 1 | 1 | 2 |
| Hibernian | 2021/22 – 2024/25 | 69 | 2 | 0 |
| Republic of Ireland U21 | 2019 – 2021 | 0 | 0 | — |
| St Mirren | 2020/21 | 30 | 1 | — |
| Cheltenham | 2019/20 | 36 | 1 | 4 |
| Aston Villa | 2017/18 – 2018/19 | 3 | 0 | — |
| Cambridge | 2018/19 | 6 | 0 | — |
| Aston Villa U18 | 2016 – 2017 | 17 | 4 | — |
| Republic of Ireland U19 | 2017 | 2 | 0 | — |
| Republic of Ireland U17 | 2015 | 3 | 0 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 1 Jul 2021 | ST Mirren | Hibernian | Free |
| 3 Nov 2020 | Aston Villa | ST Mirren | Free |
| 1 Jul 2020 | Cheltenham | Aston Villa | — |
| 1 Aug 2019 | Aston Villa | Cheltenham | Loan |
| 1 Jul 2019 | Cambridge United | Aston Villa | — |
| 31 Jan 2019 | Aston Villa | Cambridge United | Loan |
| 13 Feb 2025 | Hibernian | Sligo Rovers | Free Transfer |
| 1 Aug 2025 | Sligo Rovers | Exeter City | Transfer |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2026/27 | League Cup | Exeter | 1 | 1 | 45 | 0 | 0 | 0 | 0 | 6.50 |
| 2026/27 | League Two | Exeter | 11 | 11 | 834 | 0 | 0 | 3 | 0 | 6.93 |
| 2025/26 | FAI Cup | Sligo Rovers | 1 | 0 | 70 | 1 | 0 | 1 | 0 | 7.23 |
| 2025/26 | FA Cup | Exeter | 2 | 2 | 90 | 0 | 1 | 0 | 0 | 6.60 |
| 2025/26 | League One | Exeter | 23 | 21 | 1756 | 0 | 1 | 7 | 0 | 6.82 |
| 2024/25 | Premiership | Hibernian | 1 | 0 | 7 | 0 | 0 | 0 | 0 | 6.30 |
| 2023/24 | Premiership | Hibernian | 1 | 1 | 81 | 0 | — | 1 | 0 | 6.20 |
| 2023/24 | UEFA Europa Conference League | Hibernian | 4 | 2 | 176 | 0 | — | 1 | 0 | 6.87 |
| 2022/23 | Premiership | Hibernian | 17 | 9 | 745 | 0 | — | 7 | 0 | 6.74 |
| 2022/23 | League Cup | Hibernian | 2 | 2 | 148 | 0 | — | 0 | 0 | — |
| 2021/22 | Premiership | Hibernian | 34 | 31 | 2722 | 2 | — | 10 | 0 | 6.93 |
| 2021/22 | League Cup | Hibernian | 4 | 4 | 347 | 0 | — | 1 | 0 | — |
| 2021/22 | FA Cup | Hibernian | 3 | 2 | 218 | 0 | — | 0 | 0 | — |
| 2021/22 | UEFA Europa Conference League | Hibernian | 3 | 3 | 252 | 0 | — | 1 | 0 | — |
| 2020/21 | Premiership | St Mirren | 22 | 21 | 1850 | 1 | — | 5 | 0 | 7.01 |
| 2020/21 | League Cup | St Mirren | 4 | 3 | 314 | 0 | — | 2 | 0 | — |
| 2020/21 | FA Cup | St Mirren | 4 | 4 | 341 | 0 | — | 1 | 0 | — |
| 2019/20 | League Two | Cheltenham | 32 | 30 | 2519 | 1 | 4 | 5 | 0 | 7.01 |
| 2019/20 | League Cup | Cheltenham | 1 | 1 | 90 | 0 | — | 0 | 0 | 6.30 |
| 2019/20 | FA Cup | Cheltenham | 3 | 2 | 188 | 0 | — | 1 | 0 | — |
| 2018/19 | League Two | Cambridge | 6 | 4 | 380 | 0 | — | 1 | 0 | — |
| 2018/19 | League Cup | Aston Villa | 1 | 1 | 57 | 0 | — | 1 | 0 | 6.50 |
| 2017/18 | League Cup | Aston Villa | 2 | 2 | 168 | 0 | — | 0 | 0 | — |
| 2017 | UEFA U19 Championship | Republic of Ireland U19 | 2 | 2 | 149 | 0 | — | 0 | 1 | — |
| 2016 | U18 Premier League | Aston Villa U18 | 17 | 16 | 1270 | 4 | — | 3 | 0 | — |
| 2015 | UEFA U17 Championship | Republic of Ireland U17 | 3 | 3 | 255 | 0 | — | 0 | 0 | — |
Availability history
No injuries or suspensions recorded.
Trophies
| Competition | Season | Place |
|---|---|---|
| League Cup (Scotland) | 2021/2022 | 2nd Place |
| Premier League 2 Division Two (England) | 2017/2018 | 2nd Place |
| Premier League Cup (England) | 2017/2018 | Winner |
