Loading the essentials…
The page is ready first. More details follow section by section.
Loading the essentials…
The page is ready first. More details follow section by section.
Loading career facts and season results…
Effective/recorded date:
Shows completed, effective transfers. Missing matches or high age do not establish retirement. Club registration does not guarantee a current contract.
| Season | Team | Competition | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| East Kilbride | 3 | 226 | 3 | 1 | 4 | 0 | 0 | |||
| East Kilbride | 4 | 390 | 0 | 1 | 1 | 0 | 0 | |||
| Stranraer | 4 | 407 | 2 | 1 | 3 | 0 | 0 | |||
| Queen of the South | 5 | 322 | 2 | 1 | 3 | 0 | 0 | |||
| Queen of the South | 2 | 109 | 1 | 0 | 1 | 0 | 0 | |||
| Queen of the South | 4 | 360 | 2 | 1 | 3 | 0 | 0 | |||
| Queen of the South | 4 | 305 | 0 | 0 | 0 | 0 | 0 | |||
| Queen of the South | 1 | 90 | 0 | 0 | 0 | 0 | 0 | |||
| Queen of the South | 5 | 463 | 3 | 1 | 4 | 1 | 0 | |||
| Queen's Park | 2 | 180 | 1 | 0 | 1 | 0 | 0 | |||
| Queen's Park | 1 | 90 | 0 | 0 | 0 | 0 | 0 | |||
| Queen's Park | 4 | 377 | 4 | 0 | 4 | 1 | 0 | |||
| Port Vale | 1 | 71 | 0 | 0 | 0 | 0 | 0 | |||
| Port Vale | 1 | 62 | 1 | 0 | 1 | 0 | 0 | |||
| Port Vale | 19 | 812 | 1 | 1 | 2 | 2 | 0 | |||
| Dundee Utd | 1 | 25 | 0 | 0 | 0 | 0 | 0 | |||
| Dundee Utd | 12 | 465 | 0 | 0 | 0 | 0 | 0 | |||
| Port Vale | 2 | 101 | 2 | 0 | 2 | 1 | 0 | |||
| Port Vale | 2 | 109 | 0 | 0 | 0 | 0 | 0 | |||
| Port Vale | 13 | 718 | 1 | 3 | 4 | 2 | 0 | |||
| ST Johnstone | 3 | 276 | 1 | 0 | 1 | 2 | 0 | |||
| ST Johnstone | 8 | 452 | 1 | 0 | 1 | 1 | 0 | |||
| Recorded totals | 101 | 6,410 | 25 | 10 | 35 | 10 | 0 | |||
22 rows · A dash means unknown. Totals count recorded values. G+A counts known goals and assists, even when one is missing. Estimated average rating. Uses rated matches where known, otherwise appearances in each competition.
Club and international season statistics · Form: latest club and international appearances