27.09 | 28 | | | World Championships MU - Road Race (WC) Great Britain | 171.6 | | 5 | more |
22.09 | 111 | | | Gooikse Pijl (1.1) CCC Team | 198.1 | | | more |
20.09 | 49 | | | Kampioenschap van Vlaanderen (1.1) CCC Team | 186 | | | more |
29.08 › 01.0929-1/8 | | | | Deutschland Tour (2.HC) CCC Team | | | | more |
| 26 | | | Youth classificationYouth classification | | | | |
| 79 | | | General classificationGeneral classification | | | | |
01.09 | 58 | | | S4Stage 4 - Eisenach › Erfurt | 159.5 | | | |
31.08 | 80 | 82 | | S3Stage 3 - Göttingen › Eisenach | 189 | | | |
30.08 | 83 | 83 | | S2Stage 2 - Marburg › Göttingen | 202 | | | |
29.08 | 62 | 62 | | S1Stage 1 - Hannover › Halberstadt | 167 | | | |
15.08 › 25.0815-25/8 | | | | Tour de l'Avenir (2.Ncup) | | | | more |
25.08 | DNS | | | S10Stage 10 - Saint-Colomban-des-Villard › Le Corbier | 78.1 | | | |
24.08 | 59 | 60 | | S9Stage 9 - Villaroger › Tignes | 67.2 | | | |
23.08 | 60 | 57 | | S8Stage 8 - Brides-les-Bains › Col de la Loze/Méribel | 23.1 | | | |
22.08 | 86 | 60 | | S7Stage 7 - Grésy-sur-Isere › La Giettaz | 103.5 | | | |
20.08 | 67 | 52 | | S6Stage 6 - Saint-Julien-Chapteuil › Privas | 124 | | | |
19.08 | 65 | 47 | | S5Stage 5 - Espalion › Saint-Julien-Chapteuil | 158.9 | | | |
18.08 | 1 | 52 | | S4Stage 4 - Mauriac › Espalion | 158.2 | 5 | 15 | |
17.08 | 100 | 81 | | S3Stage 3 - Montignac-Lascaux › Mauriac | 162.3 | | | |
16.08 | 5 | 21 | | S2 (TTT)Stage 2 (TTT) - Eymet › Bergerac | 32.1 | | | |
15.08 | 124 | 122 | | S1Stage 1 - Marmande › Marmande | 128.8 | | | |
10.08 | 39 | | | European Continental Championships MU - Road Race (CC) | 138 | | | more |
02.08 › 05.082-5/8 | | | | Kreiz Breizh Elites (2.2) Great Britain | | | | more |
05.08 | DNF | | | S4Stage 4 - Guingamp › Rostrenen | 171.8 | | | |
04.08 | 35 | 4 | | S3Stage 3 - Ploerdut › Carhaix | 181.8 | | | |
03.08 | 5 | 1 | | S2Stage 2 - Calanhel › Plouray | 181.1 | | | |
02.08 | 2 | 6 | | S1 (TTT)Stage 1 (TTT) - Ploumagoar › Ploumagoar | 12.4 | 4 | 0.5 | |
21.07 | 11 | | | Tokyo 2020 Test Event (1.2) Great Britain | 180.2 | | | more |
30.06 | 78 | | | National Championships Great Britain ME - Road Race (NC) | 190 | | | more |
27.06 | 5 | | | National Championships Great Britain U23 - ITT (NC) | 27.4 | | 3 | more |
13.06 › 23.0613-23/6 | | | | Giro Ciclistico d'Italia (2.2U) | | | | more |
| 30 | | | Youth classificationYouth classification | | | | |
| 7 | | | Points classificationPoints classification | | | | |
| 74 | | | General classificationGeneral classification | | | | |
23.06 | 59 | | | S9Stage 9 - Agordo › Passo Fedaia | 39.9 | | | |
22.06 | 69 | 76 | | S8Stage 8 - Rosa › Falcade | 133.6 | | | |
21.06 | 1 | 76 | | S7Stage 7 - Dimaro › Levico Terme | 131.5 | 5 | 5 | |
20.06 | 45 | 77 | | S6Stage 6 - Aprica › Aprica | 94.3 | | | |
19.06 | 132 | 86 | | S5Stage 5 - Sorbolo Mezzani › Passo Maniva | 158.3 | | | |
17.06 | 84 | 71 | | S4Stage 4 - Buonconvento › Monte Amiata | 140.2 | | | |
16.06 | 4 | 25 | | S3Stage 3 - Sesto Fiorentino › Gaiole in Chianti | 145.5 | | | |
15.06 | 122 | 116 | | S2Stage 2 - Bagno di Romagna › Pescia | 185.8 | | | |
14.06 | 126 | 120 | | S1Stage 1 - Riccione › Santa Sofia | 138.8 | | | |
13.06 | 13 | 13 | | ProloguePrologue - Riccione › Riccione | 3.3 | | | |
02.06 | 54 | | | Paris-Roubaix Espoirs (1.2U) | 170.5 | | | more |
24.05 › 26.0524-26/5 | | | | A Travers les Hauts de France (2.2) | | | | more |
| 3 | | | Youth classificationYouth classification | | | | |
| 3 | | | General classificationGeneral classification | | 14 | 25 | |
26.05 | 36 | | | S3Stage 3 - Petite-Forêt › Pecquencourt | 188.5 | | | |
25.05 | 10 | 5 | | S2Stage 2 - Seclin › Bonningues-lès-Calais | 197.8 | | | |
24.05 | 118 | 5 | | S1Stage 1 - Gavrelle › Épinoy | 125.7 | | | |
05.05 | 95 | | | Entre Brenne et Montmorillonnais (1.2) | 183.3 | | | more |
04.05 | 44 | | | L'Etoile d'Or (1.Ncup) | 180 | | | more |
01.05 | 13 | | | Eschborn-Frankfurt U23 (1.2U) | 119 | | | more |
20.04 | 69 | | | Arno Wallaard Memorial (1.2) | 183.9 | | | more |
13.04 | 18 | | | Ronde van Vlaanderen Beloften (1.Ncup) Great Britain | 167.5 | | | more |
31.03 | 23 | | | Gent-Wevelgem/Kattekoers-Ieper (1.Ncup) | 173.8 | | | more |
20.03 › 24.0320-24/3 | | | | Volta ao Alentejo (2.2) | | | | more |
| 7 | | | Youth classificationYouth classification | | | | |
| 14 | | | Points classificationPoints classification | | | | |
| 26 | | | General classificationGeneral classification | | | | |
24.03 | 20 | | | S6Stage 6 - Portalegre › Évora | 152 | | | |
23.03 | 27 | 30 | | S5 (ITT)Stage 5 (ITT) - Castelo de Vide › Castelo de Vide | 8.4 | | | |
23.03 | 28 | 33 | | S4Stage 4 - Ponte de Sor › Portalegre | 74.3 | | | |
22.03 | 4 | 41 | | S3Stage 3 - Santiago do Cacém › Mora | 176.5 | | | |
21.03 | 66 | 53 | | S2Stage 2 - Mértola › Odemira | 182.8 | | | |
20.03 | 61 | 63 | | S1Stage 1 - Montemor-o-Novo › Moura | 208.1 | | | |