Clubs
| Club | Seasons | Apps | Goals | Assists |
|---|---|---|---|---|
| Emmen | 2026/27 | 0 | 0 | 0 |
| Notts County | 2025/26 | 26 | 0 | 1 |
| Kilmarnock | 2025/26 | 11 | 0 | 0 |
| Triestina | 2024/25 | 40 | 0 | — |
| Aberdeen | 2022/23 – 2023/24 | 90 | 0 | 0 |
| Derby | 2014/15 – 2021/22 | 90 | 0 | — |
| Derby County U23 | 2016 – 2018 | 8 | 0 | — |
| Plymouth | 2017/18 | 4 | 0 | — |
| Port Vale | 2017/18 | 9 | 0 | — |
| Bristol Rovers | 2016/17 | 22 | 0 | — |
| Wimbledon | 2015/16 | 20 | 0 | — |
| Rotherham | 2015/16 | 5 | 0 | — |
| Nuneaton Town | 2013/14 | 12 | 0 | — |
Transfers
| Date | From | To | Type |
|---|---|---|---|
| 18 Jul 2024 | Aberdeen | Triestina | Free |
| 1 Jul 2022 | Derby | Aberdeen | Free |
| 28 Dec 2017 | Plymouth | Derby | — |
| 16 Sept 2017 | Derby | Port Vale | Loan |
| 10 Jan 2017 | Bristol Rovers | Derby | — |
| 15 Jul 2015 | Derby | Rotherham | Loan |
| 23 Jan 2014 | Nuneaton Town | Derby | — |
| 14 Jan 2026 | Notts County | Kilmarnock | Loan |
| 30 May 2026 | Kilmarnock | Notts County | Return from loan |
| 22 Jul 2025 | Triestina | Notts County | Free Transfer |
| 31 Aug 2026 | Notts County | Roos Kelle | Free agent |
| 31 Aug 2026 | Notts County | Emmen | Free agent |
| 6 Oct 2026 | Notts County | Emmen | Free agent |
Season by season
| Season | Competition | Club | Apps | Starts | Min | Goals | Assists | Yellow | Red | Rating |
|---|---|---|---|---|---|---|---|---|---|---|
| 2025/26 | League Cup | Notts County | 1 | 1 | 90 | 0 | 0 | 0 | 0 | 7.00 |
| 2025/26 | FA Cup | Notts County | 1 | 1 | 120 | 0 | 0 | 0 | 0 | 6.20 |
| 2025/26 | League Two | Notts County | 24 | 24 | 2160 | 0 | 1 | 5 | 0 | 6.61 |
| 2025/26 | Premiership | Kilmarnock | 11 | 11 | 990 | 0 | 0 | 0 | 0 | 7.38 |
| 2024/25 | Serie C - Supercoppa Lega Finals | Triestina | 40 | 40 | 3600 | 0 | — | 1 | 0 | — |
| 2023/24 | Premiership | Aberdeen | 37 | 36 | 3240 | — | 0 | 3 | 0 | 7.04 |
| 2023/24 | League Cup | Aberdeen | 4 | 4 | 360 | 0 | — | 0 | 0 | — |
| 2023/24 | FA Cup | Aberdeen | 3 | 3 | 300 | 0 | — | 0 | 0 | — |
| 2023/24 | UEFA Europa League | Aberdeen | 2 | 2 | 180 | 0 | — | 0 | 0 | — |
| 2023/24 | UEFA Europa Conference League | Aberdeen | 6 | 6 | 540 | 0 | — | 0 | 0 | 6.85 |
| 2022/23 | Premiership | Aberdeen | 31 | 31 | 2790 | — | — | 0 | 0 | 7.01 |
| 2022/23 | League Cup | Aberdeen | 7 | 7 | 690 | 0 | — | 0 | 0 | — |
| 2021/22 | Championship | Derby | 18 | 17 | 1515 | 0 | — | 1 | 1 | 6.94 |
| 2021/22 | Friendlies Clubs | Derby | 1 | 1 | 61 | 0 | — | 0 | 0 | — |
| 2020/21 | Championship | Derby | 14 | 13 | 1218 | 0 | — | 0 | 0 | 6.69 |
| 2020/21 | League Cup | Derby | 2 | 2 | 180 | 0 | — | 0 | 0 | 7.50 |
| 2019/20 | Championship | Derby | 22 | 22 | 1906 | 0 | — | 0 | 0 | 6.89 |
| 2019/20 | FA Cup | Derby | 4 | 4 | 360 | 0 | — | 0 | 0 | 7.13 |
| 2018 | Premier League 2 | Derby County U23 | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2018/19 | Championship | Derby | 19 | 19 | 1710 | 0 | — | 0 | 0 | 6.86 |
| 2018/19 | League Cup | Derby | 1 | 1 | 90 | 0 | — | 0 | 0 | 7.70 |
| 2018/19 | FA Cup | Derby | 4 | 4 | 390 | 0 | — | 0 | 0 | 7.13 |
| 2017/18 | League One | Plymouth | 4 | 4 | 360 | 0 | — | 0 | 0 | — |
| 2017/18 | League Two | Port Vale | 8 | 8 | 720 | 0 | — | 0 | 0 | — |
| 2017/18 | EFL Trophy | Port Vale | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2017 | Premier League International Cup | Derby County U23 | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2017 | Premier League 2 | Derby County U23 | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2016 | Premier League 2 | Derby County U23 | 5 | 5 | 450 | 0 | — | 0 | 0 | — |
| 2016/17 | League One | Bristol Rovers | 16 | 16 | 1440 | 0 | — | 0 | 0 | — |
| 2016/17 | EFL Trophy | Bristol Rovers | 3 | 3 | 183 | 0 | — | 1 | 0 | — |
| 2016/17 | FA Cup | Bristol Rovers | 3 | 3 | 300 | 0 | — | 0 | 0 | — |
| 2015/16 | League Two | Wimbledon | 20 | 20 | 1830 | 0 | — | 0 | 0 | — |
| 2015/16 | Championship | Rotherham | 4 | 4 | 360 | 0 | — | 0 | 0 | — |
| 2015/16 | League Cup | Rotherham | 1 | 1 | 90 | 0 | — | 0 | 0 | — |
| 2014/15 | League Cup | Derby | 2 | 2 | 180 | 0 | — | 0 | 0 | — |
| 2014/15 | FA Cup | Derby | 3 | 3 | 270 | 0 | — | 0 | 0 | — |
| 2013/14 | National League | Nuneaton Town | 9 | 9 | 810 | 0 | — | 0 | 0 | — |
| 2013/14 | FA Trophy | Nuneaton Town | 3 | 3 | 300 | 0 | — | 0 | 0 | — |
Availability history
| Reason | From | Until | Days |
|---|---|---|---|
| Red Card | 27 Sept 2021 | 29 Sept 2021 | 2 |
Trophies
| Competition | Season | Place |
|---|---|---|
| League Cup (Scotland) | 2023 | 2nd Place |
