 
          | Season | League | Team | A | G | Assists | Y/YR/R | MP | 
|---|---|---|---|---|---|---|---|
| 2022 | USL Championship |  Detroit City | 5 | 0 | 1 | 1/0/0 | 264 | 
| 2021/2022 | Premiership Play-Offs |  Partick Thistle | 1 | 0 | 0 | 0/0/0 | 90 | 
| 2021/2022 | Scottish Cup |  Partick Thistle | 0 | 0 | 0 | 0/0/0 | 0 | 
| 2021/2022 | Challenge Cup |  Partick Thistle | 1 | 0 | 0 | 0/0/0 | 90 | 
| 2021/2022 | Championship |  Partick Thistle | 27 | 0 | 0 | 7/0/0 | 2299 | 
| 2021/2022 | League Cup |  Partick Thistle | 4 | 0 | 1 | 1/0/0 | 353 | 
| 2020/2021 | Scottish Cup |  Partick Thistle | 1 | 0 | 0 | 0/0/0 | 0 | 
| 2020/2021 | League Cup |  Partick Thistle | 3 | 0 | 0 | 0/0/0 | 270 | 
| 2020/2021 | League One |  Partick Thistle | 20 | 0 | 3 | 1/0/0 | 1773 | 
| 2019/2020 | Premiership |  Ross County | 21 | 0 | 1 | 2/0/0 | 1764 | 
| 2019/2020 | Scottish Cup |  Ross County | 1 | 0 | 0 | 0/0/0 | 90 | 
| 2019/2020 | League Cup |  St. Johnstone | 3 | 0 | 0 | 0/0/0 | 270 | 
| 2019/2020 | Premiership |  St. Johnstone | 2 | 0 | 0 | 1/0/0 | 180 | 
| 2018/2019 | Scottish Cup |  St. Johnstone | 2 | 0 | 0 | 0/0/0 | 180 | 
| 2018/2019 | Premiership |  St. Johnstone | 37 | 0 | 3 | 7/0/0 | 986 | 
| 2018/2019 | League Cup |  St. Johnstone | 6 | 0 | 1 | 0/0/0 | 540 | 
| 2017/2018 | Championship |  St. Johnstone | 8 | 0 | 0 | 1/0/0 | 695 | 
| 2017/2018 | Premiership |  St. Johnstone | 24 | 0 | 4 | 5/0/1 | 1948 | 
| 2017/2018 | Europa League |  St. Johnstone | 2 | 0 | 0 | 0/0/0 | 180 | 
| 2017 | League Cup |  St. Johnstone | 1 | 0 | 0 | 1/0/0 | 90 | 
| 2016/2017 | Scottish Cup |  St. Johnstone | 1 | 0 | 0 | 0/0/0 | 90 | 
| 2016/2017 | Premiership |  St. Johnstone | 32 | 1 | 0 | 5/0/1 | 0 | 
| 2015/2016 | Premiership |  Ross County | 32 | 0 | 3 | 8/0/0 | 0 | 
| 2015/2016 | Scottish Cup |  Ross County | 4 | 0 | 0 | 0/0/0 | 0 | 
| 2015/2016 | League Cup |  Ross County | 4 | 0 | 1 | 0/0/0 | 0 | 
| 2014/2015 | Premiership Play-Offs |  Rangers | 6 | 0 | 0 | 2/0/0 | 0 | 
| 2014/2015 | Championship |  Rangers | 15 | 0 | 3 | 3/0/0 | 0 | 
| 2014/2015 | Scottish Cup |  Rangers | 3 | 0 | 0 | 2/0/0 | 0 | 
| 2014/2015 | League Cup |  Rangers | 2 | 0 | 0 | 1/0/0 | 0 | 
| 2013/2014 | Scottish Cup |  Rangers | 4 | 0 | 0 | 0/0/0 | 0 | 
| 2013/2014 | League One |  Rangers | 20 | 0 | 0 | 3/0/0 | 0 | 
| 2013/2014 | Challenge Cup |  Rangers | 3 | 0 | 0 | 0/0/0 | 0 | 
| 2012/2013 | Championship |  Bristol City | 30 | 0 | 0 | 3/0/0 | 2417 | 
| 2011/2012 | Premiership |  Aberdeen | 22 | 1 | 0 | 4/0/0 | 1980 | 
| 2011/2012 | Championship |  Bristol City | 20 | 0 | 1 | 4/0/0 | 1800 | 
| 2010/2011 | Premiership |  Rangers | 12 | 0 | 0 | 1/0/0 | 0 | 
| 2010/2011 | Scottish Cup |  Rangers | 2 | 0 | 0 | 1/0/0 | 0 | 
| 2010/2011 | Premiership |  Aberdeen | 1 | 0 | 0 | 0/0/0 | 0 | 
| 2010/2011 | Europa League |  Rangers | 4 | 0 | 0 | 0/0/0 | 356 | 
| 2010/2011 | Champions League |  Rangers | 3 | 0 | 0 | 0/0/0 | 270 | 
| 2009/2010 | Premiership |  Aberdeen | 37 | 0 | 0 | 4/0/0 | 3330 | 
| 2009/2010 | Europa League |  Aberdeen | 2 | 0 | 0 | 2/0/0 | 180 | 
| 2008/2009 | Scottish Cup |  Aberdeen | 4 | 0 | 0 | 2/0/0 | 0 | 
| 2008/2009 | Premiership |  Aberdeen | 33 | 0 | 0 | 4/1/0 | 2733 | 
| 2007/2008 | Scottish Cup |  Aberdeen | 3 | 0 | 0 | 0/0/0 | 0 | 
| 2007/2008 | Premiership |  Aberdeen | 5 | 1 | 0 | 1/0/0 | 450 | 
| Total: | 473 | 3 | 22 | 77/1/2 | 25668 | 
| From | To | Date | Amount | 
|---|---|---|---|
|  Detroit City |  Partick Thistle | 15/08/2022 | Free | 
|  Partick Thistle |  Ross County | 20/07/2020 | Free | 
|  Ross County |  St. Johnstone | 29/08/2019 | Free | 
|  Ross County |  Rangers | 01/07/2015 | Free | 
|  Rangers |  Bristol City | 01/09/2013 | N/a | 
|  Bristol City |  Aberdeen | 09/01/2012 | 300K € | 
|  Rangers |  Aberdeen | 01/09/2010 | Loan |