| 06-10 | DNF | | Coppa Bernocchi (1.Pro) | 191.0km |
| 04-10 | DNF | | Giro dell'Emilia (1.Pro) | 199.0km |
| 28-09 | 79 | | Paris-Chauny (1.1) | 188.0km |
| 20-09 | DNF | | SUPER 8 Classic (1.Pro) | 204.0km |
| 14-09 | 153 | | GP de Fourmies / La Voix du Nord (1.Pro) | 193.0km |
| | | Tour de l'Avenir (2.NCUP) |
| 29-08 | 100 | 69 | Stage 6aLa Rosière Espace San Bernardo - La Rosière Espace San Bernardo | 41.0km |
| 29-08 | 32 | 66 | Stage 6bLa Rosière-Montvalezan - La Rosière-Montvalezan | 10.0km |
| 28-08 | 65 | 63 | Stage 5Saint-Gervais Mont-Blanc - Tignes | 121.0km |
| 27-08 | 35 | 57 | Stage 4Montagnat - Val Suran | 110.0km |
| 26-08 | 74 | 59 | Stage 3Étang-sur-Arroux - Châtillon-sur-Chalaronne | 158.0km |
| 25-08 | 88 | 59 | Stage 2Saint-Symphorien-sur-Coise - Vitry-en-Charollais | 136.0km |
| 24-08 | 53 | 53 | Stage 1Aoste - Saint-Galmier | 188.0km |
| 23-08 | 55 | 55 | PrologueTignes - Tignes | 3.0km |
| | | Tour Alsace (2.2) |
| 30 | | Standings |
| 32 | | Points |
| 19 | | Youth |
| 03-08 | 39 | 30 | Stage 5Ribeauville - Champ du Feu | 135.0km |
| 02-08 | 17 | 19 | Stage 4Ferrette - Altkirch | 133.0km |
| 01-08 | 20 | 20 | Stage 3Velleminfroy - La Planche des Belles Filles | 141.0km |
| 31-07 | 93 | 85 | Stage 2Rust (Europapark) - Selestat | 168.0km |
| 30-07 | 8 | 85 | Stage 1Sausheim - Sausheim | 4.0km |
| 29-06 | 9 | | National Road Championships - Great Britain (CN) | 190.0km |
| 26-06 | 10 | | National Road Championships - Great Britain TT U23 (CN) | 26.0km |
| | | Giro d'Italia Next Gen (2.2U) |
| 84 | | Standings |
| 22-06 | 76 | 84 | Stage 8Pinerolo - Pinerolo | 127.0km |
| 21-06 | 48 | 85 | Stage 7Bra - Prato Nevoso | 163.0km |
| 20-06 | 67 | 114 | Stage 6Ovada - Acqui Terme | 154.0km |
| 19-06 | 86 | 127 | Stage 5Fiorenzuola d'Arda - Gavi | 153.0km |
| 18-06 | 64 | 129 | Stage 4Manerbio - Salsomaggiore Terme | 134.0km |
| 17-06 | 118 | 133 | Stage 3Albese con Cassano - Passo del Maniva | 144.0km |
| 16-06 | 131 | 140 | Stage 2Rho - Cantù | 146.0km |
| 15-06 | 138 | 138 | Stage 1Rho - Rho | 8.0km |
| | | Alpes Isère Tour (2.2) |
| 29 | | Standings |
| 23 | | Points |
| 15 | | Mountain |
| 24 | | Youth |
| 01-06 | 34 | 29 | Stage 5Saint-Joseph-de-Rivière - La Mure | 181.0km |
| 31-05 | 17 | 5 | Stage 4Primarette - Saint-Maurice-l'Exil | 176.0km |
| 30-05 | 18 | 5 | Stage 3Colombier-Saugnieu - Jons | 159.0km |
| 29-05 | 16 | 5 | Stage 2Dolomieu - Satolas-et-Bonce | 153.0km |
| 28-05 | 7 | 7 | Stage 1Charvieu-Chavagneux - Charvieu-Chavagneux | 135.0km |
| | | Presidential Cycling Tour of Turkiye (2.Pro) |
| 62 | | Standings |
| 04-05 | 134 | 62 | Stage 8Çeşme - İzmir | 105.0km |
| 03-05 | 107 | 60 | Stage 7Selçuk - Çeşme | 144.0km |
| 02-05 | 40 | 63 | Stage 6Kusadasi - Selçuk | 161.0km |
| 01-05 | | 72 | Stage 5Marmaris - Aydin | 151.0km |
| 30-04 | 69 | 72 | Stage 4Marmaris - Akkaya | 115.0km |
| 29-04 | 67 | 85 | Stage 3Fethiye - Marmaris | 175.0km |
| 28-04 | 93 | 123 | Stage 2Kemer - Kalkan | 167.0km |
| 27-04 | 157 | 159 | Stage 1Antalya - Antalya | 132.0km |
| 19-04 | 26 | | Liège-Bastogne-Liège U23 (1.2U) | 175.0km |
| 13-04 | 66 | | Paris-Roubaix Espoirs (1.2U) | 167.0km |
| 05-04 | DNF | | Volta NXT Classic (1.1) | 192.0km |
| 09-03 | 134 | | Dorpenomloop Rucphen (1.2) | 180.0km |
| | | Tour du Rwanda (2.1) |
| 38 | | Standings |
| 15 | | Youth |
| 22 | | Mountain |
| 02-03 | NR | 38 | Stage 7Kigali - Kigali | 73.0km |
| 01-03 | | 38 | Stage 6Nyanza - Kigali | 114.0km |
| 28-02 | 63 | 40 | Stage 5Rusizi - Huye | 143.0km |
| 27-02 | 29 | 25 | Stage 4Rubavu - Karongi | 97.0km |
| 26-02 | 26 | 24 | Stage 3Musanze - Rubavu | 121.0km |
| 25-02 | 12 | 13 | Stage 2Kigali - Musanze | 113.0km |
| 24-02 | 18 | 18 | Stage 1Rukomo - Kayonza | 158.0km |
| 23-02 | 21 | 21 | PrologueKigali - Kigali | 3.0km |