| | UCI - World Masters CX Championships '22 | | Trinity Park Showground, Suffolk | 70-74 (MV65+) | | 57 | Matlock CC | 13 / 14 | 8% | 48:54.00 | 43:50.20 | 11.6% | - | - | |
| | 2022 British Cycling CX National Trophy Series #1 | | Moorways Leisure Centre, Derbyshire | 60+ | | 134 | Matlock CC | 42 / 43 | 2% | 47:26.70 | 37:15.90 | 27.3% | - | - | |
| | Run and Ride - Summer Classic | | Cannock Chase | Enthusiast | | 306 | Matlock CC | 65 / 69 | 6% | 1h18:40.87 | 58:35.64 | 34.3% | - | - | |
| | 2022 Hope XC #7 | | Leeds Urban Bike Park | 60+ | | 464 | Matlock CC | 4 / 4 | 0% | 1h26:28.00 | 1h19:26.00 | 8.9% | - | - | |
| | 2022 British Cycling XC National Series - Schwalbe #4 | | Cannock Chase | 60+ | | 507 | Matlock CC | DNS / 20 | 0% | DNS | 1h29:00.00 | - | - | - | |
| | 2022 British Cycling XC National Series - Schwalbe #1 | | Tong | 60+ | | 521 | Matlock CC | DNS / 23 | 0% | DNS | 1h04:26.70 | - | - | - | |
| | 2022 Crank It Cycling #1 | | Sherwood Pines | 60+ | | 176 | Matlock CC | 7 / 8 | 14% | -1LAP | 1h27:34.00 | - | - | - | |
| | 2021 HSBC UK | XC National Series #5 | | Cannock Chase | 60+ | | 467 | Matlock CC | DNS / 17 | 0% | DNS | 1h35:26.30 | - | - | - | |
| | British Cycling - UK XC National Champs '19 | | Cannock Chase | 65-69 | | 616 | | DNS / 7 | 0% | DNS | 1h20:23.00 | - | - | - | |
| | 2019 Midlands XC #3 | | Kirton Off-road Centre | 60+ | | 603 | Crosstrax | 8 / 8 | 0% | 1h21:17.00 | 1h04:48.00 | 25.4% | - | - | |
| | 2019 Midlands XC #2 | | Cannock Chase | 60+ | | 601 | Crosstrax | 6 / 7 | 17% | 1h24:06.00 | 1h04:26.00 | 30.5% | - | - | |
| | 2019 HSBC UK | XC National Series #3 | | Cannock Chase | 60+ | | 617 | | 13 / 21 | 40% | - | 1h17:49.00 | - | - | - | |
| | 2019 HSBC UK | XC National Series #1 | | Sherwood Pines | 60+ | | 643 | | 17 / 22 | 24% | 1h21:09.00 | 1h07:46.00 | 19.8% | - | - | |
| | British Cycling - UK XC National Champs '18 | | Hadleigh Park | 60+ | | 512 | | DNS / 18 | 0% | DNS | 1h10:06.00 | - | - | - | |
| | 2018 Midlands XC #3 | | Cannock Chase | 60+ | | 164 | Crosstrax | 6 / 7 | 17% | - | 1h16:01.00 | - | - | - | |
| | 2018 British Cycling MTB XC #3 | | Glentress | 60+ | | 389 | | 11 / 13 | 17% | - | 1h04:21.00 | - | - | - | |
| | 2018 British Cycling MTB XC #2 | | Dalby Forest | 60+ | | 481 | | 10 / 15 | 36% | 1h42:13.00 | 1h13:01.00 | 40% | - | - | |
| | 2018 Midlands XC #1 | | Swynnerton Old Park | 60+ | | 137 | Crosstrax | 6 / 9 | 38% | 1h54:39.00 | 1h18:46.00 | 45.6% | - | - | |
| | 2018 British Cycling MTB XC #1 | | Sherwood Pines | 60+ | | 412 | Crosstrax | 15 / 18 | 18% | 1h56:43.00 | 1h26:23.00 | 35.1% | - | - | |
| | British Cycling - UK XC National Champs '17 | | Cannock Chase | 60+ | | 666 | Crosstrax | 14 / 17 | 19% | - | 1h16:40.00 | - | - | - | |
| | 2017 Midlands XC #7 | | Eckington Woods | 60+ | | 118 | Crosstrax | 6 / 6 | 0% | 1h29:01.00 | 1h00:13.00 | 47.8% | - | - | |
| | 2017 Midlands XC #5 | | Parkwood Springs | 60+ | | 102 | Crosstrax | 4 / 4 | 0% | 1h42:55.00 | 1h30:43.00 | 13.5% | - | - | |
| | 2017 British Cycling MTB XC #4 | | Dalby Forest | 60+ | | 664 | Crosstrax | 16 / 17 | 6% | - | 1h11:54.00 | - | - | - | |
| | 2017 Midlands XC #4 | | Dudmaston | 60+ | | 155 | Crosstrax | 9 / 10 | 11% | - | 1h26:01.00 | - | - | - | |
| | 2017 Midlands XC #3 | | Cannock Chase | 60+ | | 220 | Crosstrax | 6 / 8 | 29% | - | 1h16:46.00 | - | - | - | |
| | 2017 British Cycling MTB XC #2 | | Wasing | 60+ | | 718 | Crosstrax | 13 / 16 | 20% | - | 1h16:15.00 | - | - | - | |
| | Gorrick - Cool MTB Challenge | | Andover Athletic Club | Open | | 276 | | n/a (sportive) | - | 3h49:01.00 | - | - | - | - | |
| | 2016 British Cycling MTB XC #5 | | Cannock Chase | 60+ | | 509 | Crosstrax | 9 / 10 | 11% | - | 1h22:00.00 | - | - | - | |
| | 2016 Midlands XC #6 | | Dudmaston | 60+ | | 50 | Crosstrax | 3 / 5 | 50% | 1h31:53.00 | 1h24:14.00 | 9.1% | - | - | |
| | 2016 Nutcracker Altura XC #4 | | Parkwood Springs | 60+ | | 353 | Crosstrax | - / 4 | 0% | - | 1h15:09.00 | - | - | - | |
| | 2016 Nutcracker Altura XC #3 | | Aske Moor | 60+ | | 674 | Crosstrax | 4 / 5 | 25% | - | | - | - | - | |
| | 2016 British Cycling MTB XC #3 | | Dalby Forest | 60+ | | 512 | Crosstrax | 8 / 11 | 30% | 57:00.00 | 43:23.00 | 31.4% | - | - | |
| | 2016 Nutcracker Altura XC #2 | | Dalby Forest | 60+ | 467077 | 673 | Crosstrax | 3 / 4 | 33% | - | 1h28:31.00 | - | - | - | |
| | 2016 Midlands XC #2 | | Cannock Chase | 60+ | | 105 | Crosstrax | 6 / 9 | 38% | - | 1h16:24.00 | - | - | - | |
| | 2015 British Cycling MTB XC #5 | | Cannock Chase | 60+ | | 567 | Crosstrax | 5 / 10 | 56% | 1h28:33.00 | 1h14:47.00 | 18.4% | - | - | |
| | 2015 Nutcracker Altura XC #3 | | Aske Moor | 60+ | | 229 | Crosstrax | 6 / 7 | 17% | - | 1h27:25.00 | - | - | - | |
| | 2015 Nutcracker Altura XC #2 | | Dalby Forest | 60+ | 467077 | 604 | Crosstrax | 5 / 6 | 20% | - | 1h38:33.00 | - | - | - | |
| | 2015 Midlands XC #1 | | Cannock Chase | 60+ | | 191 | Crosstrax | 5 / 7 | 33% | 1h10:55.00 | 1h00:53.00 | 16.5% | - | - | |
| | 2015 British Cycling MTB XC #1 | | Sherwood Pines | 60+ | | 692 | Crosstrax | 8 / 14 | 46% | 59:00.00 | 48:10.00 | 22.5% | - | - | |
| | 2014 British Cycling MTB XC #5 | | Cannock Chase | 60+ | | 550 | Crosstrax | 8 / 11 | 30% | 1h26:27.00 | 1h08:25.00 | 26.4% | - | - | |
| | 2014 British Cycling MTB XC #4 | | Sherwood Pines | 60+ | | 730 | Crosstrax | 8 / 10 | 22% | 1h23:13.00 | 1h08:36.00 | 21.3% | - | - | |
| | 2014 Nutcracker Altura XC #4 | | Parkwood Springs | 60+ | 467077 | 947 | Crosstrax | 4 / 5 | 25% | - | 1h34:29.00 | - | - | - | |
| | 2013 Midlands XC #2 | | Birchall Woods | 50+ | | 364 | Crosstrax | 31 / 32 | 3% | - | 1h16:51.00 | - | - | - | |
| | 2012 Midlands XC #3 | | Birchall Woods | 50+ | | 292 | Crosstrax | 15 / 19 | 22% | 1h59:40.00 | 1h34:06.00 | 27.2% | - | - | |