15.10 | DNF | | | Veneto Classic (1.Pro) | 196.25 | | | more |
13.10 | 7 | | | Serenissima Gravel (GRV) | | | | more |
11.10 | 51 | | | Giro del Veneto (1.Pro) | 170.12 | | | more |
07.10 | 72 | | | Il Lombardia (1.UWT) | 238 | 5 | | more |
03.10 | DNF | | | Tre Valli Varesine (1.Pro) | 196.54 | | | more |
02.10 | 65 | | | Coppa Bernocchi - GP Banco BPM (1.Pro) | 186.65 | | | more |
30.09 | 69 | | | Giro dell'Emilia (1.Pro) | 204.1 | | | more |
28.09 | 38 | | | Coppa Agostoni - Giro delle Brianze (1.1) | 195.7 | | | more |
03.09 › 10.093-10/9 | | | | Tour of Britain (2.Pro) | | | | more |
| 3 | | | Mountains classificationMountains classification | | | | |
| 11 | | | Points classificationPoints classification | | | | |
| 5 | | | General classificationGeneral classification | | 70 | 85 | |
10.09 | 8 | | | S8Stage 8 - Margam Country Park › Caerphilly | 166.8 | 1 | | |
09.09 | 10 | 7 | | S7Stage 7 - Tewkesbury › Gloucester 153k | 170.9 | | | |
08.09 | 29 | 32 | | S6Stage 6 - Southend-on-Sea › Harlow | 146.2 | | | |
07.09 | 40 | 34 | | S5Stage 5 - Felixstowe › Felixstowe | 192.4 | | | |
06.09 | 37 | 35 | | S4Stage 4 - Sherwood Forest › Newark-on-Trent | 166.6 | | | |
05.09 | 38 | 34 | | S3Stage 3 - Goole › Beverley | 154.7 | | | |
04.09 | 35 | 40 | | S2Stage 2 - Wrexham › Wrexham | 109.9 | | | |
03.09 | 44 | 44 | | S1Stage 1 - Altrincham › Manchester | 161.6 | | | |
15.08 › 19.0815-19/8 | | | | Vuelta a Burgos (2.Pro) | | | | more |
| 6 | | | Youth classificationYouth classification | | | | |
| 36 | | | Points classificationPoints classification | | | | |
| 17 | | | General classificationGeneral classification | | 14 | 5 | |
19.08 | 24 | | | S5Stage 5 - Golmayo › Lagunas de Neila | 160 | | | |
18.08 | 27 | 17 | | S4Stage 4 - Santa Gadea del Cid › Pradoluengo (Acebel-Vizcarra) | 157 | | | |
17.08 | 14 | 17 | | S3Stage 3 - Sargentes de la Lora › Villarcayo | 183 175 | | | |
16.08 | 9 | 36 | | S2 (TTT)Stage 2 (TTT) - Oña › Poza de la Sal | 13.1 | | | |
15.08 | 34 | 36 | | S1Stage 1 - Villalba de Duero › Burgos | 161 | | | |
29.07 › 04.0829-4/7 | | | | Tour de Pologne (2.UWT) | | | | more |
| 24 | | | General classificationGeneral classification | | 12 | 16 | |
04.08 | 42 | | | S7Stage 7 - Zabrze › Kraków | 166.6 | | | |
03.08 | 70 | 24 | | S6 (ITT)Stage 6 (ITT) - Katowice › Katowice | 16.6 | | | |
02.08 | 54 | 19 | | S5Stage 5 - Pszczyna › Bielsko-Biala | 198.8 | | | |
01.08 | 79 | 16 | | S4Stage 4 - Strzelin › Opole | 199.1 | | | |
31.07 | 25 | 16 | | S3Stage 3 - Wałbrzych › Duszniki-Zdrój | 162.3 | | | |
30.07 | 29 | 21 | | S2Stage 2 - Leszno › Karpacz | 202.9 | | | |
29.07 | 61 | 61 | | S1Stage 1 - Poznań › Poznań | 183.7 | | | |
06.07 › 09.076-9/7 | | | | Sibiu Cycling Tour (2.1) | | | | more |
| 4 | | | Mountains classificationMountains classification | | | | |
| 3 | | | Points classificationPoints classification | | | | |
| 1 | | | General classificationGeneral classification | | 100 | 125 | |
09.07 | 5 | | | S4b (ITT)Stage 4b (ITT) - Sibiu › Sibiu | 3.3 | 4 | | |
09.07 | 16 | 2 | | S4aStage 4a - Sibiu › Sibiu | 97.3 | | | |
08.07 | 4 | 2 | | S3Stage 3 - Brezoi › Păltiniș | 202 | 5 | | |
07.07 | 3 | 3 | | S2Stage 2 - Sibiu › Bâlea Lac | 155 | 7 | 3 | |
06.07 | 21 | 24 | | S1Stage 1 - Sibiu › Sibiu | 199 | | | |
25.06 | 7 | | | National Championships Great Britain ME - Road Race (NC) | 189 | | 20 | more |
11.06 › 18.0611-18/6 | | | | Tour de Suisse (2.UWT) | | | | more |
| 14 | | | Youth classificationYouth classification | | | | |
| 41 | | | General classificationGeneral classification | | 5 | 10 | |
18.06 | 51 | | | S8 (ITT)Stage 8 (ITT) - St. Gallen › Abtwil | 25.7 | | | |
17.06 | 21 | 41 | | S7Stage 7 - Tübach › Weinfelden | 183.5 | | | |
16.06 | NR | 52 | | S6Stage 6 - Chur › Oberwil-Lieli | 140.9 19 | | | |
15.06 | 29 | 52 | | S5Stage 5 - Fiesch › La Punt | 211 | | | |
14.06 | 65 | 85 | | S4Stage 4 - Monthey › Leukerbad | 152.5 | | | |
13.06 | 53 | 107 | | S3Stage 3 - Tafers › Villars-sur-Ollon | 143.8 | | | |
12.06 | 140 | 142 | | S2Stage 2 - Beromünster › Nottwil | 173.7 | | | |
11.06 | 116 | 116 | | S1 (ITT)Stage 1 (ITT) - Einsiedeln › Einsiedeln | 12.7 | | | |
09.06 | 41 | | | Grosser Preis des Kantons Aargau (1.1) | 173.8 | | | more |
01.05 | 33 | | | Eschborn-Frankfurt (1.UWT) | 203.8 | 5 | 5 | more |
17.04 › 21.0417-21/4 | | | | Tour of the Alps (2.Pro) | | | | more |
| 22 | | | Points classificationPoints classification | | | | |
| 20 | | | General classificationGeneral classification | | 8 | 5 | |
21.04 | 36 | | | S5Stage 5 - Cavalese › Brunico | 144.5 | | | |
20.04 | 9 | 15 | | S4Stage 4 - Rovereto › Predazzo | 152.9 | | | |
19.04 | 21 | 20 | | S3Stage 3 - Ritten › Brentonico San Valentino | 162.5 | | | |
18.04 | 11 | 19 | | S2Stage 2 - Reith im Alpbachtal › Ritten | 165.2 | | | |
17.04 | 23 | 23 | | S1Stage 1 - Rattenberg › Alpbach | 127.5 | | | |
11.04 › 14.0411-14/4 | | | | Giro di Sicilia (2.1) | | | | more |
| 2 | | | Youth classificationYouth classification | | | | |
| 7 | | | Mountains classificationMountains classification | | | | |
| 7 | | | Points classificationPoints classification | | | | |
| 5 | | | General classificationGeneral classification | | 28 | 50 | |
14.04 | 6 | | | S4Stage 4 - Barcellona Pozzo di Gotto › Giarre | 216 | 3 | | |
13.04 | 16 | 11 | | S3Stage 3 - Enna › Termini Imerese | 150 | | | |
12.04 | 37 | 11 | | S2Stage 2 - Canicattì › Vittoria | 193 | | | |
11.04 | 14 | 14 | | S1Stage 1 - Marsala › Agrigento | 159 | | | |
18.03 | 70 | | | Milano-Sanremo (1.UWT) | 294 | 5 | | more |
06.03 › 12.036-12/3 | | | | Tirreno-Adriatico (2.UWT) | | | | more |
| 10 | | | Youth classificationYouth classification | | | | |
| 46 | | | General classificationGeneral classification | | 5 | 10 | |
12.03 | 69 | | | S7Stage 7 - San Benedetto del Tronto › San Benedetto del Tronto | 154 | | | |
11.03 | 63 | 50 | | S6Stage 6 - Osimo Stazione › Osimo | 193 | | | |
10.03 | 50 | 46 | | S5Stage 5 - Morro d'Oro › Sassotetto - Fonte Lardina | 165.6 | | | |
09.03 | 55 | 49 | | S4Stage 4 - Greccio › Tortoreto | 218 | | | |
08.03 | 70 | 93 | | S3Stage 3 - Follonica › Foligno | 216 | | | |
07.03 | 103 | 132 | | S2Stage 2 - Camaiore › Follonica | 210 | | | |
06.03 | 151 | 151 | | S1 (ITT)Stage 1 (ITT) - Lido di Camaiore › Lido di Camaiore | 11.5 | | | |
04.03 | DNF | | | Strade Bianche (1.UWT) | 184 | | | more |
23.02 › 26.0223-26/2 | | | | O Gran Camiño (2.1) | | | | more |
| 17 | | | Points classificationPoints classification | | | | |
| 24 | | | General classificationGeneral classification | | | 3 | |
26.02 | 56 | | | S4 (ITT)Stage 4 (ITT) - Novo Milladoiro › Santiago de Compostela | 18.1 | | | |
25.02 | 20 | 16 | | S3Stage 3 - Esgos › Rubiá (Alto do Castelo) 69k | 123.4 | | | |
24.02 | 17 | 17 | | S2Stage 2 - Tui › A Guarda (Monte Trega) | 184.3 | | | |
23.02 | NR | | | S1Stage 1 - Muralla de Lugo › Sarria | 188 172 | | | |
30.01 › 03.0230-3/1 | | | | Saudi Tour (2.1) | | | | more |
| 5 | | | Youth classificationYouth classification | | | | |
| 12 | | | General classificationGeneral classification | | 10 | 10 | |
03.02 | 28 | | | S5Stage 5 - AlUla Old Town › Maraya | 142.9 | | | |
02.02 | 19 | 13 | | S4Stage 4 - Maraya › Skyviews of Harrat Uwayrid | 163.4 | | | |
01.02 | 24 | 20 | | S3Stage 3 - Al Manshiyah Train Station › Abu Rakah | 159.2 | | | |
31.01 | 34 | 30 | | S2Stage 2 - Winter Park › Shalal Sijlyat Rocks | 184 | | | |
30.01 | 41 | 42 | | S1Stage 1 - AlUla International Airport › Khaybar | 180.5 | | | |