05.10 | 51 | | | Il Lombardia Under 23 (1.2U) | 170.6 | | | more |
27.09 | DNF | | | World Championships MU - Road Race (WC) | 173.6 | | | more |
18.09 › 22.0918-22/9 | | | | Skoda Tour de Luxembourg (2.Pro) Luxembourg | | | | more |
| 6 | | | Youth classificationYouth classification | | | | |
| 10 | | | General classificationGeneral classification | | 40 | 35 | |
22.09 | 17 | | | S5Stage 5 - Mersch › Luxembourg | 176.9 | | | |
21.09 | 20 | 9 | | S4 (ITT)Stage 4 (ITT) - Differdange › Differdange | 15.5 | | | |
20.09 | 11 | 13 | | S3Stage 3 - Rosport › Diekirch | 201.3 | | | |
19.09 | 62 | 38 | | S2Stage 2 - Junglinster › Schifflange | 155 | | | |
18.09 | 36 | 36 | | S1Stage 1 - Luxembourg › Luxembourg | 158 | | | |
13.09 | 4 | | | European Continental Championships MU - Road Race (CC) | 162 | 28 | 60 | more |
18.08 › 24.0818-24/8 | | | | Tour de l'Avenir (2.Ncup) | | | | more |
| 23 | | | Mountains classificationMountains classification | | | | |
| 11 | | | Points classificationPoints classification | | | | |
| 9 | | | General classificationGeneral classification | | 2 | 10 | |
24.08 | 17 | | | S6Stage 6 - Bobbio Pelice › Colle delle Finestre | 127.2 | | | |
23.08 | 10 | 9 | | S5Stage 5 - Les Karellis › Condoue | 119.3 | | | |
22.08 | 14 | 9 | | S4Stage 4 - La Rosière › Les Karellis | 142.6 | | | |
21.08 | 8 | 8 | | S3Stage 3 - Peisey-Vallandry › La Rosière | 70.7 | | | |
20.08 | 4 | 27 | | S2Stage 2 - Mouchard › Plateau d'Hauteville | 170.2 | | | |
19.08 | 34 | 37 | | S1Stage 1 - Sarrebourg › Ronchamp-Champagney | 184.5 | | | |
18.08 | 36 | 36 | | ProloguePrologue - Sarrebourg › Sarrebourg | 7.1 | | | |
25.07 › 28.0725-28/7 | | | | Czech Tour (2.1) | | | | more |
| 5 | | | Youth classificationYouth classification | | | | |
| 9 | | | Mountains classificationMountains classification | | | | |
| 25 | | | General classificationGeneral classification | | | 3 | |
28.07 | 24 | | | S4Stage 4 - Šumperk › Šternberk 108k | 131.8 | | | |
27.07 | 31 | 25 | | S3Stage 3 - Moravská Třebová › Dlouhé stráně 72k | 134.5 | | | |
26.07 | 24 | 27 | | S2Stage 2 - Zlín › Pustevny | 172.7 | | | |
25.07 | 135 | 135 | | S1Stage 1 - Prostějov › Ostrava | 151.2 | | | |
30.06 | 1 | | | National Championships Luxembourg MU - Road Race (NC) | 148.8 | | 50 | more |
23.06 | 2 | | | National Championships Luxembourg ME - Road Race (NC) | 144.8 | 10 | 75 | more |
21.06 | 1 | | | National Championships Luxembourg MU - ITT (NC) | | | 25 | more |
09.06 › 16.069-16/6 | | | | Giro d'Italia Next Gen (2.2U) | | | | more |
| 28 | | | Mountains classificationMountains classification | | | | |
| 52 | | | Points classificationPoints classification | | | | |
| 8 | | | General classificationGeneral classification | | 3 | 1 | |
16.06 | 43 | | | S8Stage 8 - Cesena › Forlimpopoli | 137 | | | |
15.06 | 16 | 8 | | S7Stage 7 - Montegrotto Terme › Zocca | 182 | | | |
14.06 | 10 | 8 | | S6Stage 6 - Borgo Virgilio › Fosse | 172 | | | |
13.06 | 107 | 6 | | S5Stage 5 - Bergamo › Cremona | 138 | | | |
12.06 | 91 | 6 | | S4Stage 4 - Pertusio › Borgomanero | 139 | | | |
11.06 | 8 | 6 | | S3Stage 3 - Verrès › Pian della Mussa | 134 | | | |
10.06 | 36 | 15 | | S2Stage 2 - Aymavilles › Saint-Vincent | 105 | | | |
09.06 | 22 | 22 | | S1 (ITT)Stage 1 (ITT) - Aosta › Aosta | 8.8 | | | |
15.05 › 19.0515-19/5 | | | | Orlen Nations Grand Prix (2.Ncup) Luxembourg | | | | more |
| 13 | | | General classificationGeneral classification | | | | |
19.05 | 9 | | | S5Stage 5 - Lesko, Powiat Leski › Hotel Arłamów | 149 | | | |
18.05 | 21 | 14 | | S4Stage 4 - Bukovina Resort › Jasło | 175 | | | |
17.05 | 21 | 14 | | S3Stage 3 - Tvrdošín › Štrbské Pleso | 121 | | | |
16.05 | 14 | 14 | | S2Stage 2 - Přerov › Kohútka | 110 | | | |
15.05 | 11 | 11 | | S1Stage 1 - Prostějov › Bouzov | 135 | | | |
08.05 › 12.058-12/5 | | | | Flèche du Sud (2.2) | | | | more |
| 2 | | | Youth classificationYouth classification | | | | |
| 15 | | | Mountains classificationMountains classification | | | | |
| 30 | | | Points classificationPoints classification | | | | |
| 8 | | | General classificationGeneral classification | | 3 | 3 | |
12.05 | 42 | | | S5Stage 5 - Esch-sur-Alzette › Esch-sur-Alzette | 149.5 | | | |
11.05 | 21 | 8 | | S4 (ITT)Stage 4 (ITT) - Sanem › Sanem | 18.6 | | | |
10.05 | 8 | 11 | | S3Stage 3 - Bourscheid › Bourscheid | 127.2 | | | |
09.05 | 63 | 67 | | S2Stage 2 - Rumelange › Rumelange | 151.2 | | | |
08.05 | 67 | 67 | | S1Stage 1 - Canach › Canach | 85.5 | | | |
17.02 › 18.0217-18/2 | | | | Tour des Alpes-Maritimes (2.1) | | | | more |
17.02 | DNS | | | S1Stage 1 - Levens › Antibes | 165.5 | | | |
16.02 | DNF | | | Classic Var (1.1) | 184.3 | | | more |
10.02 | 70 | | | Figueira Champions Classic (1.Pro) Lidl - Trek | 192.4 | | | more |
27.01 | 26 | | | Trofeo Pollença - Port d'Andratx (1.1) | 158.4 | | | more |
26.01 | 34 | | | Trofeo Serra Tramuntana (1.1) | 153.8 | | | more |
24.01 | 28 | | | Trofeo Calvià (1.1) | 150.1 | | | more |
21.01 | 55 | | | Ruta de la Cerámica - Gran Premio Castellón (1.1) | 173.9 | | | more |