| | | Ovo Energy Tour of Britain (2.HC) |
| 72 | | Klassement |
| 41 | | Berg |
| 09-09 | 54 | 72 | Stage 8London - London (77.0km) | 77.0km |
| 08-09 | 97 | | Stage 7West Bridgford - Mansfield (215.0km) | 215.0km |
| 07-09 | 69 | 70 | Stage 6Barrow-in-Furness - Whinlatter Pass (168.0km) | 168.0km |
| 06-09 | 13 | 71 | Stage 5Cockermouth - Whinlatter (14.0km) | 14.0km |
| 05-09 | 17 | 74 | Stage 4Nuneaton - Royal Leamington Spa (183.0km) | 183.0km |
| 04-09 | 33 | 74 | Stage 3Bristol - Bristol (128.0km) | 128.0km |
| 03-09 | 79 | 82 | Stage 2Cranbrook - Barnstaple (174.0km) | 174.0km |
| 02-09 | 116 | 113 | Stage 1Pembrey Country Park - The City of Newport (174.0km) | 174.0km |
| | | Tour de l'Avenir (2.NCUP) |
| 89 | | Klassement |
| 5 | | Punten |
| 26-08 | 94 | 89 | Stage 10Val-d'Isère - Saint-Colomban-des-Villards (149.0km) | 149.0km |
| 25-08 | 79 | 85 | Stage 9Séez - Val-d'Isère (83.0km) | 83.0km |
| 24-08 | 94 | 85 | Stage 8La Bâthie - Crest-Voland Cohennoz (81.0km) | 81.0km |
| 23-08 | 94 | 75 | Stage 7Moûtiers - Méribel (34.0km) | 34.0km |
| 22-08 | 2 | 20 | Stage 6Le Blanc - Cérilly (181.0km) | 181.0km |
| 21-08 | 12 | 28 | Stage 5Beaugency - Levroux (135.0km) | 135.0km |
| 20-08 | | 39 | Stage 4Orléans - Orléans (20.0km) | 20.0km |
| 19-08 | 11 | 13 | Stage 3Le Lude - Châteaudun (170.0km) | 170.0km |
| 18-08 | 30 | 16 | Stage 2Dréfféac - Chateaubriant (144.0km) | 144.0km |
| 17-08 | 9 | 9 | Stage 1Grand Champ - Elven (138.0km) | 138.0km |
| 15-07 | DNF | | UEC Road European Championships U23 (CC) | 140.0km |
| 01-07 | 3 | | National Road Championships - Ireland (CN) | |
| | | Baby Giro (2.2U) |
| 63 | | Klassement |
| 14 | | Punten |
| 35 | | Berg |
| 16-06 | 64 | 63 | Stage 9bSan Pietro di Feletto - San Pietro di Feletto (22.0km) | 22.0km |
| 16-06 | 4 | 65 | Stage 9aConegliano - Valdobbiadene (72.0km) | 72.0km |
| 15-06 | 97 | 72 | Stage 8Levico Terme - Asiago (157.0km) | 157.0km |
| 14-06 | 94 | 73 | Stage 7Schio - Pian Delle Fugazze (136.0km) | 136.0km |
| 13-06 | 9 | 71 | Stage 6Dimaro - Pergine Valsugana (120.0km) | 120.0km |
| 12-06 | 86 | 95 | Stage 5Darfo Boario Terme - Malga Folgarida di Dimaro (127.0km) | 127.0km |
| 11-06 | 89 | 100 | Stage 4Mornico Al Serio - Passo Manivia (127.0km) | 127.0km |
| 10-06 | 41 | 106 | Stage 3Rio Saliceto - Mornico Al Serio (164.0km) | 164.0km |
| 09-06 | 121 | 108 | Stage 2Nonantola - Sestola (138.0km) | 138.0km |
| 08-06 | 11 | 11 | Stage 1Riccione - Forlì (137.0km) | 137.0km |
| 07-06 | 67 | 67 | PrologueForlì - Forlì (4.0km) | 4.0km |
| 27-05 | 46 | | Paris-Roubaix Espoirs (1.2U) | |
| | | A Travers Les Hauts De France (2.2) |
| 26 | | Klassement |
| 26 | | Punten |
| 20-05 | 21 | 26 | Stage 3Hermies - Arras (192.0km) | 192.0km |
| 19-05 | 38 | 40 | Stage 2Lens - Liévin (189.0km) | 189.0km |
| 18-05 | 106 | 106 | Stage 1Le Cateau-Cambrésis - Villers les Cagnicourt (121.0km) | 121.0km |
| 14-04 | 4 | | Commonwealth Games (JR) | |
| | | Volta ao Alentejo (2.2) |
| 3 | | Klassement |
| 2 | | Punten |
| 18-03 | 4 | 3 | Stage 5Castelo de Vide - Évora (151.0km) | 151.0km |
| 17-03 | 3 | 1 | Stage 4aMonforte - Portalegre (64.0km) | 64.0km |
| 17-03 | 14 | 3 | Stage 4bCastelo de Vide - Castelo de Vide (8.0km) | 8.0km |
| 16-03 | 5 | 1 | Stage 3Grandola - Arraiolos (149.0km) | 149.0km |
| 15-03 | 2 | 1 | Stage 2Beja - Sines (205.0km) | 205.0km |
| 14-03 | 3 | 3 | Stage 1Vendas Novas - Serpa (173.0km) | 173.0km |
| 11-03 | 4 | | Classica da Arrabida - Cyclin'Portugal (1.2) | |
| 28-02 | 11 | | UCI Cycling World Championships - Track (Points Race) (CM) | |
| 28-02 | 9 | | UCI Cycling World Championships - Track (Madison) (CM) | |