08.10 | NR | | | Tre Valli Varesine (1.Pro) | 168.33 57.9 | | | more |
05.10 | DNF | | | Giro dell'Emilia (1.Pro) | 215.3 | | | more |
29.09 | DNF | | | World Championships ME - Road Race (WC) | 273.9 | | | more |
18.09 › 22.0918-22/9 | | | | Skoda Tour de Luxembourg (2.Pro) | | | | more |
| 21 | | | Youth classificationYouth classification | | | | |
| 50 | | | General classificationGeneral classification | | | | |
22.09 | 74 | | | S5Stage 5 - Mersch › Luxembourg | 176.9 | | | |
21.09 | 53 | 50 | | S4 (ITT)Stage 4 (ITT) - Differdange › Differdange | 15.5 | | | |
20.09 | 58 | 49 | | S3Stage 3 - Rosport › Diekirch | 201.3 | | | |
19.09 | 56 | 31 | | S2Stage 2 - Junglinster › Schifflange | 155 | | | |
18.09 | 35 | 35 | | S1Stage 1 - Luxembourg › Luxembourg | 158 | | | |
03.09 › 08.093-8/9 | | | | Tour of Britain (2.Pro) | | | | more |
| 18 | | | Mountains classificationMountains classification | | | | |
| 18 | | | Points classificationPoints classification | | | | |
| 4 | | | General classificationGeneral classification | | 80 | 100 | |
08.09 | 25 | | | S6Stage 6 - Lowestoft › Felixstowe | 158.4 | | | |
07.09 | 25 | 3 | | S5Stage 5 - Northampton › Northampton | 149.6 | | | |
06.09 | 22 | 3 | | S4Stage 4 - Derby › Newark-on-Trent | 138.5 | | | |
05.09 | 8 | 3 | | S3Stage 3 - Sheffield › Barnsley | 166 | 1 | | |
04.09 | 8 | 4 | | S2Stage 2 - Darlington › Redcar 67k | 152.1 | 1 | | |
03.09 | 24 | 26 | | S1Stage 1 - Kelso › Kelso | 181.9 | | | |
28.08 | 6 | | | Muur Classic Geraardsbergen (1.1) | 180.2 | 24 | 40 | more |
12.08 › 18.0812-18/8 | | | | Tour de Pologne (2.UWT) | | | | more |
| 35 | | | Points classificationPoints classification | | | | |
| 20 | | | General classificationGeneral classification | | 20 | 24 | |
18.08 | 82 | | | S7Stage 7 - Wieliczka › Kraków | 142.1 | | | |
17.08 | 39 | 20 | | S6Stage 6 - Wadowice › Bukovina Resort | 183.2 | | | |
16.08 | 37 | 12 | | S5Stage 5 - Katowice › Katowice | 187.6 | | | |
15.08 | 94 | 13 | | S4Stage 4 - Kudowa-Zdrój › Prudnik | 195.3 | | | |
14.08 | 13 | 13 | | S3Stage 3 - Wałbrzych › Duszniki-Zdrój | 156.5 | | | |
13.08 | 24 | 15 | | S2 (ITT)Stage 2 (ITT) - Mysłakowice › Karpacz | 15.4 | | | |
12.08 | 14 | 14 | | S1Stage 1 - Wrocław › Karpacz | 156.1 | | | |
25.07 › 28.0725-28/7 | | | | Czech Tour (2.1) | | | | more |
| 9 | | | Points classificationPoints classification | | | | |
| 8 | | | General classificationGeneral classification | | 18 | 30 | |
28.07 | 4 | | | S4Stage 4 - Šumperk › Šternberk | 131.8 | 5 | | |
27.07 | 12 | 8 | | S3Stage 3 - Moravská Třebová › Dlouhé stráně | 134.5 | | | |
26.07 | 8 | 8 | | S2Stage 2 - Zlín › Pustevny | 172.7 | 1 | | |
25.07 | 95 | 95 | | S1Stage 1 - Prostějov › Ostrava | 151.2 | | | |
06.07 › 09.076-9/7 | | | | Sibiu Cycling Tour (2.1) | | | | more |
| 28 | | | Points classificationPoints classification | | | | |
| 10 | | | General classificationGeneral classification | | 14 | 20 | |
09.07 | 22 | | | S4Stage 4 - Sibiu › Sibiu | 192.9 | | | |
08.07 | 13 | 9 | | S3Stage 3 - Sibiu › Bâlea Lac | 207.3 | | | |
07.07 | 6 | 4 | | S2b (ITT)Stage 2b (ITT) - Sibiu › Sibiu | 3.2 | 3 | | |
07.07 | 25 | 6 | | S2aStage 2a - Sibiu › Sibiu | 103 | | | |
06.07 | 13 | 13 | | S1Stage 1 - Sibiu › Păltiniș | 167.5 | | | |
26.06 › 30.0626-30/6 | | | | Okolo Slovenska / Tour de Slovaquie (2.1) | | | | more |
| 13 | | | General classificationGeneral classification | | 8 | 5 | |
30.06 | 17 | | | S5Stage 5 - Liptovský Mikuláš › Štrbské Pleso | 145 | | | |
29.06 | 31 | 14 | | S4Stage 4 - Partizánske › Ružomberok | 183.5 | | | |
28.06 | 47 | 10 | | S3Stage 3 - Piešťany › Dubnica nad Váhom | 161.2 | | | |
27.06 | 16 | 10 | | S2Stage 2 - Nitra › Hlohovec | 192 | | | |
26.06 | 3 | 13 | | S1 (TTT)Stage 1 (TTT) - Dunajská Streda › Dunajská Streda | 28.8 | 6 | 0.43 | |
23.06 | DNF | | | National Championships Great Britain ME - Road Race (NC) | 182 | | | more |
02.06 › 09.062-9/6 | | | | Critérium du Dauphiné (2.UWT) | | | | more |
09.06 | DNS | | | S8Stage 8 - Thônes › Plateau des Glières | 160.6 | | | |
08.06 | 49 | 54 | | S7Stage 7 - Albertville › Samoëns 1600 88k | 155.3 | | | |
07.06 | 73 | 71 | | S6Stage 6 - Hauterives › Le Collet d'Allevard | 174.1 | | | |
06.06 | NR | 82 | | S5Stage 5 - Amplepuis › Saint-Priest | 167 | | | |
05.06 | 80 | 86 | | S4 (ITT)Stage 4 (ITT) - Saint-Germain-Laval › Neulise | 34.4 | | | |
04.06 | 65 | 83 | | S3Stage 3 - Celles-sur-Durolle › Les Estables | 181.7 | | | |
03.06 | 95 | 86 | | S2Stage 2 - Gannat › Col de la Loge | 142 | | | |
02.06 | 110 | 5 | | S1Stage 1 - Saint-Pourçain-sur-Sioule › Saint-Pourçain-sur-Sioule 156k | 172.5 | | | |
21.04 › 28.0421-28/4 | | | | Presidential Cycling Tour of Türkiye (2.Pro) | | | | more |
| 18 | | | General classificationGeneral classification | | 12 | 5 | |
28.04 | NR | | | S8Stage 8 - Istanbul › Istanbul | 105.4 | | | |
27.04 | 65 | 18 | | S7Stage 7 - Çeşme › İzmir | 125.4 | | | |
26.04 | 19 | 18 | | S6Stage 6 - Kuşadası › Manisa (Spil Dağı) | 160.1 | | | |
25.04 | 28 | 13 | | S5Stage 5 - Bodrum › Kuşadası | 177.9 | | | |
24.04 | 17 | 13 | | S4Stage 4 - Marmaris › Bodrum | 137.9 | | | |
23.04 | 25 | 16 | | S3Stage 3 - Fethiye › Marmaris | 147.4 | | | |
22.04 | 24 | 17 | | S2Stage 2 - Kemer › Kaş | 190.6 | | | |
21.04 | 43 | 45 | | S1Stage 1 - Antalya › Antalya | 134.7 | | | |
17.04 | DNF | | | La Flèche Wallonne (1.UWT) | 198.6 | | | more |
14.04 | 49 | | | Amstel Gold Race (1.UWT) | 253.6 | 5 | 10 | more |
01.04 › 06.041-6/4 | | | | Itzulia Basque Country (2.UWT) | | | | more |
| 37 | | | General classificationGeneral classification | | 5 | 8 | |
06.04 | 32 | | | S6Stage 6 - Eibar › Eibar | 137.8 | | | |
05.04 | 66 | 56 | | S5Stage 5 - Vitoria-Gasteiz › Amorebieta-Etxano | 175.9 | | | |
04.04 | 101 | 44 | | S4Stage 4 - Etxarri Aranatz › Legutio | 157.5 | | | |
03.04 | 74 | 52 | | S3Stage 3 - Ezpeleta › Altsasu | 190.9 | | | |
02.04 | 50 | 55 | | S2Stage 2 - Irun › Kanbo | 160 | | | |
01.04 | 80 | 80 | | S1 (ITT)Stage 1 (ITT) - Irun › Irun | 10 | | | |
30.03 | 18 | | | Gran Premio Miguel Indurain (1.Pro) | 198.1 | 8 | 5 | more |
04.03 › 10.034-10/3 | | | | Tirreno-Adriatico (2.UWT) | | | | more |
09.03 | DNF | | | S6Stage 6 - Sassoferrato › Cagli (Monte Petrano) | 180 | | | |
08.03 | 42 | 40 | | S5Stage 5 - Torricella Sicura › Valle Castellana | 144 | | | |
07.03 | 53 | 28 | | S4Stage 4 - Arrone › Giulianova | 207 | | | |
06.03 | 42 | 29 | | S3Stage 3 - Volterra › Gualdo Tadino | 225 | | | |
05.03 | 102 | 38 | | S2Stage 2 - Camaiore › Follonica | 198 | | | |
04.03 | 39 | 39 | | S1 (ITT)Stage 1 (ITT) - Lido di Camaiore › Lido di Camaiore | 10 | | | |
02.03 | 45 | | | Strade Bianche (1.UWT) 69k | 215 | 5 | 8 | more |
14.02 › 18.0214-18/2 | | | | Vuelta a Andalucia Ruta Ciclista Del Sol (2.Pro) | | | | more |
16.02 | 20 | | | S3 (ITT)Stage 3 (ITT) - Alcaudete › Alcaudete | 4.95 | | | |
12.02 | 17 | | | Clásica Jaén (1.1) | 158.3 | 4 | 3 | more |
10.02 | 11 | | | Vuelta Ciclista a la Region de Murcia "Costa Calida" (1.1) | 198.7 | 12 | 15 | more |