| 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 | LUXEMBOURG | 0 | 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 | 1.6 |
| Lidl - Trek | 0 | 1 | 3 | 38 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 6 | 3 | 0 | 0 | 0 | 0 | 3 | 1 | 0 | 0 | 0 | 0 | 9 | 4 | .0 | |
| Jaartotaal | 0 | 3 | 5 | 41 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 6 | 3 | 0 | 0 | 0 | 0 | 3 | 1 | 0 | 0 | 0 | 0 | 9 | 4 | 1.6 | |
| 2024 | LUXEMBOURG | 0 | 0 | 1 | 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 | .0 |
| Lidl - Trek | 0 | 1 | 7 | 52 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 7 | 5 | 0 | 0 | 0 | 0 | 3 | 2 | 0 | 0 | 0 | 1 | 10 | 7 | .1 | |
| Jaartotaal | 0 | 1 | 8 | 55 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 7 | 5 | 0 | 0 | 0 | 0 | 3 | 2 | 0 | 0 | 0 | 1 | 10 | 7 | .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 | 0 | 0 | .0 | |||
| 2023 | LUXEMBOURG | 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 |
| Lidl - Trek | 0 | 0 | 4 | 38 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 2 | .0 | |
| Trek - Segafredo | 2 | 3 | 4 | 39 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 2 | 1 | 0 | 0 | 0 | 7 | 5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 8 | 6 | .7 | |
| Jaartotaal | 2 | 3 | 8 | 78 | 0 | 0 | 0 | 0 | 2 | 2 | 0 | 0 | 0 | 2 | 1 | 0 | 0 | 0 | 9 | 6 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 12 | 8 | .7 | |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | .0 | |||
| 2022 | Trek - Segafredo | 0 | 0 | 3 | 54 | 0 | 0 | 0 | 0 | 2 | 1 | 0 | 0 | 0 | 3 | 2 | 0 | 0 | 0 | 8 | 6 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 11 | 8 | .0 |
| Jaartotaal | 0 | 0 | 3 | 54 | 0 | 0 | 0 | 0 | 2 | 1 | 0 | 0 | 0 | 3 | 2 | 0 | 0 | 0 | 8 | 6 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 11 | 8 | .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 | 0 | 0 | 0 | .0 | |||
| 2021 | LUXEMBOURG | 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 |
| Trek - Segafredo | 0 | 1 | 4 | 53 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 3 | 2 | 0 | 0 | 0 | 0 | 2 | 2 | 0 | 0 | 0 | 0 | 6 | 5 | .1 | |
| Jaartotaal | 0 | 1 | 4 | 54 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 3 | 2 | 0 | 0 | 0 | 0 | 2 | 2 | 0 | 0 | 0 | 0 | 6 | 5 | .1 | |
| 2020 | Trek - Segafredo | 0 | 1 | 4 | 37 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 1 | 0 | 0 | 0 | 5 | 3 | 0 | 0 | 0 | 0 | 3 | 2 | 0 | 0 | 0 | 0 | 8 | 5 | .1 |
| Jaartotaal | 0 | 1 | 4 | 37 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 1 | 0 | 0 | 0 | 5 | 3 | 0 | 0 | 0 | 0 | 5 | 2 | 0 | 0 | 0 | 0 | 10 | 5 | .1 | |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | .0 | |||
| 2019 | LUXEMBOURG | 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 |
| Trek - Segafredo | 0 | 0 | 6 | 43 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 2 | 1 | 0 | 0 | 0 | 2 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 4 | 3 | .0 | |
| Jaartotaal | 0 | 0 | 6 | 44 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 2 | 1 | 0 | 0 | 0 | 2 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 4 | 3 | .0 | |
| 2018 | LUXEMBOURG | 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 |
| WB Aqua Protect - Veranclassic | 0 | 4 | 8 | 21 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 1 | 0 | 0 | 0 | 2 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 1 | 1.7 | |
| Jaartotaal | 0 | 4 | 8 | 22 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 1 | 0 | 0 | 0 | 3 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 2 | 1.7 | |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | .0 | |||
| 2017 | LUXEMBOURG | 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 |
| WB Veranclassic - Aqua Protect | 0 | 4 | 4 | 9 | 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 | 17.5 | |
| Jaartotaal | 0 | 4 | 4 | 10 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 17.5 | |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | .0 | |||
| 2016 | Stölting Service Group | 0 | 4 | 4 | 7 | 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.5 |
| 2015 | LUXEMBOURG | 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 |
| Cult Energy Pro Cycling | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | .0 | |
| Jaartotaal | 0 | 0 | 0 | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | .0 | |
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | .0 | |||
| 2014 | Trek Factory Racing | 0 | 1 | 1 | 4 | 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 |
| Leopard Development Team | 0 | 5 | 5 | 7 | 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.1 | |
| Jaartotaal | 0 | 6 | 6 | 11 | 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.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 | 0 | 0 | .0 | |||
| 2013 | LUXEMBOURG | 0 | 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 | 1.8 |
| Leopard - Trek Continental Team | 0 | 1 | 1 | 6 | 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 | 3.1 | |
| Jaartotaal | 0 | 2 | 2 | 7 | 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 | 4.9 | |
| 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 | 0 | 0 | .0 | |||
| 2012 | Leopard - Trek CT | 0 | 1 | 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 | .0 |
| Jaartotaal | 0 | 1 | 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 | .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 | 0 | 0 | 0 | .0 | |||
| 2010 | 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 | 0 | 0 | .0 | ||
| 2009 | 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 | 0 | 0 | .0 | ||
| Totaal | 2 | 30 | 63 | 425 | 0 | 0 | 0 | 0 | 6 | 5 | 0 | 0 | 0 | 15 | 8 | 0 | 0 | 1 | 46 | 28 | 0 | 0 | 0 | 0 | 16 | 9 | 0 | 0 | 0 | 1 | 68 | 42 | 1.5 | |
| Year | Date | Race | Pos | Team | UCI | Km | RaceType |
|---|---|---|---|---|---|---|---|
| 2025 | 2025-08-22 | Renewi Tour | Rit 3 | DNF | Lidl - Trek | 2.WT | 181,8 | Hill |
| 2025 | 2025-08-21 | Renewi Tour | Rit 2 | 140 | Lidl - Trek | 2.WT | 172,7 | Flat |
| 2025 | 2025-08-20 | Renewi Tour | Rit 1 | 101 | Lidl - Trek | 2.WT | 182,6 | Flat |
| 2025 | 2025-08-05 | Tour of Poland | Rit 2 | DNF | Lidl - Trek | 2.WT | 148,9 | Hill |
| 2025 | 2025-08-04 | Tour of Poland | Rit 1 | 153 | Lidl - Trek | 2.WT | 199,7 | Sprint |
| 2025 | 2025-03-16 | Paris - Nice | 65 | Lidl - Trek | 2.WT | GC | |
| 2025 | 2025-03-16 | Paris - Nice | Rit 8 | 46 | Lidl - Trek | 2.WT | 119,9 | Mountain |
| 2025 | 2025-03-15 | Paris - Nice | Rit 7 | 43 | Lidl - Trek | 2.WT | 109,3 | Mountain finish |
| 2025 | 2025-03-14 | Paris - Nice | Rit 6 | 39 | Lidl - Trek | 2.WT | 209,8 | Flat |
| 2025 | 2025-03-13 | Paris - Nice | Rit 5 | 94 | Lidl - Trek | 2.WT | 196,5 | Hill |
| 2025 | 2025-03-12 | Paris - Nice | Rit 4 | 137 | Lidl - Trek | 2.WT | 163,4 | Hill |
| 2025 | 2025-03-10 | Paris - Nice | Rit 2 | 69 | Lidl - Trek | 2.WT | 183,9 | Flat |
| 2025 | 2025-03-09 | Paris - Nice | Rit 1 | 44 | Lidl - Trek | 2.WT | 156,5 | Sprint |
| 2024 | 2024-10-20 | Tour of Guangxi | 65 | Lidl - Trek | 2.WT | GC | |
| 2024 | 2024-10-20 | Tour of Guangxi | Rit 6 | 79 | Lidl - Trek | 2.WT | 134,3 | Hill |
| 2024 | 2024-10-19 | Tour of Guangxi | Rit 5 | 52 | Lidl - Trek | 2.WT | 165,8 | Hill |
| 2024 | 2024-10-18 | Tour of Guangxi | Rit 4 | 73 | Lidl - Trek | 2.WT | 176,8 | |
| 2024 | 2024-10-17 | Tour of Guangxi | Rit 3 | 46 | Lidl - Trek | 2.WT | 214 | Sprint |
| 2024 | 2024-10-16 | Tour of Guangxi | Rit 2 | 26 | Lidl - Trek | 2.WT | 181,5 | Hill |
| 2024 | 2024-10-15 | Tour of Guangxi | Rit 1 | 87 | Lidl - Trek | 2.WT | 149,4 | Sprint |
| 2024 | 2024-08-18 | Tour of Poland | Rit 7 | 110 | Lidl - Trek | 2.WT | 152 | Sprint |
| 2024 | 2024-08-18 | Tour of Poland | 100 | Lidl - Trek | 2.WT | GC | |
| 2024 | 2024-08-17 | Tour of Poland | Rit 6 | 79 | Lidl - Trek | 2.WT | 183,2 | Mountain finish |
| 2024 | 2024-08-16 | Tour of Poland | Rit 5 | 126 | Lidl - Trek | 2.WT | 187,6 | Sprint |
| 2024 | 2024-08-15 | Tour of Poland | Rit 4 | 108 | Lidl - Trek | 2.WT | 195,3 | Sprint |
| 2024 | 2024-08-14 | Tour of Poland | Rit 3 | 67 | Lidl - Trek | 2.WT | 156,5 | Mountain finish |
| 2024 | 2024-08-13 | Tour of Poland | Rit 2 | 107 | Lidl - Trek | 2.WT | 15,4 | ITT |
| 2024 | 2024-08-12 | Tour of Poland | Rit 1 | 154 | Lidl - Trek | 2.WT | 156,1 | Hill |
| 2024 | 2024-06-07 | Criterium du Dauphiné | Rit 6 | DNF | Lidl - Trek | 2.WT | 174,1 | Mountain finish |
| 2024 | 2024-06-05 | Criterium du Dauphiné | Rit 4 | 52 | Lidl - Trek | 2.WT | 34,4 | ITT |
| 2024 | 2024-06-04 | Criterium du Dauphiné | Rit 3 | 129 | Lidl - Trek | 2.WT | 181,7 | Hill |
| 2024 | 2024-06-03 | Criterium du Dauphiné | Rit 2 | 150 | Lidl - Trek | 2.WT | 142 | Hill |
| 2024 | 2024-06-02 | Criterium du Dauphiné | Rit 1 | 90 | Lidl - Trek | 2.WT | 172,5 | Sprint |
| 2023 | 2023-03-11 | Paris - Nice | Rit 7 | DNF | 2.WT | 142,9 | Mountain finish | |
| 2022 | 2022-03-13 | Paris - Nice | 22 | Trek - Segafredo | 2.WT | GC | |
| 2022 | 2022-03-13 | Paris - Nice | Rit 8 | 20 | Trek - Segafredo | 2.WT | 115,6 | Mountain |
| 2021 | 2021-06-13 | Tour de Suisse | 82 | Trek - Segafredo | 2.WT | 1030,55 | GC |
| 2021 | 2021-03-14 | Paris - Nice | 104 | Trek - Segafredo | 2.WT | 1235,9 | GC |
| 2020 | 2020-10-03 | BinckBank Tour | 74 | Trek - Segafredo | 2.WT | ||
| 2020 | 2020-09-12 | Tirreno - Adriatico | Rit 6 | DNF | 2.WT | 171 | ||
| 2020 | 2020-08-09 | Tour of Poland | 131 | Trek - Segafredo | 2.WT | ||
| 2020 | 2020-03-15 | Paris - Nice | DNF | 2.WT | |||
| 2020 | 2020-03-09 | Paris - Nice | Rit 2 | 17 | Trek - Segafredo | 2.WT | 166,6 | |
| 2019 | 2019-03-17 | Paris - Nice | 76 | Trek - Segafredo | 2.WT |
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