Career as a player
| Period | Team | Country | Position | # | |
|---|---|---|---|---|---|
| 07/2021 - 05/2023 | ![]() | Dunfermline Athletic | Midfield | 17 | |
| 11/2020 - 07/2021 | ![]() | Western Sydney Wanderers | Midfield | 18 | |
| 10/2020 - 11/2020 | ![]() | Dundee FC | Midfield | 6 | |
| 09/2019 - 09/2020 | ![]() | Dundee FC | Midfield | 14 | |
| 07/2018 - 09/2019 | ![]() | Rangers FC | Midfield | 4 | |
| 07/2017 - 06/2018 | ![]() | Rangers FC | Midfield | 10 | |
| 07/2016 - 07/2017 | ![]() | Norwich City | Midfield | 4 | |
| 07/2015 - 06/2016 | ![]() | Norwich City | Midfield | 18 | |
| 11/2015 - 03/2016 | ![]() | Norwich City U21 | Midfield | ||
| 02/2015 - 06/2015 | ![]() | Norwich City | Midfield | 41 | |
| 07/2008 - 02/2015 | ![]() | West Bromwich Albion | Midfield | 17 | |
| 01/2006 - 06/2008 | ![]() | Livingston FC | Midfield | 24 | |
| 09/2005 - 12/2005 | ![]() | Partick Thistle | Midfield | ||
| 07/2004 - 08/2005 | ![]() | Livingston FC | Midfield | 24 |
Club matches
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() | Europa League | 1 | - | 1 | - | 6 | - | - | - | 1 | - | - | » All matches |
| Premier League | 142 | 103 | 39 | 59 | 9.159 | 8 | 1 | 10 | 21 | - | - | » All matches | |
| Championship | 83 | 76 | 7 | 12 | 6.706 | 22 | 9 | 2 | 18 | 1 | - | » All matches | |
| FA Cup | 13 | 11 | 2 | 2 | 981 | 3 | 2 | - | 2 | - | - | » All matches | |
| League Cup | 15 | 13 | 2 | 2 | 1.324 | 2 | - | - | 1 | - | - | » All matches | |
| Playoffs | 3 | 1 | 2 | 1 | 103 | - | - | - | 1 | - | - | » All matches | |
| Premiership | 26 | 20 | 6 | 7 | 1.705 | 5 | 2 | 3 | 6 | - | - | » All matches | |
| Championship | 44 | 41 | 3 | 4 | 3.709 | 2 | - | 5 | 9 | - | 1 | » All matches | |
| FA Cup | 3 | 3 | - | 1 | 253 | - | - | - | 3 | - | - | » All matches | |
| League Cup | 6 | 6 | - | 2 | 514 | 1 | - | - | 1 | - | - | » All matches | |
| Playoffs | 2 | 2 | - | 2 | 180 | - | - | - | 1 | - | - | » All matches | |
| A-League | 23 | 23 | - | 7 | 2.015 | 4 | 2 | 2 | 10 | - | - | » All matches | |
| Total | 361 | 299 | 62 | 99 | 26.655 | 47 | 16 | - | 74 | 1 | 1 | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
| U21 Premier League 2 | 2 | 2 | - | - | 180 | - | - | - | 1 | - | - | » All matches | |
| Total | 2 | 2 | - | - | 180 | - | - | - | 1 | - | - |
International matches
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
![]() | WC Qualifiers Europe | 2 | 1 | 1 | 1 | 78 | - | - | - | - | - | - | » All matches |
![]() | Friendlies | 5 | 3 | 2 | 1 | 303 | - | - | - | - | - | - | » All matches |
![]() | EURO Qualifiers | 5 | 3 | 2 | 1 | 279 | - | - | - | 1 | - | - | » All matches |
| Total | 12 | 7 | 5 | 3 | 660 | - | - | - | 1 | - | - | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
![]() | U21 Friendlies | 1 | - | 1 | - | 45 | - | - | - | - | - | - | » All matches |
![]() | U21 EURO Qualifiers | 3 | - | 3 | - | 73 | - | - | - | - | - | - | » All matches |
| Total | 4 | - | 4 | - | 118 | - | - | - | - | - | - | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
![]() | U20 World Cup | 3 | 2 | 1 | 2 | 164 | - | - | - | - | - | - | » All matches |
| Total | 3 | 2 | 1 | 2 | 164 | - | - | - | - | - | - | ||
| Competition | Matches | Start | In | Out | Min. | Scores | 11m | Ass | Yellow | Yellow-Red | Red | ||
![]() | U19 EURO | 4 | - | 4 | - | 31 | 1 | - | - | 1 | - | - | » All matches |
![]() | U19 EURO Qualifiers | 3 | - | 3 | - | 58 | - | - | - | - | - | - | » All matches |
| Total | 7 | - | 7 | - | 89 | 1 | - | - | 1 | - | - |











