|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 25/09/2019 | | WCTT | | | | 25 | | World Championships (Harrogate) I.T.T. | | 10 | |
| 21/09/2019 | | 1.1 | | | | 1 | | Memorial Marco Pantani | | 80 | |
| 19/09/2019 | | 1.1 | | | | 1 | | Coppa Sabatini - GP Citta di Peccioli | | 80 | |
| 14/09/2019 | | 1.1 | | | | 2 | | Coppa Agostoni - Giro delle Brianze | | 48 | |
| 1/09/2019 | | 2.HC | | | | 4 | | Deutschland Tour | | 84 | |
| 1/09/2019 | | 2.HCs | | | | 4 | | Deutschland Tour, Stage 4 : Eisenach - Erfurt | | 5 | |
| 18/08/2019 | | 2.HC | | | | 1 | | Arctic Race of Norway | | 160 | |
| 18/08/2019 | | 2.HCs | | | | 3 | | Arctic Race of Norway, Stage 4 : Lødingen - Narvik | | 10 | |
| 17/08/2019 | | 2.HCs | | | | 3 | | Arctic Race of Norway, Stage 3 : Sortland - Melbu/Storheia | | 10 | |
| 28/07/2019 | | GT1r | | | | 8 | | Tour de France, Mountains classification | | 3 | |
| 28/07/2019 | | GT1 | | | | 19 | | Tour de France | | 77 | |
| 25/07/2019 | | GT1s | | | | 3 | | Tour de France, Stage 18 : Embrun - Valloire | | 35 | |
| 30/06/2019 | | NC4 | | | | 1 | | National Championships Kazakhstan (Shchuchinsk) R.R. | | 30 | |
| 26/06/2019 | | NCT4 | | | | 1 | | National Championships Kazakhstan (Burabay) I.T.T. | | 15 | |
| 16/06/2019 | | 2.WT1r | | | | 4 | | Critérium du Dauphiné, Points classification | | 10 | |
| 16/06/2019 | | 2.WT1 | | | | 7 | | Critérium du Dauphiné | | 100 | |
| 16/06/2019 | | 2.WT1s | | | | 8 | | Critérium du Dauphiné, Stage 8 : Cluses - Champéry (SUI) | | 1 | |
| 10/06/2019 | | 2.WT1s | | | | 6 | | Critérium du Dauphiné, Stage 2 : Mauriac - Craponne-sur-Arzon | | 3 | |
| 9/06/2019 | | 2.WT1s | | | | 8 | | Critérium du Dauphiné, Stage 1 : Aurillac - Jussac | | 1 | |
| 24/04/2019 | | 1.WT2 | | | | 31 | | Flèche Wallonne | | 5 | |
| 21/04/2019 | | 1.WT2 | | | | 69 | | Amstel Gold Race | | 5 | |
| 19/03/2019 | | 2.WT1r | | | | 1 | | Tirreno - Adriatico, Mountains classification | | 45 | |
| 19/03/2019 | | 2.WT1r | | | | 8 | | Tirreno - Adriatico, Points classification | | 1 | |
| 19/03/2019 | | 2.WT1 | | | | 13 | | Tirreno - Adriatico | | 48 | |
| 16/03/2019 | | 2.WT1s | | | | 1 | | Tirreno - Adriatico, Stage 4 : Foligno - Fossombrone | | 45 | |
| 9/03/2019 | | 1.WT3 | | | | 7 | | Strade Bianche | | 54 | |
| 2/03/2019 | | 1.WT3 | | | | 4 | | Omloop Het Nieuwsblad | | 78 | |
| 21/02/2019 | | 2.HC | | | | 1 | | Tour of Oman | | 160 | |
| 20/02/2019 | | 2.HCs | | | | leader | | Tour of Oman, Stage 5 : Samail - Jabal Al Akhdhar (Green Mountain) | | 8 | |
| 20/02/2019 | | 2.HCs | | | | 1 | | Tour of Oman, Stage 5 : Samail - Jabal Al Akhdhar (Green Mountain) | | 25 | |
| 19/02/2019 | | 2.HCs | | | | leader | | Tour of Oman, Stage 4 : As Sifah - Muscat | | 8 | |
| 18/02/2019 | | 2.HCs | | | | leader | | Tour of Oman, Stage 3 : Shati al Qurum - Quriyat | | 8 | |
| 18/02/2019 | | 2.HCs | | | | 1 | | Tour of Oman, Stage 3 : Shati al Qurum - Quriyat | | 25 | |
| 17/02/2019 | | 2.HCs | | | | 1 | | Tour of Oman, Stage 2 : Al Seeb - Al Bustan | | 25 | |