|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 22/10/2019 | | 2.WT3r | | | | 2 | | Tour of Guangxi, Points classification | | 18 | |
| 22/10/2019 | | 2.WT3 | | | | 16 | | Tour of Guangxi | | 24 | |
| 22/10/2019 | | 2.WT3s | | | | 7 | | Tour of Guangxi, Stage 6 : Guilin - Guilin | | 1 | |
| 21/10/2019 | | 2.WT3s | | | | 3 | | Tour of Guangxi, Stage 5 : Liuzhou - Guilin | | 12 | |
| 19/10/2019 | | 2.WT3s | | | | 3 | | Tour of Guangxi, Stage 3 : Nanning - Nanning | | 12 | |
| 18/10/2019 | | 2.WT3s | | | | 3 | | Tour of Guangxi, Stage 2 : Beihai - Qinzhou | | 12 | |
| 17/10/2019 | | 2.WT3s | | | | 3 | | Tour of Guangxi, Stage 1 : Beihai - Beihai | | 12 | |
| 29/09/2019 | | WCRR | | | | 2 | | World Championships (Harrogate) R.R. | | 240 | |
| 22/09/2019 | | 1.1 | | | | 1 | | Trofeo Matteotti | | 80 | |
| 14/09/2019 | | 2.HC | | | | 2 | | Tour of Britain | | 120 | |
| 14/09/2019 | | 2.HCs | | | | 3 | | Tour of Britain, Stage 8 : Altrincham - Manchester | | 10 | |
| 13/09/2019 | | 2.HCs | | | | 2 | | Tour of Britain, Stage 7 : Warwick - Burton Dassett Country Park | | 15 | |
| 11/09/2019 | | 2.HCs | | | | leader | | Tour of Britain, Stage 5 : Birkenhead - Birkenhead | | 8 | |
| 11/09/2019 | | 2.HCs | | | | 3 | | Tour of Britain, Stage 5 : Birkenhead - Birkenhead | | 10 | |
| 9/09/2019 | | 2.HCs | | | | leader | | Tour of Britain, Stage 3 : Berwick-upon-Tweed - Newcastle-upon-Tyne | | 8 | |
| 9/09/2019 | | 2.HCs | | | | 5 | | Tour of Britain, Stage 3 : Berwick-upon-Tweed - Newcastle-upon-Tyne | | 3 | |
| 8/09/2019 | | 2.HCs | | | | leader | | Tour of Britain, Stage 2 : Kelso - Kelso | | 8 | |
| 8/09/2019 | | 2.HCs | | | | 1 | | Tour of Britain, Stage 2 : Kelso - Kelso | | 25 | |
| 7/09/2019 | | 2.HCs | | | | 3 | | Tour of Britain, Stage 1 : Glasgow - Kirkcudbright | | 10 | |
| 1/09/2019 | | 1.WT2 | | | | 22 | | Bretagne Classic - Ouest-France | | 14 | |
| 25/08/2019 | | 1.WT2 | | | | 7 | | EuroEyes Cyclassics - Hamburg | | 66 | |
| 11/08/2019 | | CC1 | | | | 7 | | European Championships (Alkmaar) R.R. | | 25 | |
| 28/07/2019 | | GT1r | | | | 6 | | Tour de France, Points classification | | 10 | |
| 28/07/2019 | | GT1 | | | | 52 | | Tour de France | | 20 | |
| 28/07/2019 | | GT1s | | | | 7 | | Tour de France, Stage 21 : Rambouillet - Paris | | 5 | |
| 24/07/2019 | | GT1s | | | | 1 | | Tour de France, Stage 17 : Pont-du-Gard - Gap | | 80 | |
| 23/07/2019 | | GT1s | | | | 7 | | Tour de France, Stage 16 : Nîmes - Nîmes | | 5 | |
| 18/07/2019 | | GT1s | | | | 6 | | Tour de France, Stage 12 : Toulouse - Bagnères-de-Bigorre | | 10 | |
| 15/07/2019 | | GT1s | | | | 8 | | Tour de France, Stage 10 : Saint-Flour - Albi | | 3 | |
| 13/07/2019 | | GT1s | | | | 6 | | Tour de France, Stage 8 : Mâcon - Saint-Étienne | | 10 | |
| 10/07/2019 | | GT1s | | | | 3 | | Tour de France, Stage 5 : Saint-Dié-des-Vosges - Colmar | | 35 | |
| 8/07/2019 | | GT1s | | | | 6 | | Tour de France, Stage 3 : Binche (BEL) - Epernay | | 10 | |
| 6/07/2019 | | GT1s | | | | 7 | | Tour de France, Stage 1 : Brussel (BEL) - Brussel (BEL) | | 5 | |
| 23/06/2019 | | 2.WT1r | | | | 5 | | Tour de Suisse, Points classification | | 5 | |
| 23/06/2019 | | 2.WT1 | | | | 49 | | Tour de Suisse | | 5 | |
| 19/06/2019 | | 2.WT1s | | | | 4 | | Tour de Suisse, Stage 5 : Münchenstein - Einsiedeln | | 10 | |
| 18/06/2019 | | 2.WT1s | | | | 4 | | Tour de Suisse, Stage 4 : Murten - Arlesheim | | 10 | |
| 16/06/2019 | | 2.WT1s | | | | 3 | | Tour de Suisse, Stage 2 : Langnau im Emmental - Langnau im Emmental | | 18 | |
| 21/04/2019 | | 1.WT2 | | | | 10 | | Amstel Gold Race | | 46 | |
| 14/04/2019 | | 1.WT1 | | | | 43 | | Paris - Roubaix | | 5 | |
| 7/04/2019 | | 1.WT1 | | | | 21 | | Ronde van Vlaanderen | | 22 | |
| 31/03/2019 | | 1.WT2 | | | | 7 | | Gent - Wevelgem | | 66 | |
| 29/03/2019 | | 1.WT2 | | | | 7 | | E3 BinckBank Classic | | 66 | |
| 23/03/2019 | | 1.WT1 | | | | 10 | | Milano - Sanremo | | 62 | |
| 17/03/2019 | | 2.WT1r | | | | 4 | | Paris - Nice, Mountains classification | | 10 | |
| 17/03/2019 | | 2.WT1r | | | | 5 | | Paris - Nice, Points classification | | 5 | |
| 17/03/2019 | | 2.WT1 | | | | 39 | | Paris - Nice | | 5 | |
| 15/03/2019 | | 2.WT1s | | | | 3 | | Paris - Nice, Stage 6 : Peynier - Brignoles | | 18 | |
| 13/03/2019 | | 2.WT1s | | | | 8 | | Paris - Nice, Stage 4 : Vichy - Pélussin | | 1 | |
| 11/03/2019 | | 2.WT1s | | | | 4 | | Paris - Nice, Stage 2 : Les Bréviaires - Bellegarde | | 10 | |
| 10/03/2019 | | 2.WT1s | | | | 6 | | Paris - Nice, Stage 1 : Saint-Germain-en-Laye - Saint-Germain-en-Laye | | 3 | |
| 2/03/2019 | | 1.WT3 | | | | 9 | | Omloop Het Nieuwsblad | | 40 | |
| 24/02/2019 | | 2.HCs | | | | 1 | | Vuelta a Andalucia / Ruta Del Sol, Stage 5 : Otura - Alhaurin de la Torre | | 25 | |
| 21/02/2019 | | 2.HCs | | | | 1 | | Vuelta a Andalucia / Ruta Del Sol, Stage 2 : Sevilla - Toredonjimeno | | 25 | |
| 17/02/2019 | | 1.HC | | | | 13 | | Clasica de Almeria | | 15 | |
| 16/02/2019 | | 2.1 | | | | 7 | | Vuelta a Murcia | | 40 | |
| 16/02/2019 | | 2.1s | | | | 3 | | Vuelta a Murcia, Stage 2 : Beniel - Murcia | | 5 | |
| 10/02/2019 | | 2.1s | | | | 3 | | Volta a la Comunitat Valenciana, Stage 5 : Paterna - Valencia | | 5 | |
| 8/02/2019 | | 2.1s | | | | 2 | | Volta a la Comunitat Valenciana, Stage 3 : Quart de Poblet - Chera | | 10 | |
| 7/02/2019 | | 2.1s | | | | 1 | | Volta a la Comunitat Valenciana, Stage 2 : Alicante - Alicante | | 20 | |