| | 2014 Empire PMBA Enduro #1 - Escape to Gisburn | | Gisburn Forest | U18 | | 16 | Nutcracker racing | 2 / 20 | 95% | 10:05.00 | 9:22.00 | 7.7% | 8:53.00 | 13.5% | |
| | 2014 POC Scottish Enduro Series #5 | | Innerleithen | U19 | | 327 | | 6 / 18 | 71% | 26:26.00 | 20:22.00 | 29.8% | 19:49.00 | 33.4% | |
| | 2015 Nutcracker Altura XC #1 | | Whinlatter | 17-18 | | 67 | Nutcracker racing | 1 / 19 | 100% | 1h26:08.00 | 1h26:08.00 | 0% | - | - | |
| | 2014 British Cycling MTB XC #2 | | Wheal Velocity | 17-18 | | 128 | Nutcracker racing | 9 / 26 | 68% | 1h22:29.00 | 1h17:19.00 | 6.7% | - | - | |
| | 2014 British Cycling MTB XC #3 | | Margam Park | 17-18 | | 170 | Nutcracker racing | 1 / 26 | 100% | 1h10:18.00 | 1h10:18.00 | 0% | - | - | |
| | 2014 Nutcracker Altura XC #2 | | Gandale | 17-18 | | 2000 | Nutcracker racing | 3 / 5 | 50% | 1h39:56.00 | 1h27:19.00 | 14.5% | - | - | |
| | 2015 British Cycling MTB XC #2 | | Newnham Park | 17-18 | | 101 | Nutcracker racing | 1 / 30 | 100% | 59:30.00 | 59:30.00 | 0% | - | - | |
| | 2015 British Cycling MTB XC #1 | | Sherwood Pines | 17-18 | | 152 | Nutcracker racing | 1 / 40 | 100% | 1h12:34.00 | 1h12:34.00 | 0% | - | - | |
| | 2015 British Cycling MTB XC #3 | | Fforest Fields | 17-18 | | 101 | Nutcracker racing | 1 / 17 | 100% | 1h06:33.00 | 1h06:33.00 | 0% | - | - | |
| | 2015 Nutcracker Altura XC #3 | | Aske Moor | 17-18 | | 42 | Nutcracker racing | 1 / 14 | 100% | 1h24:35.00 | 1h24:35.00 | 0% | - | - | |
| | 2015 British Cycling MTB XC #4 | | Cathkin Braes Country Park | 17-18 | | 201 | Nutcracker racing | 1 / 25 | 100% | 1h12:03.00 | 1h12:03.00 | 0% | - | - | |
| | British Cycling - UK XC National Champs '15 | | Hadleigh Park | 17-18 | | 101 | Nutcracker racing | 1 / 27 | 100% | 1h00:10.00 | 1h00:10.00 | 0% | - | - | |
| | 2015 POC Scottish Enduro Series #5 | | Fort William | 16-18 | | 37 | Nutcracker racing | 2 / 15 | 93% | 19:36.00 | 19:02.00 | 3% | 13:45.00 | 42.6% | |
| | 2016 Midlands XC #2 | | Cannock Chase | Elite | | 202 | 100% ME | 3 / 10 | 78% | 1h34:02.00 | 1h29:56.00 | 4.6% | - | - | |
| | 2016 British Cycling MTB XC #2 | | Newnham Park | Elite | | 26 | 100%me | 7 / 34 | 82% | 1h49:03.00 | 1h42:54.00 | 6% | - | - | |
| | 2016 British Cycling MTB XC #3 | | Dalby Forest | Elite | | 21 | 100%me | 16 / 36 | 57% | 1h33:39.00 | 1h25:18.00 | 9.8% | - | - | |
| | 2016 British Cycling MTB XC #4 | | Fforest Fields | Elite | | 16 | 100%me | 3 / 30 | 93% | 1h48:57.00 | 1h45:49.00 | 3% | - | - | |
| | British Cycling - UK XC National Champs '16 | | Cathkin Braes Country Park | U23 | | 104 | 100%me | 1 / 16 | 100% | 1h29:44.00 | 1h29:44.00 | 0% | - | - | |
| | Ard Rock - Ard Moors | | Lord Stones Country Park | 18-29 | | 124 | Yorkshire Rippers | 4 / 111 | 97% | 14:04.50 | 13:41.94 | 2.7% | 13:03.19 | 7.8% | |
| | 2016 POC Scottish Enduro Series #6 | | Ae Forest | 19-29 | | 49 | | 11 / 69 | 85% | 18:43.50 | 17:41.39 | 5.9% | 16:54.10 | 10.8% | |
| | 2017 Hope PMBA Enduro #1 | | Gisburn Forest | 19-29 | | 348 | | 5 / 59 | 93% | 10:44.72 | 10:30.21 | 2.3% | 9:58.98 | 7.6% | |
| | 2017 British Cycling MTB XC #1 | | Pembrey Country Park | Elite | | 6 | 100% ME | 8 / 37 | 81% | 1h47:29.00 | 1h46:01.00 | 1.4% | - | - | |
| | 2017 British Cycling MTB XC #3 | | Aske Moor | Elite | | 6 | 100% ME | 2 / 32 | 97% | 1h35:25.00 | 1h34:48.00 | 0.7% | - | - | |
| | British Cycling - UK XC National Champs '17 | | Cannock Chase | U23 | | 101 | 100% ME | 1 / 16 | 100% | 1h29:42.00 | 1h29:42.00 | 0% | - | - | |
| | 2017 British Cycling MTB XC #5 | | Royal Welsh Showground | Elite | | 2 | 100% ME | 1 / 25 | 100% | 1h27:17.00 | 1h27:17.00 | 0% | - | - | |
| | Ard Rock - Ard Moors | | Lord Stones Country Park | 18-29 | | 159 | Yorkshire Puddings | 5 / 56 | 93% | 15:52.84 | 14:10.27 | 12.1% | 14:08.35 | 12.3% | |
| | 2017 Enduro World Series #8 | | Finale Ligure | U21 | | 652 | | 46 / 54 | 15% | 1h07:18.54 | 50:48.20 | 32.5% | 49:11.17 | 36.9% | |
| | British Cycling - UK CX National Champs '18 | | Hetton Lyons Country Park | 19-22 | | 25 | OMX Pro Team | 19 / 33 | 44% | - | 50:25.80 | - | - | - | |
| | 2018 British Cycling MTB XC #2 | | Dalby Forest | Elite | | 3 | Silverback OMX RT | 2 / 30 | 97% | 1h33:43.00 | 1h33:22.00 | 0.4% | - | - | |
| | 2018 British Cycling MTB XC #4 | | Phoenix Bike Park, Kentford | Elite | | 3 | SILVERBACK OMX PRO TEAM | 1 / 27 | 100% | 1h34:47.00 | 1h34:47.00 | 0% | - | - | |
| | British Cycling - UK XC National Champs '18 | | Hadleigh Park | U23 | | 101 | 100% ME | 1 / 16 | 100% | 1h20:01.00 | 1h20:01.00 | 0% | - | - | |
| | Ard Rock - Ard Moors | | Lord Stones Country Park | Enduro: 18-29 | | 120 | YPs | 5 / 109 | 96% | 15:59.72 | 15:29.61 | 3.2% | 15:29.61 | 3.2% | |
| | 2019 HSBC UK | XC National Series #1 | | Sherwood Pines | Elite | | 4 | Team Inspired | DNF / 35 | 0% | DNF | 1h41:14.00 | - | - | - | |
| | 2019 HSBC UK | XC National Series #2 | | Hadleigh Park | Elite | | 6 | Team Inspired | 4 / 40 | 92% | 1h26:01.00 | 1h24:30.00 | 1.8% | - | - | |
| | 2019 HSBC UK | XC National Series #3 | | Cannock Chase | Elite | | 4 | Team Inspired | 3 / 28 | 93% | 1h32:32.00 | 1h29:55.00 | 2.9% | - | - | |
| | British Cycling - UK XC National Champs '19 | | Cannock Chase | Elite | | 4 | Team Inspired | 1 / 37 | 100% | 1h33:58.00 | 1h33:58.00 | 0% | - | - | |
| | Ard Rock - Ard Moors | | Lord Stones Country Park | 18-29 | | 219 | Yorkshire Puddings | 10 / 112 | 92% | 16:48.72 | 16:18.24 | 3.1% | 16:18.24 | 3.1% | |
| | International Olympic Committee - Ready Steady Tokyo - 2020 Olympic XCO Test Event | | Tokyo | Elite | | 40 | UK | 20 / 46 | 58% | 1h20:24.00 | 1h17:18.00 | 4% | - | - | |
| | British Cycling - UK XC National Champs '21 | | Newnham Park | Senior Champs | | 1 | Team Inspired | 1 / 31 | 100% | 1h26:37.70 | 1h26:37.70 | 0% | - | - | |
| | Cold Brew Events - Deadwater 100 | | Kielder Forest | U40 | | 104 | Team Inspired | 2 / 68 | 99% | 4h57:18.00 | 4h57:10.00 | 0% | - | - | |
| | 2021 HSBC UK | XC National Series #3 | | Gaddon's Farm, New Forest | Elite | | 17 | Team Inspired | 1 / 18 | 100% | 1h36:39.00 | 1h36:39.00 | 0% | - | - | |
| | Ard Rock - Ard Moors | | Lord Stones Country Park | Enduro: U30 | | 708 | | 8 / 65 | 89% | 16:56.36 | 16:05.56 | 5.3% | 15:36.15 | 8.6% | |
| | 2017 UCI World Cup XC #1 | | Nové Mesto | U23 | 10009554278 & 1997 | 43 | | 40 / 152 | 74% | 1h22:01.00 | 1h16:39.00 | 7% | - | - | |
| | 2017 UCI World Cup XC #2 | | Bikepark Albstadt | U23 | 10009554278 & 1997 | 47 | | 6 / 156 | 97% | 1h25:32.00 | 1h24:06.00 | 1.7% | - | - | |
| | 2017 UCI World Cup XC #4 | | Lenzerheide | U23 | 10009554278 & 1997 | 15 | | 29 / 140 | 80% | 1h34:31.00 | 1h28:48.00 | 6.4% | - | - | |
| | 2017 UCI World Cup XC #3 | | Vallnord | U23 | 10009554278 & 1997 | 12 | | 16 / 96 | 84% | 1h20:11.00 | 1h17:14.00 | 3.8% | - | - | |
| | 2017 UCI World Cup XC #6 | | Val di Sole | U23 | 10009554278 & 1997 | 34 | | 17 / 107 | 85% | 1h18:16.00 | 1h14:34.00 | 5% | - | - | |
| | UCI - XCO World Championships '17 | | Cairns, QLD | U23 | 10009554278 & 1997 | 33 | UK | 28 / 73 | 63% | 1h22:52.00 | 1h17:46.00 | 6.6% | - | - | |
| | 2018 Mercedes-Benz UCI World Cup XC #1 | | Stellenbosch, WC | U23 | 10009554278 & 1997 | 20 | SILVERBACK OMX PRO TEAM | 12 / 70 | 84% | 1h22:18.00 | 1h18:23.00 | 5% | - | - | |
| | 2018 Mercedes-Benz UCI World Cup XC #3 | | Nové Mesto | U23 | 10009554278 & 1997 | ? | SILVERBACK OMX PRO TEAM | DNF / 142 | 0% | DNF | 1h23:44.00 | - | - | - | |
| | 2018 Mercedes-Benz UCI World Cup XC #5 | | Vallnord | U23 | 10009554278 & 1997 | ? | SILVERBACK OMX PRO TEAM | 51 / 80 | 37% | 1h33:23.00 | 1h24:07.00 | 11% | - | - | |
| | 2018 Mercedes-Benz UCI World Cup XC #2 | | Bikepark Albstadt | U23 | 10009554278 & 1997 | 12 | SILVERBACK OMX PRO TEAM | 15 / 146 | 90% | 1h21:55.00 | 1h17:48.00 | 5.3% | - | - | |
| | 2018 Mercedes-Benz UCI World Cup XC #4 | | Val di Sole | U23 | 10009554278 & 1997 | 29 | SILVERBACK OMX PRO TEAM | 18 / 112 | 85% | 1h19:24.00 | 1h16:40.00 | 3.6% | - | - | |
| | 2018 Mercedes-Benz UCI World Cup XC #7 | | La Bresse | U23 | 10009554278 & 1997 | 34 | SILVERBACK OMX PRO TEAM | 61 / 122 | 50% | 1h33:20.00 | 1h23:22.00 | 12% | - | - | |
| | UCI - XCO World Championships '18 | | Lenzerheide | U23 | 10009554278 & 1997 | 41 | Great Britain | 62 / 97 | 36% | - | 1h21:22.00 | - | - | - | |
| | 2019 Mercedes-Benz UCI World Cup XC #1 | | Bikepark Albstadt | U23 | 10009554278 & 1997 | 44 | | DNS / 142 | 0% | DNS | 1h17:42.00 | - | - | - | |
| | 2019 Mercedes-Benz UCI World Cup XC #5 | | Val di Sole | U23 | 10009554278 & 1997 | 59 | | 25 / 113 | 79% | 1h28:34.00 | 1h23:10.00 | 6.5% | - | - | |
| | 2019 Mercedes-Benz UCI World Cup XC #4 | | Les Gets | U23 | 10009554278 & 1997 | 57 | | 69 / 107 | 36% | - | 1h13:22.00 | - | - | - | |
| | 2019 Mercedes-Benz UCI World Cup XC #3 | | Vallnord | U23 | 10009554278 & 1997 | 49 | | 39 / 79 | 51% | 1h15:42.00 | 1h08:08.00 | 11.1% | - | - | |
| | 2019 Mercedes-Benz UCI World Cup XC #6 | | Lenzerheide | U23 | 10009554278 & 1997 | 55 | | 14 / 110 | 88% | 1h11:47.00 | 1h09:00.00 | 4% | - | - | |
| | 2019 Mercedes-Benz UCI World Cup XC #7 | | Snowshoe, WV | U23 | 10009554278 & 1997 | 30 | | 30 / 54 | 45% | 1h12:50.00 | 1h07:55.00 | 7.2% | - | - | |
| | UCI - XCO World Championships '19 | | Mont-Sainte-Anne, QC | 19-22 | 10009554278 & 1997 | 52 | UK | 14 / 70 | 81% | 1h24:04.00 | 1h19:50.00 | 5.3% | - | - | |
| | 2020 Mercedes-Benz UCI World Cup XC #1 | | Nové Mesto | Elite | 10009554278 & 1997 | 112 | | 44 / 119 | 64% | 1h41:24.00 | 1h34:39.00 | 7.1% | - | - | |
| | 2020 Mercedes-Benz UCI World Cup XC #2 | | Nové Mesto | Elite | 10009554278 & 1997 | 112 | | 54 / 125 | 57% | 1h30:05.00 | 1h25:03.00 | 5.9% | - | - | |
| | UCI - XCO World Championships '20 | | Leogang | Elite | 10009554278 & 1997 | 76 | UK | 44 / 92 | 53% | 1h34:03.00 | 1h25:37.00 | 9.9% | - | - | |
| | 2021 Mercedes-Benz UCI World Cup XC #2 | | Nové Mesto | Elite | 10009554278 & 1997 | 120 | JB BRUNEX SUPERIOR FACTORY RACING | 90 / 145 | 38% | -2LAP | 1h20:55.00 | - | - | - | |
| | 2021 Mercedes-Benz UCI World Cup XC #1 | | Bikepark Albstadt | Elite | 10009554278 & 1997 | 122 | JB BRUNEX SUPERIOR FACTORY RACING | 79 / 154 | 49% | 1h29:49.00 | 1h20:23.00 | 11.7% | - | - | |
| | 2021 Mercedes-Benz UCI World Cup XC #3 | | Leogang | Elite | 10009554278 & 1997 | 97 | JB BRUNEX SUPERIOR FACTORY RACING | 62 / 109 | 44% | 1h24:31.00 | 1h15:50.00 | 11.5% | - | - | |
| | 2021 Mercedes-Benz UCI World Cup XC #4 | | Les Gets | Elite | 10009554278 & 1997 | 98 | JB BRUNEX SUPERIOR FACTORY RACING | DNS / 106 | 0% | DNS | 1h27:33.00 | - | - | - | |
| | 2014 Nutcracker Altura XC #3 | | Aske Moor | 17-18 | 895236 | 2000 | Nutcracker racing | 1 / 8 | 100% | 1h21:55.00 | 1h21:55.00 | 0% | - | - | |
| | 2014 Nutcracker Altura XC #4 | | Parkwood Springs | 17-18 | 895236 | 2000 | Nutcracker racing | 1 / 7 | 100% | 1h22:07.00 | 1h22:07.00 | 0% | - | - | |
| | 2014 Nutcracker Altura XC #6 | | Dales Bike Centre | 17-18 | 895236 | 2000 | Nutcracker racing | 1 / 5 | 100% | 1h26:32.00 | 1h26:32.00 | 0% | - | - | |
| | 2016 Nutcracker Altura XC #1 | | Whinlatter | Elite | 895236 | 27 | 100% ME | 2 / 8 | 86% | 1h22:32.00 | 1h22:13.00 | 0.4% | - | - | |
| | UCI - XCO World Championships '14 | | Hafjell Bike Park | 17-18 | GBR19970810 | 64 | UK | 31 / 99 | 69% | 1h15:52.00 | 1h08:49.00 | 10.2% | - | - | |
| | UCI - XCO World Championships '15 | | Vallnord | 17-18 | GBR19970810 | 33 | UK | 10 / 89 | 90% | 1h18:38.00 | 1h13:27.00 | 7.1% | - | - | |
| | 2016 UCI World Cup XC #2 | | Bikepark Albstadt | U23 | GBR19970810 | 107 | | 98 / 142 | 31% | - | 1h19:23.00 | - | - | - | |
| | 2016 UCI World Cup XC #3 | | La Bresse | U23 | GBR19970810 | 98 | | - / 136 | 0% | - | 1h12:59.00 | - | - | - | |
| | 2016 UCI World Cup XC #4 | | Lenzerheide | U23 | GBR19970810 | 71 | | 58 / 109 | 47% | - | 1h16:03.00 | - | - | - | |
| | Hadleigh Park - Hadleigh Park International | | Hadleigh Park | Elite | GBR19970810 & 19 | 37 | 100% ME | - / 46 | 0% | - | 1h21:20.00 | - | - | - | |