| | 2023 British Cycling CX National Trophy Series #5 | | Cyclopark | 23+ | | 36 | GHOST Factory Racing | 2 / 17 | 94% | 53:21.00 | 52:53.00 | 0.9% | - | - | |
| | 2023 UCI World Cup XC #8 | | Mont-Sainte-Anne, QC | Elite | 10008874672 & 1996 | 45 | GHOST Factory Racing | 31 / 57 | 46% | 1h41:07.00 | 1h28:09.00 | 14.7% | - | - | |
| | 2023 UCI World Cup XCC #8 | | Mont-Sainte-Anne, QC | Elite | 10008874672 & 1996 | 39 | GHOST Factory Racing | 24 / 40 | 41% | 20:33.00 | 19:40.00 | 4.5% | - | - | |
| | 2023 UCI World Cup XC #7 | | Snowshoe, WV | Elite | 10008874672 & 1996 | 43 | GHOST Factory Racing | 27 / 58 | 54% | 1h28:10.00 | 1h21:56.00 | 7.6% | - | - | |
| | 2023 UCI World Cup XCC #7 | | Snowshoe, WV | Elite | 10008874672 & 1996 | 37 | GHOST Factory Racing | 28 / 40 | 31% | 21:35.00 | 19:54.00 | 8.5% | - | - | |
| | 2023 UCI World Cup XC #6 | | Les Gets | Elite | 10008874672 & 1996 | 52 | GHOST Factory Racing | 37 / 71 | 49% | 1h24:09.00 | 1h14:51.00 | 12.4% | - | - | |
| | 2023 UCI World Cup XC #5 | | Pal Arinsal | Elite | 10008874672 & 1996 | 52 | GHOST Factory Racing | 35 / 75 | 54% | 1h23:35.00 | 1h14:09.00 | 12.7% | - | - | |
| | UCI - XCO World Championships '23 | | Glentress | Elite | 10008874672 & 1996 | 52 | UK | 25 / 64 | 62% | 1h32:59.00 | 1h24:14.00 | 10.4% | - | - | |
| | UCI - XCC World Championships '23 | | Glentress | Elite | 10008874672 & 1996 | 41 | UK | 13 / 42 | 71% | 22:21.00 | 21:17.00 | 5% | - | - | |
| | UCI - XCM World Championships '23 | | Glentress | Elite | 10008874672 & 1996 | 35 | UK | 27 / 55 | 52% | 5h53:27.00 | 5h07:50.00 | 14.8% | - | - | |
| | British Cycling - UK XC National Champs '23 | | Tong | Elite (Women's race) | | 33 | GHOST Factory Racing | 2 / 13 | 92% | 1h23:34.45 | 1h18:10.45 | 6.9% | - | - | |
| | British Cycling - UK XC National Champs '23 | | Tong | Elite (Short Track Junior/Senior women's race) | | 553 | GHOST Factory Racing | DNF / 11 | 0% | DNF | 18:29.10 | - | - | - | |
| | Eventrex - Vittoria MTB Marathon | | Pippingford | Open | | 204 | | 1 / 32 | 100% | 4h22:21.90 | 1h15:14.60 | 248.7% | - | - | |
| | 2023 UCI World Cup XC #4 | | Val di Sole | Elite | 10008874672 & 1996 | 48 | GHOST Factory Racing | 25 / 72 | 66% | 1h26:32.00 | 1h19:49.00 | 8.4% | - | - | |
| | 2023 UCI World Cup XCC #4 | | Val di Sole | Elite | 10008874672 & 1996 | 37 | GHOST Factory Racing | DNS / 40 | 0% | DNS | 19:37.00 | - | - | - | |
| | 2023 UCI World Cup XC #3 | | Leogang | Elite | 10008874672 & 1996 | 50 | GHOST Factory Racing | 20 / 85 | 77% | 1h22:06.00 | 1h16:38.00 | 7.1% | - | - | |
| | 2023 UCI World Cup XC #2 | | Lenzerheide | Elite | 10008874672 & 1996 | 51 | GHOST Factory Racing | 58 / 85 | 32% | 1h36:32.00 | 1h24:41.00 | 14% | - | - | |
| | 2023 British Cycling XC National Series #4 | | Woody's Bike Park | Elite (Women's race) | | 31 | GHOST Factory Racing | 1 / 24 | 100% | 1h30:37.00 | 1h30:37.00 | 0% | - | - | |
| | UCI - Gralloch | | Gatehouse of Fleet | 19-34 | | 40 | GHOST Factory Racing | 8 / 41 | 83% | 4h12:37.00 | 4h07:18.00 | 2.2% | - | - | |
| | 2023 Scottish XC #3 | | Lochore Meadows Country Park | Elite/Expert | | 765 | | 1 / 6 | 100% | 1h26:27.00 | 1h26:27.00 | 0% | - | - | |
| | 2023 UCI World Cup XC #1 | | Nové Mesto | Elite | 10008874672 & 1996 | 60 | GHOST Factory Racing | 46 / 93 | 51% | 1h31:33.00 | 1h23:01.00 | 10.3% | - | - | |
| | 2023 British Cycling XC National Series #3 | | Holywell Estate | Elite (Women's race) | | 32 | | 2 / 18 | 94% | 1h18:28.00 | 1h16:27.00 | 2.6% | - | - | |
| | 2023 British Cycling XC National Series #2 | | Margam Park | Elite (Women's race) | | 32 | | DNS / 27 | 0% | DNS | 1h28:17.00 | - | - | - | |
| | Tweedlove - Pirelli Tweedlove - ProAm UK National Champs | | Glentress | 21-34 | | 2231 | HUNT Bike Wheels | 7 / 25 | 75% | 16:39.36 | 15:24.12 | 8.1% | 11:50.65 | 40.6% | |
| | 2022 Mercedes-Benz UCI World Cup XC #9 | | Val di Sole | Elite | 10008874672 & 1996 | 70 | | 18 / 79 | 78% | 1h28:43.00 | 1h20:23.00 | 10.4% | - | - | |
| | 2022 Mercedes-Benz UCI World Cup XCC #9 | | Val di Sole | Elite | 10008874672 & 1996 | 40 | | 22 / 40 | 46% | 22:00.00 | 20:56.00 | 5.1% | - | - | |
| | UCI - XCO World Championships '22 | | Les Gets | Elite | 10008874672 & 1996 | 38 | UK | 41 / 78 | 48% | -1LAP | 1h22:08.00 | - | - | - | |
| | British Cycling - UK XC National Champs '22 | | Kirroughtree Forest | Elite | | 41 | | 3 / 17 | 88% | 1h31:48.00 | 1h28:30.00 | 3.7% | - | - | |
| | British Cycling - UK XC National Champs '22 | | Kirroughtree Forest | Elite (XCST) | | 152 | | 4 / 13 | 75% | 23:59.60 | 23:23.20 | 2.6% | - | - | |
| | 2022 Mercedes-Benz UCI World Cup XC #6 | | Pal Arinsal | Elite | 10008874672 & 1996 | 63 | | 19 / 65 | 72% | 1h21:08.00 | 1h15:21.00 | 7.7% | - | - | |
| | 2022 Mercedes-Benz UCI World Cup XCC #6 | | Pal Arinsal | Elite | 10008874672 & 1996 | 31 | | 29 / 40 | 28% | 23:03.00 | 20:50.00 | 10.6% | - | - | |
| | 2022 Mercedes-Benz UCI World Cup XC #5 | | Lenzerheide | Elite | 10008874672 & 1996 | 67 | | 30 / 76 | 61% | 1h24:38.00 | 1h17:31.00 | 9.2% | - | - | |
| | 2022 Mercedes-Benz UCI World Cup XCC #5 | | Lenzerheide | Elite | 10008874672 & 1996 | 40 | | 31 / 40 | 23% | -2LAP | 20:30.00 | - | - | - | |
| | 2022 British Cycling XC National Series - Schwalbe #5 | | Woody's Bike Park | Elite | | 41 | | 1 / 14 | 100% | 1h32:05.60 | 1h32:05.60 | 0% | - | - | |
| | 2022 Mercedes-Benz UCI World Cup XC #3 | | Nové Mesto | Elite | 10008874672 & 1996 | 67 | Great Britain | DNF / 86 | 0% | DNF | 1h21:17.00 | - | - | - | |
| | 2022 British Cycling XC National Series - Schwalbe #3 | | Lochore Meadows Country Park | Elite | | 21 | | 1 / 13 | 100% | 1h28:15.60 | 1h28:15.60 | 0% | - | - | |
| | 2022 Mercedes-Benz UCI World Cup XC #1 | | Petropolis | Elite | 10008874672 & 1996 | 21 | | 25 / 56 | 56% | 1h39:28.00 | 1h29:41.00 | 10.9% | - | - | |
| | 2022 Mercedes-Benz UCI World Cup XCC #1 | | Petropolis | Elite | 10008874672 & 1996 | 30 | | 21 / 40 | 49% | 21:00.00 | 19:55.00 | 5.4% | - | - | |
| | 2021 Enduro World Series - Vittoria Tweed Valley | | Innerleithen | Open | GBR.1996.38607 | 194 | | 25 / 28 | 11% | 33:00.32 | 28:50.89 | 14.4% | 23:53.12 | 38.2% | |
| | 2021 Mercedes-Benz UCI World Cup XC #5 | | Lenzerheide | Elite | 10008874672 & 1996 | 44 | | 14 / 74 | 82% | 1h22:52.00 | 1h19:16.00 | 4.5% | - | - | |
| | Cold Brew Events - Deadwater 100 | | Kielder Forest | U40 | | 302 | | 1 / 11 | 100% | 6h14:33.00 | 6h14:33.00 | 0% | - | - | |
| | British Cycling - UK XC National Champs '21 | | Newnham Park | Senior Champs | | 42 | | 1 / 16 | 100% | 1h22:47.50 | 1h22:47.50 | 0% | - | - | |
| | 2021 Mercedes-Benz UCI World Cup XC #4 | | Les Gets | Elite | 10008874672 & 1996 | 46 | | 11 / 75 | 86% | 1h32:41.00 | 1h27:23.00 | 6.1% | - | - | |
| | Tweedlove - Pirelli Glentress 7 | | Glentress | Pairs: U75 | | 300A | TEAM: 3 Bananas a Day | 1 / 6 | 100% | 6h55:00.00 | 6h55:00.00 | 0% | - | - | |
| | 2021 Scottish XC #1 | | Cathkin Braes Country Park | Fast | | 20 | | 8 / 40 | 82% | - | | - | - | - | |
| | 2021 HSBC UK | XC National Series #1 | | Woody's Bike Park | Elite | | 36 | | 1 / 15 | 100% | 1h29:12.00 | 1h29:12.00 | 0% | - | - | |
| | 2021 Mercedes-Benz UCI World Cup XC #2 | | Nové Mesto | Elite | 10008874672 & 1996 | 43 | | 56 / 101 | 45% | 1h37:09.00 | 1h25:13.00 | 14% | - | - | |
| | 2021 Mercedes-Benz UCI World Cup XC #1 | | Bikepark Albstadt | Elite | 10008874672 & 1996 | 41 | | 40 / 106 | 63% | 1h30:14.00 | 1h21:38.00 | 10.5% | - | - | |
| | UCI - XCO World Championships '20 | | Leogang | Elite | 10008874672 & 1996 | 19 | UK | 5 / 60 | 93% | 1h31:50.00 | 1h27:33.00 | 4.9% | - | - | |
| | 2020 Mercedes-Benz UCI World Cup XC #2 | | Nové Mesto | Elite | 10008874672 & 1996 | 50 | | 15 / 74 | 81% | 1h18:29.00 | 1h14:07.00 | 5.9% | - | - | |
| | 2020 Mercedes-Benz UCI World Cup XC #1 | | Nové Mesto | Elite | 10008874672 & 1996 | 20 | | 11 / 73 | 86% | 1h25:10.00 | 1h22:06.00 | 3.7% | - | - | |
| | 2020 Mercedes-Benz UCI World Cup XCC #2 | | Nové Mesto | Elite | 10008874672 & 1996 | 20 | | 25 / 40 | 38% | 19:51.00 | 19:32.00 | 1.6% | - | - | |
| | 2020 Mercedes-Benz UCI World Cup XCC #1 | | Nové Mesto | Elite | 10008874672 & 1996 | 25 | | 20 / 40 | 51% | 21:11.00 | | 0% | - | - | |
| | 2019 Mercedes-Benz UCI World Cup XC #7 | | Snowshoe, WV | Elite | 10008874672 & 1996 | 51 | | 23 / 59 | 62% | 1h22:40.00 | 1h17:51.00 | 6.2% | - | - | |
| | UCI - XCO World Championships '19 | | Mont-Sainte-Anne, QC | Elite | 10008874672 & 1996 | 35 | UK | 46 / 63 | 27% | - | 1h28:51.00 | - | - | - | |
| | 2019 Mercedes-Benz UCI World Cup XC #6 | | Lenzerheide | Elite | 10008874672 & 1996 | 62 | | 14 / 69 | 81% | 1h26:09.00 | 1h21:09.00 | 6.2% | - | - | |
| | 2019 Mercedes-Benz UCI World Cup XC #5 | | Val di Sole | Elite | 10008874672 & 1996 | 62 | | 32 / 75 | 58% | 1h30:16.00 | 1h21:59.00 | 10.1% | - | - | |
| | British Cycling - UK XC National Champs '19 | | Cannock Chase | Elite | | 42 | | 2 / 19 | 94% | 1h31:17.00 | 1h30:04.00 | 1.4% | - | - | |
| | 2019 Mercedes-Benz UCI World Cup XC #4 | | Les Gets | Elite | 10008874672 & 1996 | 65 | | 33 / 73 | 56% | 1h33:28.00 | 1h26:29.00 | 8.1% | - | - | |
| | 2019 Mercedes-Benz UCI World Cup XC #3 | | Vallnord | Elite | 10008874672 & 1996 | 62 | | 43 / 72 | 41% | 1h33:12.00 | 1h22:59.00 | 12.3% | - | - | |
| | 2019 Mercedes-Benz UCI World Cup XC #2 | | Nové Mesto | Elite | 10008874672 & 1996 | 69 | | 15 / 78 | 82% | 1h30:35.00 | 1h27:31.00 | 3.5% | - | - | |
| | 2019 Mercedes-Benz UCI World Cup XC #1 | | Bikepark Albstadt | Elite | 10008874672 & 1996 | 76 | | 22 / 77 | 72% | 1h32:27.00 | 1h26:03.00 | 7.4% | - | - | |
| | 2019 Tweedlove Triple Crown #1 - Vallelujah | | Glentress | 21-34 | | 1132 | | 3 / 12 | 82% | 21:03.41 | 19:41.62 | 6.9% | 16:09.05 | 30.4% | |
| | 2019 Scottish XC #1 | | Cathkin Braes Country Park | Elite/Expert | | 301 | | 1 / 2 | 100% | 1h21:53.90 | 1h21:53.90 | 0% | - | - | |
| | 2018 HSBC UK | CX National Trophy Series #2 | | Beach Park, Irvine | Elite | | 9 | HABITAT MOUNTAIN BIKE TEAM | 4 / 20 | 84% | 42:30.30 | 40:18.60 | 5.5% | - | - | |
| | Muckmedden - Fair City Enduro (EWS Qualifier) | | Perth | Hardtail | | 21 | Habitat MTB Team | 1 / 2 | 100% | 14:58.00 | 14:58.00 | 0% | 10:51.00 | 37.9% | |
| | UCI - XCO World Championships '18 | | Lenzerheide | U23 | 10008874672 & 1996 | 8 | Great Britain | 25 / 52 | 53% | - | 1h22:53.00 | - | - | - | |
| | 2018 Mercedes-Benz UCI World Cup XC #7 | | La Bresse | U23 | 10008874672 & 1996 | 8 | HABITAT MOUNTAIN BIKE TEAM | 26 / 51 | 50% | 1h33:47.00 | 1h22:01.00 | 14.4% | - | - | |
| | British Cycling - UK XC National Champs '18 | | Hadleigh Park | U23 | | 122 | Habitat Mountain BT | 3 / 9 | 75% | 1h25:09.00 | 1h18:00.00 | 9.2% | - | - | |
| | 2018 Mercedes-Benz UCI World Cup XC #5 | | Vallnord | U23 | 10008874672 & 1996 | ? | HABITAT MOUNTAIN BIKE TEAM | 6 / 35 | 85% | 1h13:54.00 | 1h09:42.00 | 6% | - | - | |
| | 2018 Mercedes-Benz UCI World Cup XC #4 | | Val di Sole | U23 | 10008874672 & 1996 | 15 | HABITAT MOUNTAIN BIKE TEAM | 4 / 54 | 94% | 1h03:30.00 | 1h01:08.00 | 3.9% | - | - | |
| | 2018 Mercedes-Benz UCI World Cup XC #3 | | Nové Mesto | U23 | 10008874672 & 1996 | ? | HABITAT MOUNTAIN BIKE TEAM | 11 / 61 | 83% | 1h27:37.00 | 1h24:08.00 | 4.1% | - | - | |
| | 2018 Mercedes-Benz UCI World Cup XC #2 | | Bikepark Albstadt | U23 | 10008874672 & 1996 | 9 | HABITAT MOUNTAIN BIKE TEAM | DNF / 68 | 0% | DNF | 1h18:04.00 | - | - | - | |
| | 2018 British Cycling MTB XC #3 | | Glentress | Elite | | 51 | HABITAT MOUNTAIN BIKE TEAM | 1 / 11 | 100% | 1h37:12.00 | 1h37:12.00 | 0% | - | - | |
| | 2018 British Cycling MTB XC #1 | | Sherwood Pines | Elite | | 51 | Habitat Mountain BT | 1 / 18 | 100% | 1h42:05.00 | 1h42:05.00 | 0% | - | - | |
| | 2018 Mercedes-Benz UCI World Cup XC #1 | | Stellenbosch, WC | U23 | 10008874672 & 1996 | 5 | HABITAT MOUNTAIN BIKE TEAM | 9 / 26 | 68% | 1h22:24.00 | 1h18:52.00 | 4.5% | - | - | |
| | Muckmedden - Fair City Enduro | | Perth | 19-29 | | 22 | OMX Pro Team | 3 / 11 | 80% | 16:36.00 | 15:37.00 | 6.3% | 12:21.00 | 34.4% | |
| | Muckmedden - Forfar Funduro | | Forfar | 19-29 | | 310 | | 1 / 10 | 100% | 16:47.00 | 16:47.00 | 0% | 13:06.00 | 28.1% | |
| | 2017 UCI World Cup XC #6 | | Val di Sole | U23 | 10008874672 & 1996 | 11 | OMX Pro Team | 4 / 42 | 93% | 1h18:48.00 | 1h14:30.00 | 5.8% | - | - | |
| | 2017 UCI World Cup XC #5 | | Mont-Sainte-Anne, QC | U23 | 10008874672 & 1996 | 12 | OMX Pro Team | 7 / 28 | 78% | 1h12:54.00 | 1h06:34.00 | 9.5% | - | - | |
| | British Cycling - UK XC National Champs '17 | | Cannock Chase | U23 | | 122 | OMX Pro Team | 2 / 9 | 88% | 1h29:15.00 | 1h28:24.00 | 1% | - | - | |
| | 2017 UCI World Cup XC #4 | | Lenzerheide | U23 | 10008874672 & 1996 | 13 | OMX Pro Team | 12 / 50 | 78% | 1h21:14.00 | 1h14:12.00 | 9.5% | - | - | |
| | 2017 UCI World Cup XC #3 | | Vallnord | U23 | 10008874672 & 1996 | 15 | OMX Pro Team | 8 / 44 | 84% | 1h24:09.00 | 1h16:47.00 | 9.6% | - | - | |
| | 2017 British Cycling MTB XC #4 | | Dalby Forest | Elite | | 52 | OMX Pro Team | 2 / 15 | 93% | 2h01:00.00 | 1h54:40.00 | 5.5% | - | - | |
| | 2017 UCI World Cup XC #2 | | Bikepark Albstadt | U23 | 10008874672 & 1996 | 14 | OMX Pro Team | 18 / 61 | 72% | 1h32:46.00 | 1h23:17.00 | 11.4% | - | - | |
| | 2017 UCI World Cup XC #1 | | Nové Mesto | U23 | 10008874672 & 1996 | 12 | OMX Pro Team | 14 / 56 | 76% | 1h19:37.00 | 1h12:45.00 | 9.4% | - | - | |
| | 2017 British Cycling MTB XC #1 | | Pembrey Country Park | Elite | | 53 | OMX Pro Team | 2 / 17 | 94% | 1h43:20.00 | 1h40:56.00 | 2.4% | - | - | |
| | Muckmedden - Fair City Enduro | | Perth | 19-29 | | 194 | OMX Pro Team | 1 / 11 | 100% | 16:29.00 | 16:29.00 | 0% | 12:19.00 | 33.8% | |
| | 2016 Scottish XC #6 | | Forfar | Elite | | 28 | | 1 / 6 | 100% | 1h17:25.91 | 1h17:25.91 | 0% | - | - | |
| | 2016 UCI World Cup XC #6 | | Vallnord | U23 | GBR19960918 | 23 | Novus OMX Pro Team | 15 / 27 | 46% | - | 1h21:24.00 | - | - | - | |
| | 2016 POC Scottish Enduro Series #4 | | Laggan Wolftrax | 15-21 | | 295 | OMX Po Team | 4 / 9 | 63% | 30:59.25 | 29:42.85 | 4.3% | 21:41.06 | 42.9% | |
| | 2016 British Cycling MTB XC #5 | | Cannock Chase | Elite | | 55 | Novus OMX Pro Team (OMX) | 1 / 17 | 100% | 1h38:40.00 | 1h38:40.00 | 0% | - | - | |
| | Hadleigh Park - Hadleigh Park International | | Hadleigh Park | Elite | GBR19960918 & 20 | 14 | Novus OMX Pro Team | 9 / 20 | 58% | 1h30:04.00 | 1h19:47.00 | 12.9% | - | - | |
| | British Cycling - UK XC National Champs '16 | | Cathkin Braes Country Park | U23 | | 124 | Novus OMX Pro Team (OMX) | 2 / 8 | 86% | 1h29:13.00 | 1h26:34.00 | 3.1% | - | - | |
| | 2016 UCI World Cup XC #4 | | Lenzerheide | U23 | GBR19960918 | 28 | Novus OMX Pro Team | 11 / 34 | 70% | 1h28:20.00 | 1h22:12.00 | 7.5% | - | - | |
| | 2016 British Cycling MTB XC #4 | | Fforest Fields | Elite | | 49 | Novus OMX Pro Team (OMX) | 2 / 21 | 95% | 1h20:44.00 | 1h16:29.00 | 5.6% | - | - | |
| | 2016 UCI World Cup XC #3 | | La Bresse | U23 | GBR19960918 | 39 | Novus OMX Pro Team | 16 / 53 | 71% | 1h17:41.00 | 1h08:28.00 | 13.5% | - | - | |
| | 2016 UCI World Cup XC #2 | | Bikepark Albstadt | U23 | GBR19960918 | 47 | Novus OMX Pro Team | 24 / 59 | 60% | 1h34:01.00 | 1h22:01.00 | 14.6% | - | - | |
| | 2016 British Cycling MTB XC #3 | | Dalby Forest | Elite | | 57 | Novus OMX Pro Team (OMX) | 5 / 24 | 83% | 1h28:18.00 | 1h20:29.00 | 9.7% | - | - | |
| | 2016 British Cycling MTB XC #2 | | Newnham Park | Elite | | 65 | Novus OMX Pro Team (OMX) | 2 / 23 | 95% | 1h49:16.00 | 1h38:49.00 | 10.6% | - | - | |