01.10 | 9 | | | Il Lombardia Under 23 (1.2U) | 170.6 | | 1 | more |
17.09 | 5 | | | Beaumont Trophy (NAT) | 100.34 | 48 | | more |
20.08 › 27.0820-27/8 | | | | Tour de l'Avenir (2.Ncup) | | | | more |
| 16 | | | Youth classificationYouth classification | | | | |
| 20 | | | Points classificationPoints classification | | | | |
| 32 | | | General classificationGeneral classification | | | | |
27.08 | 56 | | | S8Stage 8 - Val-Cenis › Sainte-Foy-Tarentaise | 99.6 | | | |
26.08 | 100 | 26 | | S7bStage 7b - Les Karellis › Val-Cenis Col du Mont Cenis | 70 | | | |
26.08 | 20 | 14 | | S7a (ITT)Stage 7a (ITT) - Montricher-Albanne › Les Karellis | 11.1 | | | |
25.08 | 17 | 14 | | S6Stage 6 - Méribel › Col de la Loze | 65 | | | |
24.08 | 23 | 7 | | S5Stage 5 - La Tour-de-Salvagny › Lac d'Aiguebelette | 141 | | | |
23.08 | 3 | 8 | | S4Stage 4 - Aigurande › Evaux-les-Bains | 133 | 1 | 5 | |
22.08 | 7 | 14 | | S3 (TTT)Stage 3 (TTT) - Issoudun › Vatan | 26.5 | | | |
21.08 | 32 | 19 | | S2Stage 2 - Nozay › Chinon | 189 | | | |
20.08 | 30 | 30 | | S1Stage 1 - Carnac › La Gacilly | 140 | | | |
12.08 | 51 | | | World Championships MU - Road Race (WC) | 168.4 | | | more |
27.07 › 30.0727-30/7 | | | | Czech Tour (2.1) | | | | more |
| 2 | | | Youth classificationYouth classification | | | | |
| 17 | | | Points classificationPoints classification | | | | |
| 9 | | | General classificationGeneral classification | | 16 | 25 | |
30.07 | 29 | | | S4Stage 4 - Šumperk › Šternberk | 176.2 | | | |
29.07 | 5 | 12 | | S3Stage 3 - Moravská Třebová › Červenohorské sedlo | 161.5 | 4 | | |
28.07 | 47 | 47 | | S2Stage 2 - Olomouc › Pustevny | 166.9 | | | |
27.07 | 59 | 60 | | S1Stage 1 - Prostějov › Uničov | 165 | | | |
25.06 | DNF | | | National Championships Great Britain ME - Road Race (NC) | 189 | | | more |
11.06 › 18.0611-18/6 | | | | Giro Next Gen (2.2U) | | | | more |
| 20 | | | Mountains classificationMountains classification | | | | |
| 16 | | | Points classificationPoints classification | | | | |
| 22 | | | General classificationGeneral classification | | | | |
18.06 | 113 | | | S8Stage 8 - Tavagnacco › Trieste | 131 | | | |
17.06 | 14 | 17 | | S7Stage 7 - Possagno › Pian del Cansiglio | 176 | | | |
16.06 | 110 | 22 | | S6Stage 6 - Pergine Valsugana › Povegliano | 166 | | | |
15.06 | 1 | 19 | | S5Stage 5 - Cesano Maderno › Manerba del Garda | 159 | 5 | 5 | |
14.06 | 23 | 22 | | S4Stage 4 - Morbegno › Passo dello Stelvio | 119 | | | |
13.06 | 25 | 20 | | S3Stage 3 - Priocca › Magenta | 146 | | | |
12.06 | 21 | 20 | | S2Stage 2 - San Francesco al Campo › Cherasco | 151 | | | |
11.06 | 27 | 27 | | S1 (ITT)Stage 1 (ITT) - Agliè › Agliè | 9.4 | | | |
24.05 › 28.0524-28/5 | | | | Orlen Nations Grand Prix (2.Ncup) | | | | more |
| 32 | | | General classificationGeneral classification | | | | |
28.05 | 57 | | | S5Stage 5 - Sanok › Hotel Arlamów | 145 | | | |
27.05 | 2 | 2 | | S4Stage 4 - Bukovina Resort › Nowy Sacz | 129 | 2 | 8 | |
26.05 | 28 | 2 | | S3Stage 3 - Levoča › Štrbské Pleso | 124 | | | |
25.05 | 1 | 2 | | S2Stage 2 - Hatvan › Bükkszentkereszt | 152 | 5 | 12 | |
24.05 | 26 | 26 | | S1Stage 1 - Kaposvár › Balatonföldvár | 132 | | | |
22.03 › 26.0322-26/3 | | | | Volta ao Alentejo (2.2) | | | | more |
25.03 | DNS | | | S4Stage 4 - Crato › Castelo de Vide | 148.2 | | | |
24.03 | 72 | 37 | | S3Stage 3 - Vendas Novas › Estremoz | 191.4 | | | |
23.03 | 44 | 33 | | S2Stage 2 - Castro Verde › Grândola | 170.8 | | | |
22.03 | 23 | 29 | | S1Stage 1 - Beja › Ourique | 168.8 | | | |
23.02 › 26.0223-26/2 | | | | O Gran Camiño (2.1) | | | | more |
| 1 | | | Youth classificationYouth classification | | | | |
| 14 | | | Points classificationPoints classification | | | | |
| 6 | | | General classificationGeneral classification | | 24 | 40 | |
26.02 | 15 | | | S4 (ITT)Stage 4 (ITT) - Novo Milladoiro › Santiago de Compostela | 18.1 | | | |
25.02 | 10 | 9 | | S3Stage 3 - Esgos › Rubiá (Alto do Castelo) | 123.4 | | | |
24.02 | 8 | 8 | | S2Stage 2 - Tui › A Guarda (Monte Trega) | 184.3 | 1 | | |
23.02 | NR | | | S1Stage 1 - Muralla de Lugo › Sarria | 188 172 | | | |