| 08-10 | 75 | | UCI Gravel World Championship (CM) | 169.0km |
| | | Tour of Britain (2.Pro) |
| 40 | | Klassement |
| 31 | | Punten |
| 10-09 | 24 | 40 | Stage 8Margam Country Park - Caerphilly (166.0km) | 166.0km |
| 09-09 | 50 | 47 | Stage 7Tewkesbury - Gloucester (170.0km) | 170.0km |
| 08-09 | 18 | 12 | Stage 6Southend-on-Sea - Harlow (146.0km) | 146.0km |
| 07-09 | 16 | 17 | Stage 5Felixstowe - Felixstowe (192.0km) | 192.0km |
| 06-09 | 12 | 20 | Stage 4Sherwood Forest - Newark-on-Trent (166.0km) | 166.0km |
| 05-09 | 27 | 28 | Stage 3Goole - Beverley (154.0km) | 154.0km |
| 04-09 | 7 | 37 | Stage 2Wrexham - Wrexham (109.0km) | 109.0km |
| 03-09 | 70 | 70 | Stage 1Altrincham - Manchester (163.0km) | 163.0km |
| | | Tour de l'Avenir (2.NCUP) |
| 111 | | Klassement |
| 27-08 | 92 | 111 | Stage 8Val Cenis - Sainte-Foy-Tarentaise (100.0km) | 100.0km |
| 26-08 | 117 | 119 | Stage 7bLes Karellis - Col du Mont Cenis (70.0km) | 70.0km |
| 26-08 | 122 | 123 | Stage 7aMontricher-Albanne - Les Karellis (11.0km) | 11.0km |
| 25-08 | 111 | 123 | Stage 6Méribel - Col de la Loze (Méribel) (65.0km) | 65.0km |
| 24-08 | 136 | 124 | Stage 5La Tour-de-Salvagny - Lac d'Aiguebelette (141.0km) | 141.0km |
| 23-08 | 110 | 108 | Stage 4Aigurande - Évaux-les-Bains (149.0km) | 149.0km |
| 22-08 | | 103 | Stage 3Vatan - Issoudun (21.0km) | 21.0km |
| 21-08 | 28 | 105 | Stage 2Nozay - Château-Chinon (189.0km) | 189.0km |
| 20-08 | 138 | 138 | Stage 1Carnac - La Gacilly (140.0km) | 140.0km |
| 12-08 | 15 | | UCI World Championship Glasgow U23 (CM) | 168.0km |
| | | Czech Tour (2.1) |
| 74 | | Klassement |
| 4 | | Punten |
| 30-07 | 5 | 74 | Stage 4Šumperk - Šumperk (178.0km) | 178.0km |
| 29-07 | 110 | 101 | Stage 3Moravská Třebová - Cervenohorské sedlo (161.0km) | 161.0km |
| 28-07 | 83 | 77 | Stage 2Olomouc - Pustevny (166.0km) | 166.0km |
| 27-07 | 3 | 3 | Stage 1Prostejov - Uničov (167.0km) | 167.0km |
| 25-06 | 8 | | National Road Championships - USA (CN) | |
| | | Giro d'Italia Giovani (2.2U) |
| 87 | | Klassement |
| 4 | | Punten |
| 18-06 | 25 | 87 | Stage 8Tavagnacco - Trieste (131.0km) | 131.0km |
| 17-06 | 89 | 90 | Stage 7Possagno - Pian del Cansiglio (175.0km) | 175.0km |
| 16-06 | 8 | 87 | Stage 6Pergine Valsugana - Povegliano (166.0km) | 166.0km |
| 15-06 | 121 | 95 | Stage 5Cesano Maderno - Manerba del Garda (164.0km) | 164.0km |
| 14-06 | 120 | 86 | Stage 4Morbegno - Passo dello Stelvio (118.0km) | 118.0km |
| 13-06 | 1 | 23 | Stage 3Priocca - Magenta (146.0km) | 146.0km |
| 12-06 | 80 | 35 | Stage 2San Francesco al Campo - Cherasco (151.0km) | 151.0km |
| 11-06 | 52 | 52 | Stage 1Aglie - Aglie (9.0km) | 9.0km |
| | | Tour of Japan (2.1) |
| 26 | | Klassement |
| 1 | | Punten |
| 28-05 | 4 | 26 | Stage 8Tokyo - Tokyo (112.0km) | 112.0km |
| 27-05 | 1 | 26 | Stage 7Sagamihara - Sagamihara (107.0km) | 107.0km |
| 26-05 | 45 | 26 | Stage 6Subashiri - Subashiri (11.0km) | 11.0km |
| 25-05 | 11 | 5 | Stage 5Shimohisakata - Shimohisakata (120.0km) | 120.0km |
| 24-05 | 1 | 1 | Stage 4Mino City - Mino City (137.0km) | 137.0km |
| 23-05 | 2 | 1 | Stage 3Inabe - Inabe (127.0km) | 127.0km |
| 22-05 | 5 | 5 | Stage 2Shimokoma - Seika (103.0km) | 103.0km |
| 21-05 | 1 | 1 | Stage 1Sakai - Sakai (2.0km) | 2.0km |
| 21-05 | 3 | | Intenational Criterium in Sakai (CRTP) | |
| | | Le Tour de Bretagne Cycliste (2.2) |
| 3 | | Klassement |
| 1 | | Punten |
| 24 | | Berg |
| 01-05 | 10 | 3 | Stage 7Piré-Chancé - Châteaugiron (163.0km) | 163.0km |
| 29-04 | 6 | 3 | Stage 5Sérent - Louisfert (173.0km) | 173.0km |
| 28-04 | 6 | 3 | Stage 4Le Mené - Plumelec (183.0km) | 183.0km |
| 27-04 | 7 | 3 | Stage 3Trégunc - Le Quillio (191.0km) | 191.0km |
| 26-04 | 3 | 1 | Stage 2Sibiril - Melgven (172.0km) | 172.0km |
| 25-04 | 1 | 1 | Stage 1Plouescat - Saint-Pol-de-Léon (155.0km) | 155.0km |
| 23-04 | 1 | | Rutland-Melton CiCLE Classic (1.2) | |
| 15-04 | DNF | | Liège-Bastogne-Liège U23 (1.2U) | 174.0km |
| | | Circuit des Ardennes (2.2) |
| 55 | | Klassement |
| 3 | | Punten |
| 09-04 | 1 | 55 | Stage 4Bazeilles - Charleville-Mézières (180.0km) | 180.0km |
| 08-04 | 77 | 61 | Stage 3Chooz - Haybes (166.0km) | 166.0km |
| 07-04 | 6 | 21 | Stage 2Renneville - Gruyères (187.0km) | 187.0km |
| 06-04 | 101 | 73 | Stage 1Nouvion-sur-Meuse - Sedan (90.0km) | 90.0km |
| | | Volta ao Alentejo (2.2) |
| 60 | | Klassement |
| 4 | | Punten |
| 26-03 | 4 | 60 | Stage 5Monforte - Évora (154.0km) | 154.0km |
| 25-03 | 70 | 59 | Stage 4Crato - Castelo de Vide (149.0km) | 149.0km |
| 24-03 | 15 | 2 | Stage 3Vendas Novas - Estremoz (191.0km) | 191.0km |
| 23-03 | 10 | 1 | Stage 2Castro Verde - Grandola (170.0km) | 170.0km |
| 22-03 | 1 | 1 | Stage 1Beja - Ourique (168.0km) | 168.0km |
| 19-03 | 10 | | Classica da Arrabida - Cyclin'Portugal (1.2) | 182.0km |
| 17-03 | 5 | | Youngster Coast Challenge (1.2U) | |
| | | O Gran Camiño (2.1) |
| 92 | | Klassement |
| 26-02 | 26 | 92 | Stage 4Novo Milladoiro - Santiago de Compostela (17.0km) | 17.0km |
| 25-02 | 100 | 94 | Stage 3Parque Natural Serra da Enciña da Lastra - Rubia (170.0km) | 170.0km |
| 24-02 | 71 | 71 | Stage 2A Guarda - Monte Trega (188.0km) | 188.0km |