| Saison | Compétition | Club | MJ. | B | P | J/JR/R | Min. J. | 
|---|---|---|---|---|---|---|---|
| 2024/2025 | Premiership Play-Offs |  Livingston | 2 | 0 | 0 | 0/0/0 | 55 | 
| 2024/2025 | Coupe d'Écosse |  Livingston | 4 | 1 | 0 | 0/0/0 | 215 | 
| 2024/2025 | Challenge Cup |  Livingston | 4 | 1 | 0 | 0/0/0 | 0 | 
| 2024/2025 | Championship |  Livingston | 30 | 3 | 1 | 6/0/0 | 1069 | 
| 2024/2025 | League Cup |  Livingston | 1 | 0 | 0 | 0/0/0 | 12 | 
| 2023/2024 | Coupe d'Écosse |  Livingston | 3 | 0 | 1 | 2/0/0 | 199 | 
| 2023/2024 | Premiership |  Livingston | 33 | 3 | 0 | 3/0/0 | 1942 | 
| 2023/2024 | League Cup |  Livingston | 5 | 0 | 0 | 1/0/0 | 288 | 
| 2022/2023 | Coupe d'Écosse |  Livingston | 2 | 0 | 0 | 1/0/0 | 97 | 
| 2022/2023 | Premiership |  Livingston | 33 | 1 | 1 | 4/0/0 | 1867 | 
| 2022/2023 | League Cup |  Livingston | 5 | 1 | 0 | 0/0/0 | 341 | 
| 2021/2022 | Coupe d'Écosse |  Livingston | 1 | 0 | 0 | 0/0/0 | 26 | 
| 2021/2022 | Premiership |  Livingston | 30 | 3 | 2 | 4/0/0 | 1706 | 
| 2021/2022 | League Cup |  Livingston | 4 | 0 | 0 | 0/0/0 | 264 | 
| 2020/2021 | League One |  Charlton Athletic | 29 | 3 | 6 | 2/0/0 | 1704 | 
| 2020/2021 | Carabao Cup |  Luton Town | 2 | 0 | 0 | 0/0/0 | 180 | 
| 2020/2021 | Championship |  Luton Town | 0 | 0 | 0 | 0/0/0 | 0 | 
| 2019/2020 | Championship |  Luton Town | 21 | 1 | 2 | 4/0/0 | 1351 | 
| 2019/2020 | FA Cup |  Luton Town | 1 | 0 | 0 | 0/0/0 | 90 | 
| 2019/2020 | Carabao Cup |  Luton Town | 1 | 1 | 0 | 0/0/0 | 90 | 
| 2018/2019 | EFL Trophy |  Luton Town | 1 | 0 | 0 | 0/0/0 | 89 | 
| 2018/2019 | FA Cup |  Luton Town | 4 | 1 | 0 | 1/0/0 | 0 | 
| 2018/2019 | League One |  Luton Town | 41 | 4 | 4 | 8/1/0 | 460 | 
| 2018/2019 | Carabao Cup |  Luton Town | 1 | 0 | 0 | 0/0/0 | 76 | 
| 2017/2018 | National League |  Luton Town | 9 | 0 | 0 | 1/0/0 | 509 | 
| 2017/2018 | League Two |  Luton Town | 28 | 1 | 5 | 3/0/0 | 1825 | 
| 2017/2018 | Carabao Cup |  Luton Town | 1 | 0 | 0 | 0/0/0 | 90 | 
| 2017/2018 | FA Cup |  Luton Town | 3 | 0 | 1 | 0/0/0 | 255 | 
| 2017/2018 | EFL Trophy |  Luton Town | 1 | 2 | 0 | 0/0/0 | 79 | 
| 2016/2017 | Championship |  Hibernian | 27 | 1 | 5 | 7/0/0 | 0 | 
| 2016/2017 | Coupe d'Écosse |  Hibernian | 4 | 2 | 0 | 1/0/0 | 292 | 
| 2015/2016 | Championship |  Rotherham United | 3 | 0 | 0 | 0/0/0 | 121 | 
| 2015/2016 | Carabao Cup |  Birmingham City | 2 | 1 | 0 | 0/0/0 | 0 | 
| 2015/2016 | Championship |  Birmingham City | 14 | 0 | 1 | 1/0/0 | 459 | 
| 2014/2015 | Championship |  Birmingham City | 27 | 2 | 3 | 3/0/0 | 1891 | 
| 2013/2014 | Championship |  Birmingham City | 26 | 2 | 0 | 1/0/0 | 1478 | 
| 2013/2014 | Carabao Cup |  Birmingham City | 2 | 1 | 0 | 0/0/0 | 0 | 
| 2012/2013 | Premiership |  Inverness CT | 38 | 12 | 0 | 4/0/0 | 3158 | 
| 2012/2013 | Coupe d'Écosse |  Inverness CT | 3 | 0 | 0 | 1/0/0 | 0 | 
| 2012/2013 | League Cup |  Inverness CT | 4 | 4 | 0 | 0/0/0 | 0 | 
| 2011/2012 | Premiership |  Inverness CT | 19 | 7 | 0 | 1/0/0 | 1243 | 
| 2011/2012 | Coupe d'Écosse |  Inverness CT | 1 | 1 | 0 | 0/0/0 | 0 | 
| 2009/2010 | Championship |  Dundee | 11 | 0 | 0 | 0/0/0 | 0 | 
| Total: | 481 | 59 | 32 | 59/1/0 | 23521 | 
| De | À | Date | Montant | 
|---|---|---|---|
|  Luton Town |  Livingston | 19/07/2021 | Gratuit | 
|  Charlton Athletic |  Luton Town | 01/07/2021 | N/a | 
|  Luton Town |  Charlton Athletic | 16/10/2020 | Prêt | 
|  Birmingham City |  Luton Town | 01/07/2018 | Gratuit | 
|  Birmingham City |  Luton Town | 30/06/2017 | Prêt | 
|  Birmingham City |  Hibernian | 19/08/2016 | Prêt | 
|  Rotherham United |  Birmingham City | 01/06/2016 | N/a | 
|  Birmingham City |  Rotherham United | 27/01/2016 | Prêt | 
|  Inverness CT |  Birmingham City | 01/07/2013 | Gratuit | 
|  Rangers |  Inverness CT | 06/07/2011 | N/a |