| | 2015 British Cycling MTB XC #1 | | Sherwood Pines | 13-14 | | 145 | edinburgh RC | 4 / 14 | 77% | 39:29.00 | 37:09.00 | 6.3% | - | - | |
| | 2015 Scottish XC #2 | | Dalbeattie | 13-14 | | 181 | | 2 / 6 | 80% | 22:46.40 | 21:55.70 | 3.9% | - | - | |
| | 2015 British Cycling MTB XC #3 | | Fforest Fields | 13-14 | | 458 | edinburgh RC | 3 / 11 | 80% | 45:57.00 | 41:44.00 | 10.1% | - | - | |
| | 2015 British Cycling MTB XC #4 | | Cathkin Braes Country Park | 13-14 | | 377 | edinburgh RC | 3 / 12 | 82% | 37:55.00 | 36:19.00 | 4.4% | - | - | |
| | British Cycling - UK XC National Champs '15 | | Hadleigh Park | 13-14 | | 506 | edinburgh RC | 3 / 12 | 82% | 31:33.00 | 28:50.00 | 9.4% | - | - | |
| | 2015 British Cycling MTB XC #5 | | Cannock Chase | 13-14 | | 86 | edinburgh RC | 4 / 14 | 77% | 50:24.00 | 46:25.00 | 8.6% | - | - | |
| | 2015 Scottish XC #4 | | Lochore Meadows Country Park | 13-14 | | 181 | | 2 / 3 | 50% | 26:41.14 | 25:50.36 | 3.3% | - | - | |
| | 2015 Scottish XC #5 | | Badaguish | 13-14 | | 181 | | 1 / 5 | 100% | 24:03.28 | 24:03.28 | 0% | - | - | |
| | 2015 Scottish XC #6 | | Forfar | 13-14 | | 181 | | 2 / 6 | 80% | 22:01.78 | 21:49.61 | 0.9% | - | - | |
| | 2014 Scottish XC #3 | | Abriachan | 13-14 | | 166 | | 3 / 7 | 67% | 27:00.09 | 25:13.63 | 7% | - | - | |
| | 2014 Scottish XC #5 | | Dalbeattie | 13-14 | | 166 | | 4 / 6 | 40% | 29:28.06 | 27:36.75 | 6.7% | - | - | |
| | 2014 Scottish XC #1 | | Forfar | 13-14 | | 301 | | 6 / 7 | 17% | 29:16.78 | 24:32.89 | 19.3% | - | - | |
| | 2016 Scottish XC #1 | | Laggan Wolftrax | 13-14 | | 181 | | 1 / 6 | 100% | 43:43.40 | 43:43.40 | 0% | - | - | |
| | 2016 British Cycling MTB XC #1 | | Pembrey Country Park | 13-14 | | 372 | edinburgh RC | 1 / 7 | 100% | 54:12.00 | 54:12.00 | 0% | - | - | |
| | 2016 British Cycling MTB XC #2 | | Newnham Park | 13-14 | | 271 | edinburgh RC | 1 / 7 | 100% | 50:07.00 | 50:07.00 | 0% | - | - | |
| | 2016 Scottish XC #2 | | Dunoon | 13-14 | | 182 | | 1 / 8 | 100% | 32:28.00 | 32:28.00 | 0% | - | - | |
| | 2016 British Cycling MTB XC #3 | | Dalby Forest | 13-14 | | 261 | edinburgh RC | 1 / 11 | 100% | 47:01.00 | 47:01.00 | 0% | - | - | |
| | 2016 British Cycling MTB XC #4 | | Fforest Fields | 13-14 | | 271 | edinburgh RC | 1 / 10 | 100% | 48:05.00 | 48:05.00 | 0% | - | - | |
| | British Cycling - UK XC National Champs '16 | | Cathkin Braes Country Park | 13-14 | | 341 | edinburgh RC | 2 / 14 | 92% | 40:20.00 | 39:02.00 | 3.3% | - | - | |
| | 2016 British Cycling MTB XC #5 | | Cannock Chase | 13-14 | | 251 | edinburgh RC | 1 / 7 | 100% | 44:21.00 | 44:21.00 | 0% | - | - | |
| | 2016 Scottish XC #6 | | Forfar | 13-14 | | 182 | | 1 / 7 | 100% | 43:57.57 | 43:57.57 | 0% | - | - | |
| | 2016 Scottish XC #3 | | Cathkin Braes Country Park | 13-14 | | 181 | | 1 / 8 | 100% | 38:15.00 | 38:15.00 | 0% | - | - | |
| | 2017 British Cycling MTB XC #1 | | Pembrey Country Park | 15-16 | | 181 | edinburgh RC | 2 / 18 | 94% | 39:30.00 | 37:34.00 | 5.2% | - | - | |
| | 2017 British Cycling MTB XC #2 | | Wasing | 15-16 | | 172 | edinburgh RC | 3 / 15 | 86% | 1h01:05.00 | 1h00:23.00 | 1.2% | - | - | |
| | 2017 British Cycling MTB XC #3 | | Aske Moor | 15-16 | | 172 | edinburgh RC | 2 / 18 | 94% | 56:05.00 | 51:11.00 | 9.6% | - | - | |
| | 2017 British Cycling MTB XC #4 | | Dalby Forest | 15-16 | | 171 | edinburgh RC | 3 / 16 | 87% | 52:18.00 | 48:50.00 | 7.1% | - | - | |
| | British Cycling - UK XC National Champs '17 | | Cannock Chase | 15-16 | | 157 | edinburgh RC | DNS / 21 | 0% | DNS | 55:59.00 | - | - | - | |
| | 2017 British Cycling MTB XC #5 | | Royal Welsh Showground | 15-16 | | 121 | edinburgh RC | 2 / 12 | 91% | 42:43.90 | 39:42.20 | 7.6% | - | - | |
| | 2017 HSBC UK | CX National Trophy Series #3 | | Shrewsbury Sports Village | 15-16 | | 8 | edinburgh RC | 1 / 22 | 100% | 34:17.70 | 34:17.70 | 0% | - | - | |
| | 2017 HSBC UK | CX National Trophy Series #2 | | Abergavenny Leisure Centre | 15-16 | | 9 | edinburgh RC | 3 / 27 | 92% | 32:07.50 | 31:41.70 | 1.4% | - | - | |
| | 2017 HSBC UK | CX National Trophy Series #1 | | Moorways Leisure Centre, Derbyshire | 15-16 | | 8 | edinburgh RC | 2 / 31 | 97% | 32:28.30 | 32:21.20 | 0.4% | - | - | |
| | 2017 HSBC UK | CX National Trophy Series #5 | | Peel Park, West Yorkshire | 15-16 | | 12 | edinburgh RC | 2 / 23 | 95% | 34:40.90 | 33:51.70 | 2.4% | - | - | |
| | British Cycling - UK CX National Champs '18 | | Hetton Lyons Country Park | 15-16 | | 9 | edinburgh RC | 2 / 24 | 96% | 27:05.20 | 27:03.90 | 0.1% | - | - | |
| | 2018 British Cycling MTB XC #1 | | Sherwood Pines | 15-16 | | 171 | edinburgh RC | 2 / 21 | 95% | 1h05:17.00 | 1h05:00.00 | 0.4% | - | - | |
| | 2018 Scottish XC #2 | | Dalbeattie | 15-16 | | 200 | edinburgh RC | 1 / 5 | 100% | 49:47.00 | 49:47.00 | 0% | - | - | |
| | 2018 British Cycling MTB XC #2 | | Dalby Forest | 15-16 | | 162 | edinburgh RC | 1 / 18 | 100% | 47:20.00 | 47:20.00 | 0% | - | - | |
| | 2018 British Cycling MTB XC #3 | | Glentress | 15-16 | | 31 | edinburgh RC | 1 / 17 | 100% | 40:41.30 | 40:41.30 | 0% | - | - | |
| | 2018 British Cycling MTB XC #4 | | Phoenix Bike Park, Kentford | 15-16 | | 121 | edinburgh RC | 2 / 19 | 94% | 49:10.00 | 48:51.00 | 0.7% | - | - | |
| | British Cycling - UK XC National Champs '18 | | Hadleigh Park | 15-16 | | 61 | edinburgh RC | 1 / 16 | 100% | 51:08.00 | 51:08.00 | 0% | - | - | |
| | 2018 Scottish XC #5 | | Dunoon | 15-16 | | 200 | edinburgh RC | 1 / 6 | 100% | 45:08.00 | 45:08.00 | 0% | - | - | |
| | 2018 HSBC UK | CX National Trophy Series #4 | | York Cycle Sport | 17-18 | | 43 | edinburgh RC | 6 / 25 | 79% | 44:37.80 | 40:53.40 | 9.2% | - | - | |
| | 2018 HSBC UK | CX National Trophy Series #2 | | Beach Park, Irvine | 17-18 | | 46 | edinburgh RC | 1 / 17 | 100% | 41:26.90 | 41:26.90 | 0% | - | - | |
| | 2018 HSBC UK | CX National Trophy Series #1 | | Moorways Leisure Centre, Derbyshire | 17-18 | | 55 | edinburgh RC | 4 / 23 | 86% | 45:27.60 | 43:43.10 | 4% | - | - | |
| | 2018 HSBC UK | CX National Trophy Series #6 | | Shrewsbury Sports Village | 17-18 | | 45 | edinburgh RC | 1 / 20 | 100% | 44:27.70 | 44:27.70 | 0% | - | - | |
| | 2019 HSBC UK | XC National Series #1 | | Sherwood Pines | 17-18 | | 105 | edinburgh RC | 2 / 13 | 92% | 1h07:46.00 | 1h07:15.00 | 0.8% | - | - | |
| | 2019 HSBC UK | XC National Series #2 | | Hadleigh Park | 17-18 | | 103 | edinburgh RC | DNS / 10 | 0% | DNS | 59:49.00 | - | - | - | |
| | 2019 Scottish XC #3 | | Linlithgow | 17-18 | | 400 | | 3 / 5 | 50% | 1h20:33.00 | 1h13:14.00 | 10% | - | - | |
| | 2019 HSBC UK | XC National Series #3 | | Cannock Chase | 17-18 | | 95 | edinburgh RC | 3 / 11 | 80% | 1h18:06.00 | 1h15:03.00 | 4.1% | - | - | |
| | 2018 Scottish XC #3 | | Cathkin Braes Country Park | 15-16 | | 200 | | 1 / 7 | 100% | 32:46.99 | 32:46.99 | 0% | - | - | |
| | British Cycling - UK XC National Champs '19 | | Cannock Chase | 17-18 | | 134 | edinburgh RC | 2 / 9 | 88% | 1h17:20.00 | 1h15:59.00 | 1.8% | - | - | |
| | 2019 Scottish XC #5 | | Lochore Meadows Country Park | 17-18 | | 400 | | 2 / 4 | 67% | 1h04:53.41 | 1h04:05.90 | 1.2% | - | - | |
| | 2018 British Cycling MTB XC #5 | | Royal Welsh Showground | 15-16 | | 1 | edinburgh RC | 1 / 14 | 100% | 41:29.20 | 41:29.20 | 0% | - | - | |
| | 2019 HSBC UK | CX National Trophy Series #3 | | Beach Park, Irvine | 17-18 | | 4 | edinburgh RC | 1 / 23 | 100% | 48:05.80 | 48:05.80 | 0% | - | - | |
| | 2019 HSBC UK | CX National Trophy Series #2 | | Westmorland County Showground | 17-18 | | 4 | edinburgh RC | 2 / 24 | 96% | 47:40.50 | 46:56.70 | 1.6% | - | - | |
| | British Cycling - UK CX National Champs '20 | | Shrewsbury Sports Village | 17-18 | | 93 | edinburgh RC | 3 / 21 | 90% | 40:47.90 | 38:26.00 | 6.2% | - | - | |
| | 2020 Scottish XC #1 | | Linlithgow | 17-18 | | 500 | | 2 / 4 | 67% | 1h19:52.01 | 1h15:07.55 | 6.3% | - | - | |
| | 2019 HSBC UK | CX National Trophy Series #1 | | Moorways Leisure Centre, Derbyshire | 17-18 | | 6 | edinburgh RC | 1 / 28 | 100% | 49:24.50 | 49:24.50 | 0% | - | - | |
| | British Cycling - UK CX National Champs '19 | | Cyclopark | 17-18 | | 8 | edinburgh RC | 2 / 25 | 96% | 38:47.30 | 38:46.50 | 0% | - | - | |
| | 2021 HSBC UK | XC National Series #1 | | Woody's Bike Park | Elite | | 40 | edinburgh RC | 4 / 15 | 79% | 1h43:38.50 | 1h29:12.00 | 16.2% | - | - | |
| | British Cycling - UK XC National Champs '21 | | Newnham Park | U23 | | 93 | edinburgh RC | 3 / 6 | 60% | 1h13:28.40 | 1h07:34.10 | 8.7% | - | - | |
| | 2015 Scottish XC #1 | | Cathkin Braes Country Park | 13-14 | | 182 | | 2 / 4 | 67% | 38:35.11 | 37:31.84 | 2.8% | - | - | |
| | 2021 HSBC UK | XC National Series #3 | | Gaddon's Farm, New Forest | Elite | | 35 | edinburgh RC | 3 / 11 | 80% | 1h39:24.00 | 1h33:08.00 | 6.7% | - | - | |
| | 2021 HSBC UK | XC National Series #5 | | Cannock Chase | Elite | | 24 | edinburgh RC | 2 / 12 | 91% | 1h44:54.60 | 1h44:51.00 | 0.1% | - | - | |
| | 2021 HSBC UK | CX National Trophy Series #1 | | Moorways Leisure Centre, Derbyshire | U23 | | 3 | edinburgh RC | 1 / 16 | 100% | 49:33.00 | 49:33.00 | 0% | - | - | |
| | 2021 HSBC UK | CX National Trophy Series #2 | | Westmorland County Showground | Elite | | 2 | edinburgh RC | 5 / 27 | 85% | 49:25.70 | 46:59.30 | 5.2% | - | - | |
| | 2021 HSBC UK | CX National Trophy Series #3 | | Falkirk | Elite | | 2 | edinburgh RC | 2 / 26 | 96% | 52:12.00 | 51:03.00 | 2.3% | - | - | |
| | 2021 HSBC UK | CX National Trophy Series #4 | | Herrington Country Park, Sunderland | Elite | | 4 | edinburgh RC | 4 / 26 | 88% | 50:56.00 | 49:31.20 | 2.9% | - | - | |
| | 2021 HSBC UK | CX National Trophy Series #5 | | Cyclopark | Elite | | 6 | edinburgh RC | 7 / 28 | 78% | 54:33.00 | 52:21.00 | 4.2% | - | - | |
| | British Cycling - UK CX National Champs '22 | | South of England Event Centre, Crawley | U23 | | 9 | edinburgh RC | 4 / 17 | 81% | 1h00:35.00 | 54:50.00 | 10.5% | - | - | |
| | 2021 HSBC UK | CX National Trophy Series #6 | | Broughton Park | U23 | | 6 | edinburgh RC | 5 / 14 | 69% | 1h03:12.00 | 58:39.00 | 7.8% | - | - | |
| | 2022 Scottish XC #1 | | Comrie Croft | Elite/Expert | | 552 | edinburgh RC | 2 / 7 | 83% | 1h33:08.00 | 1h27:23.00 | 6.6% | - | - | |
| | 2022 British Cycling XC National Series - Schwalbe #1 | | Tong | Elite | | 42 | Spectra Wiggle p/b Vitus | 2 / 12 | 91% | 1h17:17.80 | 1h17:03.10 | 0.3% | - | - | |
| | 2022 British Cycling XC National Series - Schwalbe #2 | | Newcastleton | Elite | | 43 | Spectra Wiggle p/b Vitus | 2 / 17 | 94% | 1h24:13.30 | 1h19:46.40 | 5.6% | - | - | |
| | 2022 British Cycling XC National Series - Schwalbe #5 | | Woody's Bike Park | Elite | | 44 | Spectra Wiggle p/b Vitus | 2 / 14 | 92% | 1h42:37.80 | 1h32:05.60 | 11.4% | - | - | |
| | British Cycling - UK XC National Champs '22 | | Kirroughtree Forest | Elite (XCST) | | 156 | Spectra Wiggle p/b Vitus | 5 / 13 | 67% | 25:57.00 | 23:23.20 | 11% | - | - | |
| | British Cycling - UK XC National Champs '22 | | Kirroughtree Forest | U23 | | 83 | Spectra Wiggle p/b Vitus | 3 / 9 | 75% | 1h21:41.00 | 1h14:37.00 | 9.5% | - | - | |
| | 2022 Scottish CX #1 | | Muir of Ord | 18+ (Women's race) | | 128 | | 1 / 9 | 100% | 41:19.00 | 41:19.00 | 0% | - | - | |
| | 2022 British Cycling CX National Trophy Series #1 | | Moorways Leisure Centre, Derbyshire | Elite | | 6 | Spectra Wiggle p/b Vitus | 6 / 32 | 84% | 57:31.00 | 22:32.00 | 155.3% | - | - | |
| | 2023 Scottish XC #2 | | Fort William | Elite/Expert | | 103 | | 2 / 8 | 86% | 1h43:17.00 | 1h39:46.00 | 3.5% | - | - | |
| | 2023 Scottish XC #3 | | Lochore Meadows Country Park | Elite/Expert | | 761 | | 3 / 6 | 60% | 1h28:41.00 | 1h26:27.00 | 2.6% | - | - | |
| | 2023 British Cycling XC National Series #4 | | Woody's Bike Park | Elite (Women's race) | | 34 | Team Spectra Cannondale | 12 / 24 | 52% | 1h50:28.00 | 1h30:37.00 | 21.9% | - | - | |
| | 2023 British Cycling CX National Trophy Series #6 | | Tong | U23 | | 30 | Team Spectra Cannondale | 10 / 17 | 44% | 59:35.00 | 56:48.00 | 4.9% | - | - | |
| | British Cycling - UK CX National Champs '24 | | Callendar Estate | U23 | | 39 | Team Spectra Cannondale | 6 / 16 | 67% | 53:28.00 | 49:14.60 | 8.6% | - | - | |
| | 2024 Scottish XC #1 | | Cathkin Braes Country Park | Elite | | 450 | | 4 / 4 | 0% | 1h50:57.99 | 1h37:03.16 | 14.3% | - | - | |
| | UCI - XCO World Championships '20 | | Leogang | 17-18 | 10064102836 & 2002 | 25 | UK | 24 / 47 | 50% | 1h30:39.00 | 1h15:55.00 | 19.4% | - | - | |
| | 2021 Mercedes-Benz UCI World Cup XC #2 | | Nové Mesto | U23 | 10064102836 & 2002 | 51 | | 57 / 70 | 19% | -1LAP | 1h25:21.00 | - | - | - | |
| | 2022 Mercedes-Benz UCI World Cup XC #2 | | Bikepark Albstadt | U23 | 10064102836 & 2002 | 60 | Great Britain | 42 / 71 | 41% | 1h20:07.00 | 1h07:48.00 | 18.2% | - | - | |
| | 2022 Mercedes-Benz UCI World Cup XC #3 | | Nové Mesto | U23 | 10064102836 & 2002 | 60 | Great Britain | 30 / 75 | 61% | 1h16:24.00 | 1h07:58.00 | 12.4% | - | - | |
| | 2021 Mercedes-Benz UCI World Cup XC #1 | | Bikepark Albstadt | U23 | 10064102836 & 2002 | 74 | | 56 / 72 | 23% | -1LAP | 1h08:02.00 | - | - | - | |
| | 2021 Mercedes-Benz UCI World Cup XC #4 | | Les Gets | U23 | 10064102836 & 2002 | 48 | | 36 / 62 | 43% | -1LAP | 1h09:47.00 | - | - | - | |
| | 2021 Mercedes-Benz UCI World Cup XC #5 | | Lenzerheide | U23 | 10064102836 & 2002 | 45 | | 35 / 47 | 26% | 1h20:14.00 | 1h08:35.00 | 17% | - | - | |
| | 2023 UCI World Cup XCO #1 | | Nové Mesto | U23 | 10064102836 & 2002 | 54 | | 67 / 77 | 13% | -1LAP | 1h09:21.00 | - | - | - | |
| | 2023 UCI World Cup XCO #2 | | Lenzerheide | U23 | 10064102836 & 2002 | 51 | | 48 / 69 | 31% | 1h24:13.00 | 1h12:42.00 | 15.8% | - | - | |
| | 2023 UCI World Cup XCO #3 | | Leogang | U23 | 10064102836 & 2002 | 50 | | 45 / 62 | 28% | 1h15:19.00 | 1h05:09.00 | 15.6% | - | - | |