|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 29/09/2019 | | WCRR | | | | DNF | | World Championships (Harrogate) R.R. | | 0 | |
| 25/09/2019 | | WCTT | | | | 1 | | World Championships (Harrogate) I.T.T. | | 250 | |
| 18/07/2019 | | GT1s | | | | DNF | | Tour de France, Stage 12 : Toulouse - Bagnères-de-Bigorre | | 0 | |
| 17/07/2019 | | GT1s | | | | 156 | | Tour de France, Stage 11 : Albi - Toulouse | | 0 | |
| 15/07/2019 | | GT1s | | | | 161 | | Tour de France, Stage 10 : Saint-Flour - Albi | | 0 | |
| 14/07/2019 | | GT1s | | | | 124 | | Tour de France, Stage 9 : Saint-Étienne - Brioude | | 0 | |
| 13/07/2019 | | GT1s | | | | 80 | | Tour de France, Stage 8 : Mâcon - Saint-Étienne | | 0 | |
| 12/07/2019 | | GT1s | | | | 172 | | Tour de France, Stage 7 : Belfort - Chalon-sur-Saône | | 0 | |
| 11/07/2019 | | GT1s | | | | 55 | | Tour de France, Stage 6 : Mulhouse - La Planche des Belles Filles | | 0 | |
| 10/07/2019 | | GT1s | | | | 105 | | Tour de France, Stage 5 : Saint-Dié-des-Vosges - Colmar | | 0 | |
| 9/07/2019 | | GT1s | | | | 155 | | Tour de France, Stage 4 : Reims - Nancy | | 0 | |
| 8/07/2019 | | GT1s | | | | 89 | | Tour de France, Stage 3 : Binche (BEL) - Epernay | | 0 | |
| 7/07/2019 | | GT1s | | | | 9 | | Tour de France, Stage 2 : Brussel (BEL) T.T.T. | | 0 | |
| 6/07/2019 | | GT1s | | | | 158 | | Tour de France, Stage 1 : Brussel (BEL) - Brussel (BEL) | | 0 | |
| 23/06/2019 | | 2.WT1r | | | | 3 | | Tour de Suisse, Mountains classification | | 18 | |
| 23/06/2019 | | 2.WT1r | | | | 3 | | Tour de Suisse, Points classification | | 18 | |
| 23/06/2019 | | 2.WT1 | | | | 2 | | Tour de Suisse | | 195 | |
| 23/06/2019 | | 2.WT1s | | | | 2 | | Tour de Suisse, Stage 9 : Ulrichen - Ulrichen | | 28 | |
| 22/06/2019 | | 2.WT1s | | | | 6 | | Tour de Suisse, Stage 8 : Goms - Goms I.T.T. | | 3 | |
| 21/06/2019 | | 2.WT1s | | | | 3 | | Tour de Suisse, Stage 7 : Unterterzen - San Gottardo | | 18 | |
| 20/06/2019 | | 2.WT1s | | | | 12 | | Tour de Suisse, Stage 6 : Einsiedeln - Flumserberg | | 0 | |
| 19/06/2019 | | 2.WT1s | | | | 65 | | Tour de Suisse, Stage 5 : Münchenstein - Einsiedeln | | 0 | |
| 18/06/2019 | | 2.WT1s | | | | 58 | | Tour de Suisse, Stage 4 : Murten - Arlesheim | | 0 | |
| 17/06/2019 | | 2.WT1s | | | | 17 | | Tour de Suisse, Stage 3 : Flamatt - Murten | | 0 | |
| 16/06/2019 | | 2.WT1s | | | | 32 | | Tour de Suisse, Stage 2 : Langnau im Emmental - Langnau im Emmental | | 0 | |
| 15/06/2019 | | 2.WT1s | | | | leader | | Tour de Suisse, Stage 1 : Langnau im Emmental I.T.T. | | 11 | |
| 15/06/2019 | | 2.WT1s | | | | 1 | | Tour de Suisse, Stage 1 : Langnau im Emmental I.T.T. | | 45 | |
| 18/05/2019 | | 2.WT3 | | | | 11 | | Tour of California | | 46 | |
| 18/05/2019 | | 2.WT3s | | | | 30 | | Tour of California, Stage 7 : Santa Clarita - Pasadena | | 0 | |
| 17/05/2019 | | 2.WT3s | | | | 8 | | Tour of California, Stage 6 : Ontario - Mount Baldy | | 0 | |
| 16/05/2019 | | 2.WT3s | | | | 26 | | Tour of California, Stage 5 : Pismo Beach - Ventura | | 0 | |
| 15/05/2019 | | 2.WT3s | | | | 36 | | Tour of California, Stage 4 : Laguna Seca - Morro Bay | | 0 | |
| 14/05/2019 | | 2.WT3s | | | | 37 | | Tour of California, Stage 3 : Stockton - Morgan Hill | | 0 | |
| 13/05/2019 | | 2.WT3s | | | | 20 | | Tour of California, Stage 2 : Rancho Cordova - South Lake Tahoe | | 0 | |
| 12/05/2019 | | 2.WT3s | | | | 55 | | Tour of California, Stage 1 : Sacramento | | 0 | |
| 10/04/2019 | | 2.WT2s | | | | DNS | | Itzulia Basque Country, Stage 3 : Sarriguren - Estibaliz | | 0 | |
| 9/04/2019 | | 2.WT2s | | | | 87 | | Itzulia Basque Country, Stage 2 : Zumarraga - Gorraiz | | 0 | |
| 8/04/2019 | | 2.WT2s | | | | 22 | | Itzulia Basque Country, Stage 1 : Zumarraga - Zumarraga I.T.T. | | 0 | |
| 19/03/2019 | | 2.WT1 | | | | 95 | | Tirreno - Adriatico | | 5 | |
| 19/03/2019 | | 2.WT1s | | | | 8 | | Tirreno - Adriatico, Stage 7 : San Benedetto del Tronto I.T.T. | | 1 | |
| 18/03/2019 | | 2.WT1s | | | | 139 | | Tirreno - Adriatico, Stage 6 : Matelica - Jesi | | 0 | |
| 17/03/2019 | | 2.WT1s | | | | 65 | | Tirreno - Adriatico, Stage 5 : Colli al Metauro - Recanti | | 0 | |
| 16/03/2019 | | 2.WT1s | | | | 115 | | Tirreno - Adriatico, Stage 4 : Foligno - Fossombrone | | 0 | |
| 15/03/2019 | | 2.WT1s | | | | 123 | | Tirreno - Adriatico, Stage 3 : Pomarance - Foligno | | 0 | |
| 14/03/2019 | | 2.WT1s | | | | 31 | | Tirreno - Adriatico, Stage 2 : Camaiore - Pomarance | | 0 | |
| 13/03/2019 | | 2.WT1s | | | | 10 | | Tirreno - Adriatico, Stage 1 : Lido di Camaiore T.T.T. | | 0 | |
| 2/03/2019 | | 2.WT3 | | | | 70 | | UAE Tour | | 5 | |
| 2/03/2019 | | 2.WT3s | | | | 127 | | UAE Tour, Stage 7 : Dubai - Dubai | | 0 | |
| 1/03/2019 | | 2.WT3s | | | | 60 | | UAE Tour, Stage 6 : Ajman - Jabel Jais | | 0 | |
| 28/02/2019 | | 2.WT3s | | | | 129 | | UAE Tour, Stage 5 : Sharjah - Khor Fakkan | | 0 | |
| 27/02/2019 | | 2.WT3s | | | | 85 | | UAE Tour, Stage 4 : Dubai - Hatta Dam | | 0 | |
| 26/02/2019 | | 2.WT3s | | | | 77 | | UAE Tour, Stage 3 : Al Ain - Jebel Hafeet | | 0 | |
| 25/02/2019 | | 2.WT3s | | | | 136 | | UAE Tour, Stage 2 : Abu Dhabi - Abu Dhabi | | 0 | |
| 24/02/2019 | | 2.WT3s | | | | 3 | | UAE Tour, Stage 1 : Al Hudayriat T.T.T. | | 3 | |
| 20/01/2019 | | 2.WT1 | | | | 5 | | Tour Down Under | | 120 | |
| 20/01/2019 | | 2.WT1s | | | | 4 | | Tour Down Under, Stage 6 : McLaren Vale - Willunga Hill | | 10 | |
| 19/01/2019 | | 2.WT1s | | | | 42 | | Tour Down Under, Stage 5 : Glenelg - Strathalbyn | | 0 | |
| 18/01/2019 | | 2.WT1s | | | | 20 | | Tour Down Under, Stage 4 : Unley - Campbelltown | | 0 | |
| 17/01/2019 | | 2.WT1s | | | | 32 | | Tour Down Under, Stage 3 : Lobethal - Uraidla | | 0 | |
| 16/01/2019 | | 2.WT1s | | | | 46 | | Tour Down Under, Stage 2 : Norwood - Angaston | | 0 | |
| 15/01/2019 | | 2.WT1s | | | | 94 | | Tour Down Under, Stage 1 : Barnsley - Bedale | | 0 | |
| 8/01/2019 | | NCT2 | | | | 2 | | National Championships Australia (Buninyong) I.T.T. | | 30 | |