VeloStatistics

Geraint Thomas
GBR | Born on 1986-05-25 | Length: 183 cm | Weigth: 71 kg
Total Grand Tours Monuments One Day races Stage races Big races
Jaar Team Z P T D Z R P T S F Z P T S F Z P T S F Z R P T S F Z R P T S F Points
2025 INEOS Grenadiers 0 0 0 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 2 1 .0
2024 INEOS Grenadiers 0 2 10 69 0 0 1 1 2 2 0 0 0 0 0 0 0 0 1 1 0 0 0 0 2 1 0 0 1 1 5 4 58.6
2023 GREAT BRITAIN 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10.0
INEOS Grenadiers 0 5 11 71 0 0 1 1 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 3 0 0 1 1 5 5 112.6
Jaartotaal 0 5 12 72 0 0 1 1 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 3 0 0 1 1 5 5 122.6
2022 GREAT BRITAIN 0 1 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10.4
INEOS Grenadiers 1 5 18 55 0 0 1 1 1 1 0 0 0 1 1 0 0 0 4 3 1 0 1 1 3 3 1 0 2 2 8 7 121.4
Jaartotaal 1 6 20 57 0 0 1 1 1 1 0 0 0 1 1 0 0 0 4 3 1 0 1 1 3 3 1 0 2 2 8 7 131.8
2021 GREAT BRITAIN 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.8
INEOS Grenadiers 2 8 14 51 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 3 3 4 4 1 1 3 3 5 5 146.4
Jaartotaal 2 8 14 53 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 3 3 4 4 1 1 3 3 5 5 148.2
2020 GREAT BRITAIN 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50.2
Team Ineos / INEOS Grenadiers 0 2 7 22 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 2 2 0 0 1 1 3 2 30.8
Jaartotaal 0 2 8 23 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 2 2 0 0 1 1 3 2 81.0
2019 GREAT BRITAIN 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .0
Team Sky / INEOS 0 4 13 38 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1 3 2 0 0 2 2 5 4 162.3
Jaartotaal 0 4 13 39 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1 3 2 0 0 2 2 5 4 162.3
2018 Team Sky 6 16 16 46 1 2 1 1 1 1 0 0 0 2 1 0 0 0 2 1 1 0 2 2 2 2 2 2 3 3 5 4 775.4
2017 Sky 4 9 12 59 0 1 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 2 0 1 3 1 106.1
2016 GREAT BRITAIN 0 0 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7.2
Sky 2 5 5 38 0 0 0 0 1 1 0 0 0 2 2 0 0 0 2 2 1 0 1 1 1 1 1 0 1 1 4 4 115.2
Jaartotaal 2 5 6 40 0 0 0 0 1 1 0 0 0 2 2 0 0 0 2 2 1 0 1 1 1 1 1 0 1 1 4 4 122.4
2015 Team Sky 3 7 8 74 0 0 0 0 2 2 0 0 0 3 2 1 2 2 5 4 0 0 1 2 3 2 1 0 3 4 10 8 152.4
2014 GREAT BRITAIN 1 2 2 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 81.6
Team Sky 2 6 8 41 0 0 0 0 1 1 0 0 2 3 2 0 1 3 4 3 0 0 0 0 2 0 0 0 1 3 7 4 123.9
Jaartotaal 3 8 10 44 0 0 0 0 1 1 0 0 2 3 2 0 1 3 4 3 0 0 0 0 2 0 0 0 1 3 7 4 205.5
2013 GREAT BRITAIN 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .0
Team Sky 1 3 5 40 0 0 0 0 1 1 0 0 0 3 2 0 0 1 4 3 0 1 1 1 1 1 0 1 1 2 6 5 41.7
Jaartotaal 1 3 5 41 0 0 0 0 1 1 0 0 0 3 2 0 0 1 4 3 0 1 1 1 1 1 0 1 1 2 6 5 41.7
2012 Team Sky 3 7 7 28 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 2 1 39.5
2011 GREAT BRITAIN 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .0
Team Sky 2 6 7 41 0 0 0 0 1 1 0 0 1 3 2 0 0 1 3 2 0 0 0 0 0 0 0 0 0 1 4 3 65.5
Jaartotaal 2 6 7 42 0 0 0 0 1 1 0 0 1 3 2 0 0 1 3 2 0 0 0 0 0 0 0 0 0 1 4 3 65.5
2010 Team Sky 1 4 4 10 0 0 0 0 1 0 0 0 0 2 2 0 0 0 2 2 0 0 0 0 1 0 0 0 0 0 4 2 87.4
2008 2 3 3 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 22.5
2007 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 15.0
2006 3 6 6 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 41.3
2004 1 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9.8
Totaal 35 104 164 710 1 3 5 5 19 15 0 0 3 19 14 1 3 7 29 22 4 4 11 13 30 23 6 7 19 25 78 60 2354.8
Results
Year Date Race Pos Team UCI Km RaceType
2024 2024-05-26 Giro d'Italia 3 INEOS Grenadiers GT GC
2024 2024-05-25 Giro d'Italia | Rit 20 7 INEOS Grenadiers GT 175 Mountain
2024 2024-05-22 Giro d'Italia | Rit 17 4 INEOS Grenadiers GT 159 Mountain finish
2024 2024-05-19 Giro d'Italia | Rit 15 6 INEOS Grenadiers GT 220 Mountain finish
2024 2024-05-18 Giro d'Italia | Rit 14 4 INEOS Grenadiers GT 31 ITT
2024 2024-05-11 Giro d'Italia | Rit 8 5 INEOS Grenadiers GT 153 Mountain finish
2024 2024-05-10 Giro d'Italia | Rit 7 10 INEOS Grenadiers GT 40,6 ITT
2024 2024-05-05 Giro d'Italia | Rit 2 3 INEOS Grenadiers GT 154 Mountain finish
2024 2024-05-04 Giro d'Italia | Rit 1 10 INEOS Grenadiers GT 136 Hill
2024 2024-04-15 Tour of the Alps | Rit 1 6 INEOS Grenadiers 2.PS 133,3 Hill
2023 2023-09-06 Vuelta a Espana | Rit 11 5 INEOS Grenadiers GT 163,2 Mountain finish
2023 2023-08-11 Wereldkampioenschap I.T.T. 10 GREAT BRITAIN WCT 47,8 ITT
2023 2023-08-03 Tour of Poland | Rit 6 3 INEOS Grenadiers 2.WT 16,6 ITT
2023 2023-05-28 Giro d'Italia 2 INEOS Grenadiers GT 3448 GC
2023 2023-05-27 Giro d'Italia | Rit 20 2 INEOS Grenadiers GT 18,6 ITT - Mountain
2023 2023-05-26 Giro d'Italia | Rit 19 5 INEOS Grenadiers GT 183 Mountain finish
2023 2023-05-25 Giro d'Italia | Rit 18 8 INEOS Grenadiers GT 161 Mountain finish
2023 2023-05-23 Giro d'Italia | Rit 16 2 INEOS Grenadiers GT 203 Mountain finish
2023 2023-05-19 Giro d'Italia | Rit 13 9 INEOS Grenadiers GT 74,6 Mountain finish
2023 2023-05-14 Giro d'Italia | Rit 9 2 INEOS Grenadiers GT 35 ITT
2023 2023-05-12 Giro d'Italia | Rit 7 7 INEOS Grenadiers GT 218 Mountain finish
2023 2023-05-06 Giro d'Italia | Rit 1 9 INEOS Grenadiers GT 19,6 ITT
2022 2022-11-06 Le Tour De France Saitama Criterium 3 INEOS Grenadiers Nat 59,5
2022 2022-08-17 Danmark Rundt | Rit 2 4 INEOS Grenadiers 2.PS 12,7 ITT
2022 2022-08-07 Commonwealth Games 8 GREAT BRITAIN CC 160 Hill
2022 2022-08-04 Commonwealth Games I.T.T. 3 GREAT BRITAIN CCT 37,4 ITT
2022 2022-07-25 Aalst 3 INEOS Grenadiers Nat 92
2022 2022-07-24 Tour de France 3 INEOS Grenadiers GT GC
2022 2022-07-23 Tour de France | Rit 20 4 INEOS Grenadiers GT 40 ITT
2022 2022-07-21 Tour de France | Rit 18 4 INEOS Grenadiers GT 143 Mountain
2022 2022-07-20 Tour de France | Rit 17 4 INEOS Grenadiers GT 130 Mountain
2022 2022-07-14 Tour de France | Rit 12 7 INEOS Grenadiers GT 166 Mountain
2022 2022-07-13 Tour de France | Rit 11 4 INEOS Grenadiers GT 149 Mountain
2022 2022-07-10 Tour de France | Rit 9 7 INEOS Grenadiers GT 183 Mountain
2022 2022-07-08 Tour de France | Rit 7 5 INEOS Grenadiers GT 176 Mountain
2022 2022-06-19 Tour de Suisse 1 INEOS Grenadiers 2.WT GC
2022 2022-06-19 Tour de Suisse | Rit 8 2 INEOS Grenadiers 2.WT 25,6 ITT
2022 2022-06-18 Tour de Suisse | Rit 7 5 INEOS Grenadiers 2.WT 196,4 Mountain
2022 2022-06-17 Tour de Suisse | Rit 6 8 INEOS Grenadiers 2.WT 179,3 Mountain
2022 2022-06-16 Tour de Suisse | Rit 5 4 INEOS Grenadiers 2.WT 193,3 Hill
2022 2022-04-26 Tour de Romandie | Proloog 4 INEOS Grenadiers 2.WT 5,1 ITT
2022 2022-04-04 Vuelta al Pais Vasco | Proloog 4 INEOS Grenadiers 2.WT 7,5 ITT
2021 2021-06-26 Tour de France | Rit 1 10 INEOS Grenadiers GT 197,8 Flat
2021 2021-06-06 Criterium du Dauphiné 3 INEOS Grenadiers 2.WT 1201,72 GC
2021 2021-06-06 Criterium du Dauphiné | Rit 8 6 INEOS Grenadiers 2.WT 147 Mountain
2021 2021-06-05 Criterium du Dauphiné | Rit 7 9 INEOS Grenadiers 2.WT 171 Mountain
2021 2021-06-03 Criterium du Dauphiné | Rit 5 1 INEOS Grenadiers 2.WT 175,5 Hill
2021 2021-06-02 Criterium du Dauphiné | Rit 4 10 INEOS Grenadiers 2.WT 16,4 ITT
2021 2021-05-02 Tour de Romandie 1 INEOS Grenadiers 2.WT 684,74 GC
2021 2021-05-02 Tour de Romandie | Rit 5 3 INEOS Grenadiers 2.WT 16,25 ITT
2021 2021-05-01 Tour de Romandie | Rit 4 3 INEOS Grenadiers 2.WT 161,39 Mountain
2021 2021-04-27 Tour de Romandie | Proloog 2 INEOS Grenadiers 2.WT 4,1 ITT
2021 2021-03-28 Vuelta a Catalunya 3 INEOS Grenadiers 2.WT 1099,3 GC
2021 2021-03-25 Vuelta a Catalunya | Rit 4 3 INEOS Grenadiers 2.WT 168,9 Mountain
2021 2021-03-24 Vuelta a Catalunya | Rit 3 4 INEOS Grenadiers 2.WT 204,2 Mountain
2021 2021-03-23 Vuelta a Catalunya | Rit 2 10 INEOS Grenadiers 2.WT 18,6 ITT
2020 2020-10-03 Giro d'Italia | Rit 1 4 Team Ineos / INEOS Grenadiers GT 15,1 ITT
2020 2020-09-25 Wereldkampioenschap I.T.T. 4 GREAT BRITAIN WCT 31,7 ITT
2020 2020-09-14 Tirreno - Adriatico | Rit 8 4 Team Ineos / INEOS Grenadiers 2.WT 10 ITT
2020 2020-09-14 Tirreno - Adriatico 2 Team Ineos / INEOS Grenadiers 2.WT
2020 2020-09-13 Tirreno - Adriatico | Rit 7 8 Team Ineos / INEOS Grenadiers 2.WT 181
2020 2020-09-11 Tirreno - Adriatico | Rit 5 2 Team Ineos / INEOS Grenadiers 2.WT 202
2020 2020-09-10 Tirreno - Adriatico | Rit 4 5 Team Ineos / INEOS Grenadiers 2.WT 194
2020 2020-09-09 Tirreno - Adriatico | Rit 3 10 Team Ineos / INEOS Grenadiers 2.WT 217
2019 2019-07-28 Tour de France 2 Team Sky / INEOS GT
2019 2019-07-27 Tour de France | Rit 20 5 Team Sky / INEOS GT 59
2019 2019-07-26 Tour de France | Rit 19 6 Team Sky / INEOS GT 88,5
2019 2019-07-21 Tour de France | Rit 15 7 Team Sky / INEOS GT 185
2019 2019-07-20 Tour de France | Rit 14 8 Team Sky / INEOS GT 117,5
2019 2019-07-19 Tour de France | Rit 13 2 Team Sky / INEOS GT 27,2 ITT
2019 2019-07-13 Tour de France | Rit 8 10 Team Sky / INEOS GT 200
2019 2019-07-11 Tour de France | Rit 6 4 Team Sky / INEOS GT 160,5
2019 2019-05-05 Tour de Romandie | Rit 5 10 Team Sky / INEOS 2.WT 16,9 ITT
2019 2019-05-05 Tour de Romandie 3 Team Sky / INEOS 2.WT
2019 2019-05-04 Tour de Romandie | Rit 4 3 Team Sky / INEOS 2.WT 107,6
2019 2019-04-30 Tour de Romandie | Proloog 5 Team Sky / INEOS 2.WT 3,9 ITT
2019 2019-04-08 Vuelta al Pais Vasco | Rit 1 9 Team Sky / INEOS 2.WT 11,3 ITT
2018 2018-07-29 Tour de France 1 Team Sky GT
2018 2018-07-28 Tour de France | Rit 20 3 Team Sky GT 31 ITT
2018 2018-07-27 Tour de France | Rit 19 2 Team Sky GT 200,5
2018 2018-07-25 Tour de France | Rit 17 3 Team Sky GT 65
2018 2018-07-19 Tour de France | Rit 12 1 Team Sky GT 175,5
2018 2018-07-18 Tour de France | Rit 11 1 Team Sky GT 108,5
2018 2018-06-28 N.K. Groot-Brittannië I.T.T. 1 Team Sky NCT 44 ITT
2018 2018-06-10 Criterium du Dauphiné 1 Team Sky 2.WT
2018 2018-06-09 Criterium du Dauphiné | Rit 6 2 Team Sky 2.WT 110
2018 2018-06-08 Criterium du Dauphiné | Rit 5 2 Team Sky 2.WT 131,5
2018 2018-06-07 Criterium du Dauphiné | Rit 4 3 Team Sky 2.WT 181
2018 2018-03-13 Tirreno - Adriatico 3 Team Sky 2.WT
2018 2018-02-18 Volta ao Algarve 2 Team Sky 2.HC
2018 2018-02-16 Volta ao Algarve | Rit 3 1 Team Sky 2.HC 20,3 ITT
2018 2018-02-15 Volta ao Algarve | Rit 2 3 Team Sky 2.HC 187,9
2018 Le Tour De France Saitama Criterium 2 Team Sky
2017 2017-07-01 Tour de France | Rit 1 1 Sky GT 14 ITT
2017 2017-05-16 Giro d'Italia | Rit 10 2 Sky GT 39,8 ITT
2017 2017-05-11 Giro d'Italia | Rit 6 10 Sky GT 217
2017 2017-05-09 Giro d'Italia | Rit 4 3 Sky GT 181
2017 2017-05-06 Giro d'Italia | Rit 2 8 Sky GT 221
2017 2017-04-21 Tour of the Alps | Rit 5 3 Sky 2.HC 199,6
2017 2017-04-21 Tour of the Alps 1 Sky 2.HC
2017 2017-04-19 Tour of the Alps | Rit 3 1 Sky 2.HC 167,5
2017 2017-04-17 Tour of the Alps | Rit 1 2 Sky 2.HC 142,3
2017 2017-03-14 Tirreno - Adriatico 5 Sky 2.WT
2017 2017-03-11 Tirreno - Adriatico | Rit 4 2 Sky 2.WT 187
2017 2017-03-09 Tirreno - Adriatico | Rit 2 1 Sky 2.WT 229
2016 2016-08-10 Olympic Games I.T.T. 9 GREAT BRITAIN WCT 54,5 ITT
2016 2016-03-13 Paris - Nice 1 Sky 2.WT
2016 2016-03-12 Paris - Nice | Rit 6 2 Sky 2.WT 177
2016 2016-02-21 Volta ao Algarve 1 Sky 2.1
2016 2016-02-19 Volta ao Algarve | Rit 3 3 Sky 2.1 18 ITT
2016 2016-02-18 Volta ao Algarve | Rit 2 2 Sky 2.1 198,6
2015 2015-06-21 Tour de Suisse 2 Team Sky 2.WT
2015 2015-03-29 Gent - Wevelgem 3 Team Sky 1.WT 240
2015 2015-03-27 G.P. E3 Harelbeke 1 Team Sky 1.WT 215,3
2015 2015-03-15 Paris - Nice 5 Team Sky 2.WT
2015 2015-03-12 Paris - Nice | Rit 4 2 Team Sky 2.WT 204
2015 2015-02-22 Volta ao Algarve 1 Team Sky 2.1
2015 2015-02-20 Volta ao Algarve | Rit 3 3 Team Sky 2.1 18,2 ITT
2015 2015-02-19 Volta ao Algarve | Rit 2 1 Team Sky 2.1 196,7
2014 2014-08-13 Eneco Tour | Rit 3 3 Team Sky 2.WT 9,6 ITT
2014 2014-08-03 Commonwealth Games 1 GREAT BRITAIN CC 168,2
2014 2014-08-02 Commonwealth Games I.T.T. 3 GREAT BRITAIN CCT 38,4 ITT
2014 2014-06-26 N.K. Groot-Brittannië I.T.T. 2 Team Sky NCT 41,8 ITT
2014 2014-06-01 Bayern Rundfahrt 1 Team Sky 2.HC
2014 2014-05-31 Bayern Rundfahrt | Rit 4 1 Team Sky 2.HC 25,5 ITT
2014 2014-04-13 Paris - Roubaix 7 Team Sky 1.WT 257
2014 2014-04-06 Ronde van Vlaanderen 8 Team Sky 1.WT 259,1
2014 2014-03-28 G.P. E3 Harelbeke 3 Team Sky 1.WT 212
2014 2014-03-12 Paris - Nice | Rit 4 2 Team Sky 2.WT 201,5
2013 2013-05-26 Bayern Rundfahrt 2 Team Sky 2.HC
2013 2013-03-22 G.P. E3 Harelbeke 4 Team Sky 1.WT 212
2013 2013-02-23 Omloop Het Nieuwsblad 4 Team Sky 1.HC 198,9
2013 2013-01-27 Tour Down Under 3 Team Sky 2.WT
2013 2013-01-23 Tour Down Under | Rit 2 1 Team Sky 2.WT 116,5
2012 2012-08-25 Danmark Rundt | Rit 5 2 Team Sky 2.HC 14,5 ITT
2012 2012-05-27 Giro d'Italia | Rit 21 2 Team Sky GT 28,2 ITT
2012 2012-05-05 Giro d'Italia | Rit 1 2 Team Sky GT 8,7 ITT
2012 2012-04-24 Tour de Romandie | Proloog 1 Team Sky 2.WT 3,34 ITT
2012 Baan: Olympic Games | Team Pursuit 1 Team Sky Team Pursuit
2012 Baan: Wereldkampioenschap | Madison 2 Team Sky Madison
2012 Baan: Wereldkampioenschap | Team Pursuit 1 Team Sky Team Pursuit
2011 2011-09-13 Tour of Britain | Rit 3 3 Team Sky 2.1 140
2011 2011-06-26 N.K. Groot-Brittannië 2 Team Sky NC 197
2011 2011-05-29 Bayern Rundfahrt 1 Team Sky 2.HC
2011 2011-05-27 Bayern Rundfahrt | Rit 3 2 Team Sky 2.HC 180,8
2011 2011-04-03 Ronde van Vlaanderen 10 Team Sky 1.WT 256
2011 2011-03-23 Dwars door Vlaanderen 2 Team Sky 1.1 201
2011 Baan: European Championship | Team Pursuit 1 Team Sky Team Pursuit
2010 2010-09-05 N.K. Groot-Brittannië I.T.T. 3 Team Sky NCT 52 ITT
2010 2010-07-06 Tour de France | Rit 3 2 Team Sky GT 213
2010 2010-06-27 N.K. Groot-Brittannië 1 Team Sky NC
2010 2010-06-07 Criterium du Dauphiné | Rit 1 3 Team Sky 2.PT 191
2008 2008-06-17 Ster Elektrotoer | Rit 1 3 2.1 6 ITT
2008 Baan: Olympic Games | Team Pursuit 1 Team Pursuit
2008 Baan: Wereldkampioenschap | Team Pursuit 1 Team Pursuit
2007 Baan: Wereldkampioenschap | Team Pursuit 1 Team Pursuit
2006 2006-06-25 N.K. Groot-Brittannië 3 NC 187
2006 2006-05-28 Fleche du Sud 1 2.2
2006 2006-05-27 Fleche du Sud | Rit 4 2 2.2 79,1
2006 2006-05-26 Fleche du Sud | Rit 2 1 2.2 168,9
2006 Baan: European Championship U23 | Scratch 2 Scratch
2006 Baan: European Championship U23 | Team Pursuit 1 Team Pursuit
2004 Baan & Junioren: European Championship | Points Race 2 Points Race
2004 Baan & Junioren: Wereldkampioenschap | Scratch 1 Scratch

DNF means that the rider did not start or finish that day. DF means that the rider finished that day, but no result is known.
VeloStatistics makes every effort to update and/or supplement the content of the website as often as possible.
Despite this care and attention, it is possible that content is incomplete and/or incorrect.
Nothing from this website may be reproduced and/or made public without prior permission from VeloStatistics.
© 2024-2025 VeloStatistics