| 16-10 | DNF | | Japan Cup Cycle Road Race (1.Pro) | 144.0km |
| 15-10 | 25 | | Japan Cup Criterium (CRTP) | |
| 28-08 | 138 | | Bretagne Classic - Ouest-France (1.UWT) | 254.0km |
| 07-08 | DNF | | Commonwealth Games (JR) | |
| | | Tour de Pologne (2.UWT) |
| 47 | | Klassement |
| 34 | | Punten |
| 05-08 | 121 | 47 | Stage 7Valsir - Kraków (177.0km) | 177.0km |
| 04-08 | 58 | 29 | Stage 6Szaflary - Rusinski (15.0km) | 15.0km |
| 03-08 | 41 | 12 | Stage 5Lancut - Rzeszów (178.0km) | 178.0km |
| 02-08 | 33 | 11 | Stage 4Lesko - Sanok (179.0km) | 179.0km |
| 01-08 | 8 | 13 | Stage 3Krasnik - Przemysl (237.0km) | 237.0km |
| 31-07 | 53 | 112 | Stage 2Chelm - Zamosc (205.0km) | 205.0km |
| 30-07 | 158 | 152 | Stage 1Kielce - Lublin (217.0km) | 217.0km |
| 26-06 | DNF | | National Road Championships - Great Britain (CN) | |
| | | Tour de Suisse (2.UWT) |
| 17-06 | DNS | | Stage 6Locarno - Moosalp (179.0km) | 179.0km |
| 16-06 | 99 | 55 | Stage 5Ambri - Novazzano (193.0km) | 193.0km |
| 15-06 | 29 | 1 | Stage 4Grenchen - Brunnen (190.0km) | 190.0km |
| 14-06 | 34 | 1 | Stage 3Aesch - Grenchen (176.0km) | 176.0km |
| 13-06 | 19 | 1 | Stage 2Küsnacht - Aesch (199.0km) | 199.0km |
| 12-06 | 1 | 1 | Stage 1Küsnacht - Küsnacht (177.0km) | 177.0km |
| 10-06 | 15 | | Grosser Preis des Kantons Aargau (1.1) | 173.0km |
| | | Tour de Romandie (2.UWT) |
| 98 | | Klassement |
| 01-05 | 83 | 98 | Stage 5Aigle - Villars (15.0km) | 15.0km |
| 30-04 | 108 | 98 | Stage 4Aigle - Zinal (180.0km) | 180.0km |
| 29-04 | 81 | 93 | Stage 3Valbroye - Valbroye (165.0km) | 165.0km |
| 28-04 | 122 | 104 | Stage 2Echallens - Echallens (168.0km) | 168.0km |
| 27-04 | 77 | 77 | Stage 1La Grande Béroche - Romont (178.0km) | 178.0km |
| 26-04 | 104 | 104 | PrologueLausanne - Lausanne (5.0km) | 5.0km |
| 20-04 | 99 | | La Flèche Wallonne (1.UWT) | 202.0km |
| | | Volta a la Comunitat Valenciana (2.1) |
| 02-02 | 85 | 85 | Stage 1Les Alqueries - Torralba del Pinar (166.0km) | 166.0km |