| STRT | FC | FA | YC | RC | G | A | SHOT | SOG | OFF | |
|---|---|---|---|---|---|---|---|---|---|---|
| 2025-26 Scottish League One PET | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Includes finals, playoffs and exhibition games, so totals run higher than regular-season figures.
| Season | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2022 UEFA Nations LeagueNorthern Ireland | 3 | 0 | 0 | 5 | 2 | 139 | 0 | 0 | 0 | 3 | 2 | 0 | 0 | 0 | 0 | 0 |
| 2021-22 Scottish PremiershipAberdeen / Dundee | 24 | 1 | – | – | – | 1,057 | – | – | – | – | – | – | – | – | – | – |
| 2022 International FriendlyNorthern Ireland | 2 | 0 | 0 | 2 | 1 | 79 | 0 | 0 | 1 | 2 | 1 | 2 | 1 | 0 | 1 | 0 |
| 2021 International FriendlyNorthern Ireland | 3 | 1 | 0 | 1 | 1 | 130 | 0 | 0 | 0 | 3 | 1 | 1 | 2 | 0 | 1 | 0 |
| 2020-21 Scottish PremiershipAberdeen | 25 | – | – | – | – | 1,029 | – | – | – | – | – | – | – | – | – | – |
| 2019-20 Scottish PremiershipAberdeen | 28 | 6 | – | – | – | 1,986 | – | – | – | – | – | – | – | – | – | – |
| 2019-20 UEFA Europa LeagueAberdeen | 6 | 2 | – | – | – | 432 | – | – | – | – | – | – | – | – | – | – |
| 2018-19 Scottish PremiershipAberdeen | 27 | 5 | – | – | – | 1,910 | – | – | – | – | – | – | – | – | – | – |
| 2018 UEFA Nations LeagueNorthern Ireland | 2 | 0 | 0 | 5 | 1 | 150 | 0 | 0 | 0 | 2 | 0 | 1 | 0 | 0 | 3 | 0 |
| 2018-19 UEFA Europa LeagueAberdeen | 2 | – | – | – | – | 160 | – | – | – | – | – | – | – | – | – | – |
| 2016-17 UEFA Europa LeagueAberdeen | 4 | – | – | – | – | 335 | – | – | – | – | – | – | – | – | – | – |
| 2015-16 UEFA Europa LeagueAberdeen | 7 | 3 | – | – | – | 600 | – | – | – | – | – | – | – | – | – | – |
| 2014-15 UEFA Europa LeagueAberdeen | 3 | 1 | – | – | – | 270 | – | – | – | – | – | – | – | – | – | – |
| 2009-10 UEFA Europa LeagueCeltic | 5 | 0 | 1 | 3 | 3 | 139 | 0 | 0 | 0 | 5 | 4 | 0 | 4 | 0 | 5 | 0 |
| Career14 seasons | 141 | 19 | 1 | 16 | 8 | 8,416 | 0 | 0 | 1 | 15 | 8 | 4 | 7 | 0 | 10 | 0 |
Stats from official league and public sports feeds. Updated hourly.
| Game | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 12 June v CyprusD 2-2 12 June | 0 | 0 | 4 | 1 | 21 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
| 6 June @ CyprusD 0-0 6 June | 0 | 0 | 0 | 0 | 90 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
| 3 June v GreeceL 0-1 3 June | 0 | 0 | 1 | 1 | 28 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 |
| Split | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| HomeHome or away · won 0 of 4 | 4 | 0.0 | 0.0 | 2.5 | 0.8 | 49.8 | 0.0 | 0.0 | 0.0 | 1.0 | 0.5 | 0.3 | 0.0 | 0.0 | 0.8 | 0.0 |
| AwayHome or away · won 0 of 1 | 1 | 0.0 | 0.0 | 0.0 | 0.0 | 90.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| LossesResult | 3 | 0.0 | 0.0 | 2.0 | 0.7 | 59.3 | 0.0 | 0.0 | 0.0 | 1.0 | 0.3 | 0.3 | 0.0 | 0.0 | 1.0 | 0.0 |
| DrawsResult | 2 | 0.0 | 0.0 | 2.0 | 0.5 | 55.5 | 0.0 | 0.0 | 0.0 | 1.0 | 0.5 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| Regular seasonStage · won 0 of 5 | 5 | 0.0 | 0.0 | 2.0 | 0.6 | 57.8 | 0.0 | 0.0 | 0.0 | 1.0 | 0.4 | 0.2 | 0.0 | 0.0 | 0.6 | 0.0 |
| CyprusOpponent · won 0 of 2 | 2 | 0.0 | 0.0 | 2.0 | 0.5 | 55.5 | 0.0 | 0.0 | 0.0 | 1.0 | 0.5 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| AustriaOpponent · won 0 of 1 | 1 | 0.0 | 0.0 | 3.0 | 0.0 | 74.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 |
| Bosnia-HerzegovinaOpponent · won 0 of 1 | 1 | 0.0 | 0.0 | 2.0 | 1.0 | 76.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 1.0 | 0.0 | 0.0 | 2.0 | 0.0 |
| GreeceOpponent · won 0 of 1 | 1 | 0.0 | 0.0 | 1.0 | 1.0 | 28.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| Windsor Park, BelfastGround · won 0 of 4 | 4 | 0.0 | 0.0 | 2.5 | 0.8 | 49.8 | 0.0 | 0.0 | 0.0 | 1.0 | 0.5 | 0.3 | 0.0 | 0.0 | 0.8 | 0.0 |
| AEK Arena, LarnacaGround · won 0 of 1 | 1 | 0.0 | 0.0 | 0.0 | 0.0 | 90.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |