1 | 2024-10-10 | Gran Piemonte | | | 88 | | | DNF |
2 | 2023-06-04 | Critérium du Dauphiné | Stage 1 | | | DNF | | | 8 |
3 | 2022-09-25 | World Championships ME - Road Race | | | 9 | | | 53 |
4 | 2022-08-28 | La Vuelta ciclista a España | Stage 9 | | | 72 | | | 83 |
5 | 2022-08-27 | La Vuelta ciclista a España | Stage 8 | | | 70 | | | 152 |
6 | 2022-08-26 | La Vuelta ciclista a España | Stage 7 | | | 12 | | | 3 |
7 | 2022-08-25 | La Vuelta ciclista a España | Stage 6 | | | 176 | | | 122 |
8 | 2022-08-24 | La Vuelta ciclista a España | Stage 5 | | | 90 | | | 3 |
9 | 2022-08-23 | La Vuelta ciclista a España | Stage 4 | | | 7 | | | 26 |
10 | 2022-08-21 | La Vuelta ciclista a España | Stage 3 | | | 13 | | | 132 |
11 | 2022-08-20 | La Vuelta ciclista a España | Stage 2 | | | 42 | | | 86 |
12 | 2022-03-13 | Paris - Nice | General classification | | | 45 | | | 30 |
13 | 2022-03-13 | Paris - Nice | Stage 8 | | | 50 | | | 28 |
14 | 2022-03-12 | Paris - Nice | Stage 7 | | | 53 | | | 52 |
15 | 2022-03-11 | Paris - Nice | Stage 6 | | | 53 | | | 16 |
16 | 2022-03-10 | Paris - Nice | Stage 5 | | | 40 | | | 41 |
17 | 2022-03-09 | Paris - Nice | Stage 4 (ITT) | | | 6 | | | 13 |
18 | 2022-03-08 | Paris - Nice | Stage 3 | | | 9 | | | 7 |
19 | 2022-03-07 | Paris - Nice | Stage 2 | | | 129 | | | 71 |
20 | 2022-03-06 | Paris - Nice | Stage 1 | | | 140 | | | 8 |
21 | 2022-02-27 | Kuurne-Brussel-Kuurne | | | 42 | | | 69 |
22 | 2022-02-26 | Omloop Het Nieuwsblad ME | | | 21 | | | 20 |
23 | 2021-10-17 | National Championships Great Britain ME - Road Race | | | 3 | | | 2 |
24 | 2021-10-14 | National Championships Great Britain ME - ITT | | | 1 | | | 4 |
25 | 2021-09-26 | World Championships ME - Road Race | | | 35 | | | DNF |
26 | 2021-04-04 | Ronde van Vlaanderen - Tour des Flandres ME | | | 53 | | | 111 |
27 | 2021-03-31 | Dwars door Vlaanderen - A travers la Flandre ME | | | 11 | | | 113 |
28 | 2020-10-11 | Gent-Wevelgem in Flanders Fields ME | | | DNF | | | 39 |
29 | 2020-09-04 | Settimana Internazionale Coppi e Bartali | General classification | | | 33 | | | 107 |
30 | 2020-09-04 | Settimana Internazionale Coppi e Bartali | Stage 4 | | | 71 | | | 109 |
31 | 2020-09-03 | Settimana Internazionale Coppi e Bartali | Stage 3 | | | 5 | | | 109 |
32 | 2020-09-02 | Settimana Internazionale Coppi e Bartali | Stage 2 | | | 42 | | | 142 |
33 | 2020-09-01 | Settimana Internazionale Coppi e Bartali | Stage 1a | | | 2 | | | 130 |
34 | 2020-08-26 | European Continental Championships ME - Road Race | | | 98 | | | 37 |
35 | 2019-08-18 | Tour de l'Avenir | Stage 4 | | | DNF | | | 1 |
36 | 2019-08-17 | Tour de l'Avenir | Stage 3 | | | 1 | | | 100 |
37 | 2019-08-15 | Tour de l'Avenir | Stage 1 | | | 2 | | | 124 |
38 | 2019-06-30 | National Championships Great Britain ME - Road Race | | | 5 | | | 78 |
39 | 2019-06-27 | National Championships Great Britain U23 - ITT | | | 2 | | | 5 |
40 | 2019-06-23 | Giro Ciclistico d'Italia | General classification | | | 15 | | | 74 |
41 | 2019-06-23 | Giro Ciclistico d'Italia | Stage 9 | | | 27 | | | 59 |
42 | 2019-06-22 | Giro Ciclistico d'Italia | Stage 8 | | | 26 | | | 69 |
43 | 2019-06-21 | Giro Ciclistico d'Italia | Stage 7 | | | 5 | | | 1 |
44 | 2019-06-20 | Giro Ciclistico d'Italia | Stage 6 | | | 18 | | | 45 |
45 | 2019-06-19 | Giro Ciclistico d'Italia | Stage 5 | | | 6 | | | 132 |
46 | 2019-06-17 | Giro Ciclistico d'Italia | Stage 4 | | | 8 | | | 84 |
47 | 2019-06-16 | Giro Ciclistico d'Italia | Stage 3 | | | 30 | | | 4 |
48 | 2019-06-15 | Giro Ciclistico d'Italia | Stage 2 | | | 6 | | | 122 |
49 | 2019-06-14 | Giro Ciclistico d'Italia | Stage 1 | | | 1 | | | 126 |
50 | 2019-06-13 | Giro Ciclistico d'Italia | Prologue | | | 1 | | | 13 |
51 | 2019-05-26 | A Travers les Hauts de France | General classification | | | 1 | | | 3 |
52 | 2019-05-26 | A Travers les Hauts de France | Stage 3 | | | 7 | | | 36 |
53 | 2019-05-25 | A Travers les Hauts de France | Stage 2 | | | 1 | | | 10 |
54 | 2019-05-24 | A Travers les Hauts de France | Stage 1 | | | 21 | | | 118 |
55 | 2019-04-20 | Arno Wallaard Memorial | | | 12 | | | 69 |
56 | 2018-09-09 | Ovo Energy Tour of Britain | General classification | | | 16 | | | 62 |
57 | 2018-09-09 | Ovo Energy Tour of Britain | Stage 8 | | | 5 | | | 61 |
58 | 2018-09-08 | Ovo Energy Tour of Britain | Stage 7 | | | 7 | | | 35 |
59 | 2018-09-07 | Ovo Energy Tour of Britain | Stage 6 | | | 11 | | | 88 |
60 | 2018-09-05 | Ovo Energy Tour of Britain | Stage 4 | | | 111 | | | 70 |
61 | 2018-09-04 | Ovo Energy Tour of Britain | Stage 3 | | | 4 | | | 97 |
62 | 2018-09-03 | Ovo Energy Tour of Britain | Stage 2 | | | 16 | | | 54 |
63 | 2018-09-02 | Ovo Energy Tour of Britain | Stage 1 | | | 7 | | | 44 |
64 | 2018-07-01 | National Championships Great Britain ME - Road Race | | | DNF | | | 5 |
65 | 2018-06-28 | National Championships Great Britain U23 - ITT | | | 4 | | | 12 |
66 | 2018-06-10 | Ronde de l'Oise | General classification | | | 5 | | | 2 |
67 | 2018-06-10 | Ronde de l'Oise | Stage 4 | | | 2 | | | 23 |
68 | 2018-06-09 | Ronde de l'Oise | Stage 3 | | | 7 | | | 1 |
69 | 2018-06-08 | Ronde de l'Oise | Stage 2 | | | 6 | | | 36 |
70 | 2018-06-07 | Ronde de l'Oise | Stage 1 | | | 3 | | | 67 |
71 | 2018-06-03 | Grand Prix Priessnitz spa | General classification | | | 11 | | | 51 |
72 | 2018-06-03 | Grand Prix Priessnitz spa | Stage 3 | | | 5 | | | 44 |
73 | 2018-06-02 | Grand Prix Priessnitz spa | Stage 2 | | | 13 | | | 65 |
74 | 2018-06-01 | Grand Prix Priessnitz spa | Stage 1 | | | 57 | | | 112 |
75 | 2018-05-31 | Grand Prix Priessnitz spa | Prologue | | | 4 | | | 10 |
76 | 2018-05-20 | A Travers Les Hauts De France - Trophee Paris-Arras Tour | General classification | | | 16 | | | 7 |
77 | 2018-05-20 | A Travers Les Hauts De France - Trophee Paris-Arras Tour | Stage 3 | | | 19 | | | 64 |
78 | 2018-05-19 | A Travers Les Hauts De France - Trophee Paris-Arras Tour | Stage 2 | | | 14 | | | 7 |
79 | 2018-05-18 | A Travers Les Hauts De France - Trophee Paris-Arras Tour | Stage 1 | | | 14 | | | 92 |
80 | 2016-09-16 | UEC Road European Championships MJ - Road Race | | | 15 | | | 53 |
81 | 2016-09-14 | UEC Road European Championships MJ - ITT | | | 11 | | | 35 |
82 | 2016-09-04 | Grand Prix Rüebliland | General classification | | | 8 | | | 68 |
83 | 2016-09-04 | Grand Prix Rüebliland | Stage 4 | | | 15 | | | 65 |
84 | 2016-09-03 | Grand Prix Rüebliland | Stage 3 (ITT) | | | 5 | | | 11 |
85 | 2016-09-03 | Grand Prix Rüebliland | Stage 2 | | | 4 | | | 38 |
86 | 2016-09-02 | Grand Prix Rüebliland | Stage 1 | | | 5 | | | 81 |
87 | 2016-06-19 | Trofeo Karlsberg | General classification | | | 2 | | | 5 |
88 | 2016-06-19 | Trofeo Karlsberg | Stage 3 | | | 5 | | | 46 |
89 | 2016-06-18 | Trofeo Karlsberg | Stage 2b (ITT) | | | 2 | | | 5 |
90 | 2016-06-18 | Trofeo Karlsberg | Stage 2a | | | 3 | | | 2 |
91 | 2016-06-17 | Trofeo Karlsberg | Stage 1 | | | 5 | | | 40 |
92 | 2016-03-27 | Gent-Wevelgem/Grote Prijs A. Noyelle-Ieper | | | 2 | | | 18 |
93 | 2016-03-20 | Guido Reybrouck Classic | | | 2 | | | 33 |
94 | 2016-02-28 | Kuurne-Brussel-Kuurne Juniors | | | 1 | | | 64 |
| | | | 69 | | | 25 | |