| | 2017 HSBC UK | CX National Trophy Series #4 | | Cyclopark | 19-22 | | 86 | LIV AWOL | DNF / 8 | 0% | DNF | 44:21.60 | - | - | - | |
| | 2017 HSBC UK | CX National Trophy Series #3 | | Shrewsbury Sports Village | 19-22 | | 31 | LIV AWOL | 6 / 11 | 50% | 54:03.40 | 47:40.90 | 13.4% | - | - | |
| | 2017 HSBC UK | CX National Trophy Series #2 | | Abergavenny Leisure Centre | 19-22 | | 28 | LIV AWOL | 5 / 7 | 33% | 52:54.10 | 49:31.40 | 6.8% | - | - | |
| | 2017 HSBC UK | CX National Trophy Series #1 | | Moorways Leisure Centre, Derbyshire | 19-22 | | 28 | LIV AWOL | 6 / 10 | 44% | 50:17.60 | 45:55.00 | 9.5% | - | - | |
| | 2017 British Cycling MTB XC #4 | | Dalby Forest | Elite | | 60 | Nutcracker racing | 15 / 15 | 0% | - | 1h54:40.00 | - | - | - | |
| | 2017 British Cycling MTB XC #3 | | Aske Moor | Elite | | 61 | Nutcracker Altura Racing | 8 / 18 | 59% | 1h50:18.00 | 1h30:40.00 | 21.7% | - | - | |
| | 2017 Nutcracker Altura XC #2 | | Gandale | Elite | | 697 | | 3 / 3 | 0% | 2h04:14.00 | 1h47:52.00 | 15.2% | - | - | |
| | 2017 British Cycling MTB XC #1 | | Pembrey Country Park | Elite | | 61 | Nutcracker Altura Racing | 12 / 17 | 31% | 1h59:58.00 | 1h40:56.00 | 18.9% | - | - | |
| | 2017 Nutcracker Altura XC #1 | | Dalby Forest | Elite | 951649 | 97 | Nutcracker racing | 2 / 4 | 67% | 1h44:47.00 | 1h37:22.00 | 7.6% | - | - | |
| | 2017 Midlands XC #1 | | Sherwood Pines | Elite | | 4 | Nutcracker Altura Racing | 7 / 7 | 0% | - | 1h50:39.00 | - | - | - | |
| | 2016 British Cycling MTB XC #5 | | Cannock Chase | Elite | | 61 | Nutcracker racing | 15 / 17 | 13% | 1h56:11.00 | 1h38:40.00 | 17.8% | - | - | |
| | 2016 Nutcracker Altura XC #5 | | Gandale | Elite | | ? | Nutcracker racing | 4 / 4 | 0% | - | | - | - | - | |
| | British Cycling - UK XC National Champs '16 | | Cathkin Braes Country Park | U23 | | 127 | Nutcracker racing | 8 / 8 | 0% | - | 1h26:34.00 | - | - | - | |
| | 2016 Nutcracker Altura XC #4 | | Parkwood Springs | Elite | | 995 | | 4 / 5 | 25% | 1h42:31.00 | 1h39:13.00 | 3.3% | - | - | |
| | 2016 British Cycling MTB XC #4 | | Fforest Fields | Elite | | 67 | Nutcracker racing | 5 / 21 | 80% | 1h29:37.00 | 1h16:29.00 | 17.2% | - | - | |
| | 2016 Midlands XC #4 | | Eckington Woods | Elite | | 244 | Nutcracker racing | 1 / 4 | 100% | 1h25:05.00 | 1h25:05.00 | 0% | - | - | |
| | 2016 Nutcracker Altura XC #3 | | Aske Moor | Elite | 452965 | 28 | | 3 / 4 | 33% | - | | - | - | - | |
| | Run and Ride - Summer Classic | | Cannock Chase | Elite/Expert | | 379 | Nutcracker MTB Team | 1 / 1 | - | 1h24:13.00 | 1h24:13.00 | 0% | - | - | |
| | 2016 British Cycling MTB XC #3 | | Dalby Forest | Elite | | 76 | Nutcracker racing | 13 / 24 | 48% | 1h37:41.00 | 1h20:29.00 | 21.4% | - | - | |
| | 2016 Midlands XC #3 | | Harlow Wood | Elite | | 1 | Nutcracker racing | 5 / 6 | 20% | 1h11:04.00 | 1h02:52.00 | 13% | - | - | |
| | 2016 Nutcracker Altura XC #2 | | Dalby Forest | Elite | 452965 | 34 | | 4 / 7 | 50% | 1h51:20.00 | 1h42:51.00 | 8.3% | - | - | |
| | 2016 British Cycling MTB XC #1 | | Pembrey Country Park | Elite | | 130 | Nutcracker racing | 27 / 28 | 4% | - | 1h39:59.00 | - | - | - | |
| | 2016 Nutcracker Altura XC #1 | | Whinlatter | Elite | 452965 | 44 | Nutcracker MTB | 5 / 8 | 43% | 1h38:50.00 | 1h29:29.00 | 10.5% | - | - | |
| | Run and Ride - Winter Classic | | Cannock Chase | Elite/Expert | | 1271 | Nutcracker racing | - / 5 | 0% | - | | - | - | - | |
| | 2015 British Cycling MTB XC #1 | | Sherwood Pines | 17-18 | | 373 | Nutcracker racing | 8 / 14 | 46% | 1h24:27.00 | 1h15:36.00 | 11.7% | - | - | |
| | 2015 Nutcracker Altura XC #1 | | Whinlatter | 17-18 | | 86 | Nutcracker racing | 2 / 4 | 67% | 1h36:06.00 | 1h34:59.00 | 1.2% | - | - | |
| | 2014 British Cycling MTB XC #5 | | Cannock Chase | 17-18 | | 192 | Nutcracker racing | 2 / 7 | 83% | 1h06:47.00 | 1h01:42.00 | 8.2% | - | - | |
| | 2014 Nutcracker Altura XC #6 | | Dales Bike Centre | 17-18 | 452965 | 6000 | Nutcracker racing | 1 / 1 | - | 1h12:52.00 | 1h12:52.00 | 0% | - | - | |
| | 2014 British Cycling MTB XC #4 | | Sherwood Pines | 17-18 | | 283 | Nutcracker racing | 3 / 11 | 80% | 1h07:34.00 | 1h04:52.00 | 4.2% | - | - | |
| | 2014 British Cycling MTB XC #3 | | Margam Park | 17-18 | | 187 | Nutcracker racing | 2 / 11 | 90% | 1h08:36.00 | 1h04:07.00 | 7% | - | - | |
| | 2014 Nutcracker Altura XC #4 | | Parkwood Springs | 17-18 | 452965 | 6000 | Nutcracker racing | 1 / 3 | 100% | 1h06:20.00 | 1h06:20.00 | 0% | - | - | |
| | 2014 Nutcracker Altura XC #3 | | Aske Moor | 17-18 | 452965 | 6000 | Nutcracker racing | 1 / 4 | 100% | 1h14:42.00 | 1h14:42.00 | 0% | - | - | |
| | 2014 British Cycling MTB XC #2 | | Wheal Velocity | 17-18 | | 143 | Nutcracker racing | 5 / 13 | 67% | 1h18:39.00 | 1h12:13.00 | 8.9% | - | - | |
| | 2014 Midlands XC #2 | | Birchall Woods | 17-18 | | 180 | Nutcracker racing | 2 / 3 | 50% | 1h05:59.00 | 1h02:31.00 | 5.6% | - | - | |
| | 2014 Nutcracker Altura XC #2 | | Gandale | 17-18 | | 6000 | Nutcracker racing | 1 / 3 | 100% | 1h13:58.00 | 1h13:58.00 | 0% | - | - | |
| | 2014 British Cycling MTB XC #1 | | Codham Park | 17-18 | | 260 | Nutcracker racing | 9 / 14 | 38% | 1h03:07.00 | 53:59.00 | 16.9% | - | - | |
| | 2013 Midlands XC #2 | | Birchall Woods | 15-16 (Shortened) | | 199 | Scott Contessa Epic | 1 / 4 | 100% | 7:17.00 | 7:17.00 | 0% | - | - | |
| | 2012 Midlands XC #3 | | Birchall Woods | 15-16 | | 65 | Matlock CC | 3 / 3 | 0% | - | 1h18:48.00 | - | - | - | |