|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 12/10/2019 | | 1.WT1 | | | | DNF | | Il Lombardia | | 0 | |
| 10/10/2019 | | 1.HC | | | | 62 | | Gran Piemonte | | 0 | |
| 6/10/2019 | | 1.1 | | | | 36 | | Famenne Ardenne Classic | | 0 | |
| 29/09/2019 | | WCRR | | | | DNF | | World Championships (Harrogate) R.R. | | 0 | |
| 18/09/2019 | | 1.1 | | | | 17 | | Giro della Toscana - Memorial Alfredo Martini | | 5 | |
| 15/09/2019 | | 1.1 | | | | 43 | | Tour du Doubs | | 0 | |
| 29/08/2019 | | XX | | | | 4 | | All-Africa Games (Rabat) R.R. | | 0 | |
| 26/08/2019 | | XX | | | | 4 | | All-Africa Games (Rabat) I.T.T. | | 0 | |
| 24/08/2019 | | XX | | | | 2 | | All-Africa Games (Rabat) T.T.T. | | 0 | |
| 28/07/2019 | | GT1 | | | | 86 | | Tour de France | | 20 | |
| 28/07/2019 | | GT1s | | | | 74 | | Tour de France, Stage 21 : Rambouillet - Paris | | 0 | |
| 27/07/2019 | | GT1s | | | | 68 | | Tour de France, Stage 20 : Albertville - Val Thorens | | 0 | |
| 26/07/2019 | | GT1s | | | | 46 | | Tour de France, Stage 19 : Saint-Jean-de-Maurienne - Col de l'Iséran | | 0 | |
| 25/07/2019 | | GT1s | | | | 92 | | Tour de France, Stage 18 : Embrun - Valloire | | 0 | |
| 24/07/2019 | | GT1s | | | | 26 | | Tour de France, Stage 17 : Pont-du-Gard - Gap | | 0 | |
| 23/07/2019 | | GT1s | | | | 144 | | Tour de France, Stage 16 : Nîmes - Nîmes | | 0 | |
| 21/07/2019 | | GT1s | | | | 126 | | Tour de France, Stage 15 : Limoux - Foix/Prat d'Albis | | 0 | |
| 20/07/2019 | | GT1s | | | | 73 | | Tour de France, Stage 14 : Tarbes - Col du Tourmalet | | 0 | |
| 19/07/2019 | | GT1s | | | | 127 | | Tour de France, Stage 13 : Pau - Pau I.T.T. | | 0 | |
| 18/07/2019 | | GT1s | | | | 134 | | Tour de France, Stage 12 : Toulouse - Bagnères-de-Bigorre | | 0 | |
| 17/07/2019 | | GT1s | | | | 133 | | Tour de France, Stage 11 : Albi - Toulouse | | 0 | |
| 15/07/2019 | | GT1s | | | | 90 | | Tour de France, Stage 10 : Saint-Flour - Albi | | 0 | |
| 14/07/2019 | | GT1s | | | | 84 | | Tour de France, Stage 9 : Saint-Étienne - Brioude | | 0 | |
| 13/07/2019 | | GT1s | | | | 121 | | Tour de France, Stage 8 : Mâcon - Saint-Étienne | | 0 | |
| 12/07/2019 | | GT1s | | | | 150 | | Tour de France, Stage 7 : Belfort - Chalon-sur-Saône | | 0 | |
| 11/07/2019 | | GT1s | | | | 33 | | Tour de France, Stage 6 : Mulhouse - La Planche des Belles Filles | | 0 | |
| 10/07/2019 | | GT1s | | | | 141 | | Tour de France, Stage 5 : Saint-Dié-des-Vosges - Colmar | | 0 | |
| 9/07/2019 | | GT1s | | | | 146 | | Tour de France, Stage 4 : Reims - Nancy | | 0 | |
| 8/07/2019 | | GT1s | | | | 74 | | Tour de France, Stage 3 : Binche (BEL) - Epernay | | 0 | |
| 7/07/2019 | | GT1s | | | | - | | Tour de France, Stage 2 : Brussel (BEL) T.T.T. | | 0 | |
| 6/07/2019 | | GT1s | | | | 100 | | Tour de France, Stage 1 : Brussel (BEL) - Brussel (BEL) | | 0 | |
| 30/06/2019 | | NC4 | | | | 1 | | National Championships Eritrea (Asmara) R.R. | | 30 | |
| 28/06/2019 | | NCT4 | | | | 4 | | National Championships Eritrea (Asmara) I.T.T. | | 4 | |
| 16/06/2019 | | 2.WT1 | | | | 81 | | Critérium du Dauphiné | | 5 | |
| 16/06/2019 | | 2.WT1s | | | | 75 | | Critérium du Dauphiné, Stage 8 : Cluses - Champéry (SUI) | | 0 | |
| 15/06/2019 | | 2.WT1s | | | | 88 | | Critérium du Dauphiné, Stage 7 : Saint-Genix-les-Villages - Pipay | | 0 | |
| 14/06/2019 | | 2.WT1s | | | | 98 | | Critérium du Dauphiné, Stage 6 : Saint-Vulbas - Saint-Michel-de-Maurienne | | 0 | |
| 13/06/2019 | | 2.WT1s | | | | 36 | | Critérium du Dauphiné, Stage 5 : Boën-sur-Lignon - Voiron | | 0 | |
| 12/06/2019 | | 2.WT1s | | | | 131 | | Critérium du Dauphiné, Stage 4 : Roanne - Roanne I.T.T. | | 0 | |
| 11/06/2019 | | 2.WT1s | | | | 140 | | Critérium du Dauphiné, Stage 3 : Le Puy-en-Velay - Riom | | 0 | |
| 10/06/2019 | | 2.WT1s | | | | 100 | | Critérium du Dauphiné, Stage 2 : Mauriac - Craponne-sur-Arzon | | 0 | |
| 9/06/2019 | | 2.WT1s | | | | 69 | | Critérium du Dauphiné, Stage 1 : Aurillac - Jussac | | 0 | |
| 18/05/2019 | | 2.WT3 | | | | 20 | | Tour of California | | 16 | |
| 18/05/2019 | | 2.WT3s | | | | 36 | | Tour of California, Stage 7 : Santa Clarita - Pasadena | | 0 | |
| 17/05/2019 | | 2.WT3s | | | | 20 | | Tour of California, Stage 6 : Ontario - Mount Baldy | | 0 | |
| 16/05/2019 | | 2.WT3s | | | | 14 | | Tour of California, Stage 5 : Pismo Beach - Ventura | | 0 | |
| 15/05/2019 | | 2.WT3s | | | | 86 | | Tour of California, Stage 4 : Laguna Seca - Morro Bay | | 0 | |
| 14/05/2019 | | 2.WT3s | | | | 21 | | Tour of California, Stage 3 : Stockton - Morgan Hill | | 0 | |
| 13/05/2019 | | 2.WT3s | | | | 23 | | Tour of California, Stage 2 : Rancho Cordova - South Lake Tahoe | | 0 | |
| 12/05/2019 | | 2.WT3s | | | | 39 | | Tour of California, Stage 1 : Sacramento | | 0 | |
| 31/03/2019 | | 2.WT2s | | | | DNF | | Volta a Catalunya, Stage 7 : Barcelona - Barcelona | | 0 | |
| 30/03/2019 | | 2.WT2s | | | | 56 | | Volta a Catalunya, Stage 6 : Valls - Vilaseca | | 0 | |
| 29/03/2019 | | 2.WT2s | | | | 74 | | Volta a Catalunya, Stage 5 : Puigcerda - Sant Cugat | | 0 | |
| 28/03/2019 | | 2.WT2s | | | | 118 | | Volta a Catalunya, Stage 4 : Llanars - La Molina | | 0 | |
| 27/03/2019 | | 2.WT2s | | | | 100 | | Volta a Catalunya, Stage 3 : Sant Feliu de Guixols - Setcases/Vallter 2000 | | 0 | |
| 26/03/2019 | | 2.WT2s | | | | 78 | | Volta a Catalunya, Stage 2 : Mataro - Sant Feliu de Guixols | | 0 | |
| 25/03/2019 | | 2.WT2s | | | | 21 | | Volta a Catalunya, Stage 1 : Calella - Calella | | 0 | |
| 19/03/2019 | | 2.WT1r | | | | 6 | | Tirreno - Adriatico, Mountains classification | | 3 | |
| 19/03/2019 | | 2.WT1 | | | | 83 | | Tirreno - Adriatico | | 5 | |
| 19/03/2019 | | 2.WT1s | | | | 122 | | Tirreno - Adriatico, Stage 7 : San Benedetto del Tronto I.T.T. | | 0 | |
| 18/03/2019 | | 2.WT1s | | | | 74 | | Tirreno - Adriatico, Stage 6 : Matelica - Jesi | | 0 | |
| 17/03/2019 | | 2.WT1s | | | | 49 | | Tirreno - Adriatico, Stage 5 : Colli al Metauro - Recanti | | 0 | |
| 16/03/2019 | | 2.WT1s | | | | 98 | | Tirreno - Adriatico, Stage 4 : Foligno - Fossombrone | | 0 | |
| 15/03/2019 | | 2.WT1s | | | | 137 | | Tirreno - Adriatico, Stage 3 : Pomarance - Foligno | | 0 | |
| 14/03/2019 | | 2.WT1s | | | | 123 | | Tirreno - Adriatico, Stage 2 : Camaiore - Pomarance | | 0 | |
| 13/03/2019 | | 2.WT1s | | | | 19 | | Tirreno - Adriatico, Stage 1 : Lido di Camaiore T.T.T. | | 0 | |
| 3/03/2019 | | 1.1 | | | | 54 | | Drôme Classic | | 0 | |
| 2/03/2019 | | 1.1 | | | | 15 | | Classic d'Ardèche | | 6 | |
| 16/02/2019 | | 2.1 | | | | 63 | | Vuelta a Murcia | | 0 | |