| 06-10 | DNF | | Coppa Agostoni (1.1) | 166.0km |
| 05-10 | DNF | | Giro dell'Emilia (1.Pro) | 215.0km |
| 01-10 | 57 | | Coppa Citta' Di San Daniele (1.2) | 160.0km |
| 27-09 | 95 | | UCI World Championship Zurich U23 (CM) | 173.0km |
| | | Giro d'Italia Next Gen (2.2U) |
| 22 | | Punten |
| 16-06 | | | Stage 8Cesena - Forlimpopoli (146.0km) | 146.0km |
| 15-06 | 9 | 24 | Stage 7Montegrotto Terme - Zocca (170.0km) | 170.0km |
| 14-06 | 18 | 26 | Stage 6Borgo Virgilio - Fosse (145.0km) | 145.0km |
| 13-06 | 41 | 38 | Stage 5Bergamo - Cremona (136.0km) | 136.0km |
| 12-06 | 97 | 38 | Stage 4Pertusio - Borgomanero (130.0km) | 130.0km |
| 11-06 | 42 | 39 | Stage 3Verrès - Pian della Mussa (127.0km) | 127.0km |
| 10-06 | 44 | 50 | Stage 2Aymavilles - Saint-Vincent (121.0km) | 121.0km |
| 09-06 | 98 | 98 | Stage 1Aosta - Aosta (11.0km) | 11.0km |
| 02-06 | | | Coppa della Pace - Trofeo F.lli Anelli (1.2U) | 172.0km |
| 26-05 | 3 | | Road Continental Pan-Am Championships U23 (CC) | |
| | | Ronde de l'Isard (2.2U) |
| 22 | | Klassement |
| 15 | | Berg |
| 05-05 | 27 | 22 | Stage 5Pamiers - Saint-Girons (134.0km) | 134.0km |
| 04-05 | 25 | 23 | Stage 4Lavelanet - Plateau de Beille (122.0km) | 122.0km |
| 03-05 | 19 | 31 | Stage 3Bagnères-de-Luchon - Saverdun (153.0km) | 153.0km |
| 02-05 | 24 | 34 | Stage 2Bagnères-de-Bigorre - Bagnères-de-Luchon (125.0km) | 125.0km |
| 01-05 | 68 | 68 | Stage 1L'Isle-en-Dodon - Trie-sur-Baïse (146.0km) | 146.0km |
| 25-04 | 5 | | Gran Premio della Liberazione (1.2U) | 138.0km |
| 14-04 | 6 | | 64° GP Industria & Commercio (1.2U) | |
| 02-04 | DNF | | G.P. Palio del Recioto - Trofeo C&F Resinatura Blocchi (1.2U) | |
| 01-04 | 29 | | Giro del Belvedere (1.2U) | |
| | | Settimana Internazionale Coppi e Bartali (2.1) |
| 75 | | Klassement |
| 27 | | Berg |
| 23-03 | 74 | 75 | Stage 5Forlì - Forlì (157.0km) | 157.0km |
| 22-03 | 50 | 85 | Stage 4Brisighella - Brisighella (150.0km) | 150.0km |
| 21-03 | 104 | 107 | Stage 3Riccione - Riccione (134.0km) | 134.0km |
| 20-03 | 100 | 95 | Stage 2Riccione - Sogliano al Rubicone (140.0km) | 140.0km |
| 19-03 | 82 | 82 | Stage 1Pesaro - Pesaro (109.0km) | 109.0km |
| | | Istarsko Proljece - Istrian Spring Trophy (2.2) |
| 30 | | Klassement |
| 10-03 | 41 | 30 | Stage 3Pazin - Umag (118.0km) | 118.0km |
| 09-03 | 35 | 35 | Stage 2Novigrad - Motovun (139.0km) | 139.0km |
| 08-03 | 47 | 55 | Stage 1Porec - Funtana (144.0km) | 144.0km |
| 07-03 | 95 | 95 | PrologueVrsar - Vrsar (1.0km) | 1.0km |
| 03-03 | 44 | | Trofej Porec - Porec Trophy (1.2) | |
| 28-02 | DNF | | Trofeo Laigueglia (1.Pro) | 202.0km |
| | | Tour Colombia (2.1) |
| 15 | | Klassement |
| 41 | | Punten |
| 11-02 | 35 | 15 | Stage 6Sopó - Bogotá (155.0km) | 155.0km |
| 10-02 | 10 | 10 | Stage 5Cota - Alto del Vino (138.0km) | 138.0km |
| 09-02 | 59 | 26 | Stage 4Paipa - Zipaquirá (181.0km) | 181.0km |
| 08-02 | 24 | 27 | Stage 3Tunja - Tunja (155.0km) | 155.0km |
| 07-02 | 29 | 29 | Stage 2Paipa - Santa Rosa de Viterbo (169.0km) | 169.0km |
| 06-02 | 12 | 17 | Stage 1Paipa - Duitama (155.0km) | 155.0km |