STAGE 3 OF 6 · HILLY · CHN FINISHED
Jingxi → Bama
Thursday October 15 · Tour of Guangxi 2026
- 1 Milan Fretin
- 2 Frits Biesterbos
- 3 Jordi Meeus
- best Italian 11th Matteo Milan s.t.
- KM
- 211.9
- ELEVATION
- 2,087 m
Our articles
The profile
ROUTE SCHEDULE · 39 PLACESThe climbs
| Climbing | Summit, km | To the finish | Length | Average | Altitude |
|---|---|---|---|---|---|
| G243 National Rd. GPM · category 26 km at 4.2% · 496 m | 149.3 | 62.6 | 6 km | 4.2% | 496 m |
| G243 National Rd. GPM · category 31.9 km at 6.0% · 503 m | 183.2 | 28.7 | 1.9 km | 6.0% | 503 m |
The intermediate sprints
| Where | km | To the finish |
|---|---|---|
| Desheng Rd. | 38.7 | 173.2 |
| Tiandong County Revolutionary Martyrs Cemetery | 112.4 | 99.5 |
The full itinerary: 39 places
| Place | km | To go | Altitude | 42 km/h | 44 km/h | 46 km/h |
|---|---|---|---|---|---|---|
| Jinxiu Ancient Townsign-on | -6.9 | 218.8 | 738 m | 11:00 | 11:00 | 11:00 |
| G212 National Rd.km 0, the start | 0 | 211.9 | 735 m | 11:12 | 11:12 | 11:12 |
| G212 National Rd./Memorial archway in Wuping Town | 6.9 | 205 | 781 m | 11:21 | 11:21 | 11:21 |
| G212 National Rd./S213 Provincial Rd. | 22.9 | 189 | 602 m | 11:44 | 11:43 | 11:41 |
| G212 National Rd. | 31.2 | 180.7 | 618 m | 11:56 | 11:54 | 11:52 |
| G212 National Rd.feed zone | 31.9 | 180 | 628 m | 11:57 | 11:55 | 11:53 |
| G212 National Rd. | 33.3 | 178.6 | 669 m | 11:59 | 11:57 | 11:55 |
| Nanlong Rd./Desheng Rd. | 37.8 | 174.1 | 644 m | 12:06 | 12:03 | 12:01 |
| Desheng Rd.intermediate sprint | 38.7 | 173.2 | 639 m | 12:07 | 12:04 | 12:02 |
| G212 National Rd./X752 County Highway | 56.3 | 155.6 | 548 m | 12:32 | 12:28 | 12:25 |
| G212 National Rd. | 73.9 | 138 | 522 m | 12:57 | 12:52 | 12:48 |
| G212 National Rd.feed zone | 74.4 | 137.5 | 528 m | 12:58 | 12:53 | 12:49 |
| G212 National Rd. | 75.5 | 136.4 | 555 m | 12:59 | 12:54 | 12:50 |
| G212 National Rd./S306 Provincial Rd. | 80.8 | 131.1 | 521 m | 13:07 | 13:02 | 12:57 |
| S306 Provincial Rd. | 96 | 115.9 | 185 m | 13:29 | 13:22 | 13:17 |
| S306 Provincial Rd./Xiangzhou Bridge | 102.8 | 109.1 | 112 m | 13:38 | 13:32 | 13:26 |
| G324 National Rd./Dongningxi Rd. | 108.7 | 103.2 | 110 m | 13:47 | 13:40 | 13:33 |
| Tiandong County Revolutionary Martyrs Cemeteryintermediate sprint | 112.4 | 99.5 | 111 m | 13:52 | 13:45 | 13:38 |
| G324 National Rd./G243 National Rd. | 117.8 | 94.1 | 113 m | 14:00 | 13:52 | 13:45 |
| G243 National Rd. | 118.3 | 93.6 | 121 m | 14:01 | 13:53 | 13:46 |
| G243 National Rd.feed zone | 119.4 | 92.5 | 127 m | 14:02 | 13:54 | 13:47 |
| G243 National Rd. | 121.2 | 90.7 | 143 m | 14:05 | 13:57 | 13:50 |
| G243 National Rd.start of the climb | 143.3 | 68.6 | 243 m | 14:36 | 14:27 | 14:18 |
| G243 National Rd.KOM | 149.3 | 62.6 | 496 m | 14:45 | 14:35 | 14:26 |
| G243 National Rd. | 160.5 | 51.4 | 314 m | 15:01 | 14:50 | 14:41 |
| G243 National Rd.feed zone | 161.1 | 50.8 | 332 m | 15:02 | 14:51 | 14:42 |
| G243 National Rd. | 162.6 | 49.3 | 362 m | 15:04 | 14:53 | 14:44 |
| G243 National Rd. | 169.7 | 42.2 | 296 m | 15:14 | 15:03 | 14:53 |
| G243 National Rd. | 179.7 | 32.2 | 351 m | 15:28 | 15:17 | 15:06 |
| G243 National Rd.feed zone | 179.9 | 32 | 359 m | 15:29 | 15:17 | 15:06 |
| G243 National Rd.start of the climb | 181.3 | 30.6 | 389 m | 15:31 | 15:19 | 15:08 |
| G243 National Rd. | 182.4 | 29.5 | 461 m | 15:32 | 15:20 | 15:09 |
| G243 National Rd.KOM | 183.2 | 28.7 | 503 m | 15:33 | 15:21 | 15:10 |
| G243 National Rd./G243 National Rd. | 183.3 | 28.6 | 503 m | 15:33 | 15:21 | 15:11 |
| G243 National Rd./Xinjian Rd. | 206.6 | 5.3 | 247 m | 16:07 | 15:53 | 15:41 |
| Xinjian Rd. | 206.7 | 5.2 | 248 m | 16:07 | 15:53 | 15:41 |
| Ruilin Line/Xinjian Rd. | 208.9 | 3 | 235 m | 16:10 | 15:56 | 15:44 |
| Chengbei Rd./Jiaoyu Rd. | 210.9 | 1 | 230 m | 16:13 | 15:59 | 15:47 |
| Shouxiang Cultural Squarefinish | 211.9 | 0 | 229 m | 16:14 | 16:00 | 15:48 |
Times are local, at the organiser’s average speeds.
The finishing order
THE STAGE REPORT| Pos. | Rider | Time |
|---|---|---|
| 1 | 🇧🇪 Milan FretinCofidis | 4h31’55” |
| 2 | 🇳🇱 Frits BiesterbosTeam Picnic Postnl | s.t. |
| 3 | 🇧🇪 Jordi MeeusRed Bull-Bora-Hansgrohe | s.t. |
| 4 | 🇳🇱 Fabio JakobsenTeam Visma | Lease A Bike | s.t. |
| 5 | 🇳🇱 Arvid De KleijnTudor Pro Cycling Team | s.t. |
| 6 | 🇨🇴 Juan Sebastian Molano BenavidesUAE Team Emirates XRG | s.t. |
| 7 | 🇬🇧 Joshua GiddingsLotto Intermarché | s.t. |
| 8 | 🇳🇴 Erlend BlikraUno-X Mobility | s.t. |
| 9 | 🇦🇺 Brady GilmoreNSN Cycling Team | s.t. |
| 10 | 🇫🇷 Cyril BartheGroupama-Fdj United | s.t. |
| 11 | 🇮🇹 Matteo MilanBest Italian | s.t. |
General classification
red jersey · after stage 3| Pos. | Rider | Bonuses | Time |
|---|---|---|---|
| 1 | 🇳🇱 Frits BiesterbosTeam Picnic Postnl · bonuses 16” | 16” | 11h17’21” |
| 2 | 🇫🇷 Paul MagnierSoudal Quick-Step · bonuses 16” | 16” | s.t. |
| 3 | 🇩🇪 Max KanterXDS Astana Team · bonuses 6” | 6” | +10” |
| 4 | 🇦🇺 Sam WelsfordNetcompany Ineos · bonuses 6” | 6” | +10” |
| 5 | 🇳🇴 Fredrik DversnesUno-X Mobility · bonuses 6” | 6” | +10” |
| 6 | 🇩🇪 Jasha SütterlinTeam Jayco Alula · bonuses 5” | 5” | +11” |
| 7 | 🇧🇪 Jordi MeeusRed Bull-Bora-Hansgrohe · bonuses 4” | 4” | +12” |
| 8 | 🇳🇱 Olav KooijDecathlon CMA CGM Team · bonuses 4” | 4” | +12” |
| 9 | 🇺🇸 Neilson PowlessEF Education-Easypost · bonuses 4” | 4” | +12” |
| 10 | 🇪🇨 Jhonatan NarvaezUAE Team Emirates XRG · bonuses 4” | 4” | +12” |
| 17 | 🇮🇹 Matteo MilanGroupama-Fdj United · the best Italian | +16” |
The full general classification: 147 riders
| Pos. | Rider | Bonuses | Time |
|---|---|---|---|
| 11 | 🇦🇹 Tobias BayerAlpecin-Premier Tech · bonuses 3” | 3” | +13” |
| 12 | 🇳🇴 Martin TjøttaUno-X Mobility · bonuses 3” | 3” | +13” |
| 13 | 🇪🇸 Pau Miquel DelgadoBahrain Victorious · bonuses 2” | 2” | +14” |
| 14 | 🇦🇹 Patrick GamperTeam Jayco Alula · bonuses 2” | 2” | +14” |
| 15 | 🇬🇧 Tom PidcockPinarello-Q36.5 Pro Cycling Team · bonuses 1” | 1” | +15” |
| 16 | 🇳🇴 Erlend BlikraUno-X Mobility | +16” | |
| 17 | 🇮🇹 Matteo MilanGroupama-Fdj United | +16” | |
| 18 | 🇮🇱 Oded KogutNSN Cycling Team | +16” | |
| 19 | 🇳🇱 Fabio JakobsenTeam Visma | Lease A Bike | +16” | |
| 20 | 🇮🇱 Itamar EinhornNSN Cycling Team | +16” | |
| 21 | 🇸🇮 Matevž GovekarBahrain Victorious | +16” | |
| 22 | 🇮🇹 Matteo MoschettiPinarello-Q36.5 Pro Cycling Team | +16” | |
| 23 | 🇧🇪 Lionel TaminiauxLotto Intermarché | +16” | |
| 24 | 🇮🇹 Manlio MoroMovistar Team | +16” | |
| 25 | 🇮🇹 Mattia AgostinacchioEF Education-Easypost | +16” | |
| 26 | 🇺🇸 Luke LampertiEF Education-Easypost | +16” | |
| 27 | 🇬🇧 Joshua GiddingsLotto Intermarché | +16” | |
| 28 | 🇩🇰 Henrik PedersenUno-X Mobility | +16” | |
| 29 | 🇬🇧 Joe PidcockPinarello-Q36.5 Pro Cycling Team | +16” | |
| 30 | 🇨🇿 Pavel NovákMovistar Team | +16” | |
| 31 | 🇨🇳 Zhicheng LiuChina | +16” | |
| 32 | 🇵🇹 Rui Filipe Alves OliveiraUAE Team Emirates XRG | +16” | |
| 33 | 🇫🇷 Clément ChampoussinXDS Astana Team | +16” | |
| 34 | 🇧🇪 Arne MaritRed Bull-Bora-Hansgrohe | +16” | |
| 35 | 🇫🇷 Cyril BartheGroupama-Fdj United | +16” | |
| 36 | 🇬🇧 Robert DonaldsonTeam Jayco Alula | +16” | |
| 37 | 🇧🇪 Dries van GestelSoudal Quick-Step | +16” | |
| 38 | 🇫🇷 Kévin VauquelinNetcompany Ineos | +16” | |
| 39 | 🇩🇪 Marco BrennerTudor Pro Cycling Team | +16” | |
| 40 | 🇮🇱 Nadav RaisbergNSN Cycling Team | +16” | |
| 41 | 🇦🇺 Rudy PorterTeam Jayco Alula | +16” | |
| 42 | 🇳🇱 Cees BolDecathlon CMA CGM Team | +16” | |
| 43 | 🇫🇷 Tom DonnenwirthGroupama-Fdj United | +16” | |
| 44 | 🇳🇱 Jan MaasCofidis | +16” | |
| 45 | 🇳🇱 Tijmen GraatTeam Visma | Lease A Bike | +16” | |
| 46 | 🇳🇱 Milan VaderPinarello-Q36.5 Pro Cycling Team | +16” | |
| 47 | 🇬🇧 Sean FlynnTeam Picnic Postnl | +16” | |
| 48 | 🇪🇸 Pelayo Sanchez MayoMovistar Team | +16” | |
| 49 | 🇫🇷 Camille CharretCofidis | +16” | |
| 50 | 🇵🇹 Afonso EulálioBahrain Victorious | +16” | |
| 51 | 🇫🇷 Louis BarreTeam Visma | Lease A Bike | +16” | |
| 52 | 🇬🇧 Bjoern KoerdtTeam Picnic Postnl | +16” | |
| 53 | 🇫🇷 Léo BisiauxDecathlon CMA CGM Team | +16” | |
| 54 | 🇫🇷 Enzo PaleniGroupama-Fdj United | +16” | |
| 55 | 🇨🇭 Robin FroidevauxTudor Pro Cycling Team | +16” | |
| 56 | 🇦🇺 Matthew FoxLotto Intermarché | +16” | |
| 57 | 🇪🇸 Juan AyusoLidl-Trek | +16” | |
| 58 | 🇬🇧 Paul DoubleTeam Jayco Alula | +16” | |
| 59 | 🇳🇴 Martin BuggeUno-X Mobility | +16” | |
| 60 | 🇩🇰 Mathias NorsgaardLidl-Trek | +16” | |
| 61 | 🇮🇹 Alessandro PinarelloNSN Cycling Team | +16” | |
| 62 | 🇳🇱 Marijn van den BergEF Education-Easypost | +16” | |
| 63 | 🇧🇪 Robbe DhondtTeam Picnic Postnl | +16” | |
| 64 | 🇫🇷 Clément Braz AfonsoGroupama-Fdj United | +16” | |
| 65 | 🇮🇱 Rotem TeneNSN Cycling Team | +16” | |
| 66 | 🇩🇰 Sebastian Kolze ChangiziTudor Pro Cycling Team | +16” | |
| 67 | 🇱🇻 Emils LiepinsPinarello-Q36.5 Pro Cycling Team | +16” | |
| 68 | 🇬🇧 Max WalkerEF Education-Easypost | +16” | |
| 69 | 🇳🇱 Loe van BelleTeam Visma | Lease A Bike | +16” | |
| 70 | 🇩🇰 Mikkel HonoréEF Education-Easypost | +16” | |
| 71 | 🇩🇪 Lennard KämnaLidl-Trek | +16” | |
| 72 | 🇧🇪 Arjen LivynsXDS Astana Team | +16” | |
| 73 | 🇫🇷 Adrien BoichisRed Bull-Bora-Hansgrohe | +16” | |
| 74 | 🇩🇪 HEßMANN MichelMovistar Team | +16” | |
| 75 | 🇧🇪 Maxim van GilsRed Bull-Bora-Hansgrohe | +16” | |
| 76 | 🇺🇸 William BartaTudor Pro Cycling Team | +16” | |
| 77 | 🇳🇴 Torstein TræenUno-X Mobility | +16” | |
| 78 | 🇬🇧 Owain DoullTeam Visma | Lease A Bike | +16” | |
| 79 | 🇧🇪 Jarno WidarLotto Intermarché | +16” | |
| 80 | 🇰🇿 Alexey LutsenkoNSN Cycling Team | +16” | |
| 81 | 🇧🇪 Steff CrasSoudal Quick-Step | +16” | |
| 82 | 🇧🇪 Brent van MoerPinarello-Q36.5 Pro Cycling Team | +16” | |
| 83 | 🇧🇪 Ilan van WilderSoudal Quick-Step | +16” | |
| 84 | 🇨🇴 Diego Pescador CastroMovistar Team | +16” | |
| 85 | 🇳🇱 Daan HooleDecathlon CMA CGM Team | +16” | |
| 86 | 🇳🇱 Timo De JongTeam Picnic Postnl | +16” | |
| 87 | 🇩🇰 Tobias SvarreUno-X Mobility | +16” | |
| 88 | 🇮🇹 Andrea BagioliLidl-Trek | +16” | |
| 89 | 🇪🇨 Harold Martin Lopez GranizoXDS Astana Team | +16” | |
| 90 | 🇨🇳 Yutao ShenChina | +16” | |
| 91 | 🇲🇨 Victor LangellottiXDS Astana Team | +16” | |
| 92 | 🇮🇪 Dillon CorkeryTeam Picnic Postnl | +16” | |
| 93 | 🇳🇱 Max van der MeulenBahrain Victorious | +16” | |
| 94 | 🇺🇸 Artem ShmidtNetcompany Ineos | +16” | |
| 95 | 🇨🇳 Haoyu SuXDS Astana Team | +16” | |
| 96 | 🇨🇴 Daniel Felipe Martinez PovedaRed Bull-Bora-Hansgrohe | +16” | |
| 97 | 🇩🇰 Peter HansenNetcompany Ineos | +16” | |
| 98 | 🇪🇸 Javier Romo OliverMovistar Team | +16” | |
| 99 | 🇮🇪 Jamie MeehanCofidis | +16” | |
| 100 | 🇫🇷 Rémy RochasGroupama-Fdj United | +16” | |
| 101 | 🇪🇸 Oscar Rodriguez GaraicoecheaNetcompany Ineos | +16” | |
| 102 | 🇺🇸 Andrew AugustNetcompany Ineos | +16” | |
| 103 | 🇳🇿 Reuben ThompsonLotto Intermarché | +16” | |
| 104 | 🇨🇴 Brandon RiveraNetcompany Ineos | +16” | |
| 105 | 🇮🇹 Davide FormoloMovistar Team | +16” | |
| 106 | 🇩🇪 Emanuel BuchmannCofidis | +16” | |
| 107 | 🇩🇰 Julius JohansenUAE Team Emirates XRG | +16” | |
| 108 | 🇩🇪 Emil HerzogRed Bull-Bora-Hansgrohe | +16” | |
| 109 | 🇪🇸 Marc SolerUAE Team Emirates XRG | +16” | |
| 110 | 🇪🇸 Carlos VeronaLidl-Trek | +16” | |
| 111 | 🇧🇪 Rune HerregodtsUAE Team Emirates XRG | +16” | |
| 112 | 🇬🇧 Simon CarrCofidis | +16” | |
| 113 | 🇮🇹 Samuele BattistellaEF Education-Easypost | +16” | |
| 114 | 🇨🇦 Nickolas ZukowskyPinarello-Q36.5 Pro Cycling Team | +16” | |
| 115 | 🇳🇴 Tord GudmestadDecathlon CMA CGM Team | +42” | |
| 116 | 🇧🇪 Laurenz RexSoudal Quick-Step | +45” | |
| 117 | 🇧🇪 Edward PlanckaertAlpecin-Premier Tech | +45” | |
| 118 | 🇩🇰 Søren Kragh AndersenLidl-Trek | +45” | |
| 119 | 🇧🇪 Dries De PooterTeam Jayco Alula | +46” | |
| 120 | 🇧🇪 Sébastien GrignardLotto Intermarché | +1’30” | |
| 121 | 🇫🇷 Baptiste VeistrofferLotto Intermarché | +1’39” | |
| 122 | 🇧🇪 Robbe GhysDecathlon CMA CGM Team | +2’04” | |
| 123 | 🇩🇪 Niklas BehrensTeam Visma | Lease A Bike | +2’08” | |
| 124 | 🇧🇪 Vlad van MechelenBahrain Victorious | +2’31” | |
| 125 | 🇧🇪 Milan FretinCofidis · bonuses 10” | 10” | +2’47” |
| 126 | 🇫🇷 Titouan FontaineGroupama-Fdj United | +3’42” | |
| 127 | 🇧🇪 Stan DewulfDecathlon CMA CGM Team | +4’57” | |
| 128 | 🇬🇧 Oliver PeaceTeam Picnic Postnl | +5’09” | |
| 129 | 🇩🇪 Anton SchifferTeam Visma | Lease A Bike | +5’56” | |
| 130 | 🇳🇱 Arvid De KleijnTudor Pro Cycling Team | +8’43” | |
| 131 | 🇨🇴 Juan Sebastian Molano BenavidesUAE Team Emirates XRG | +8’43” | |
| 132 | 🇨🇳 Binyan MaChina | +8’43” | |
| 133 | 🇧🇪 Florian VermeerschUAE Team Emirates XRG | +8’43” | |
| 134 | 🇧🇪 Warre VangheluweSoudal Quick-Step | +9’40” | |
| 135 | 🇱🇺 Arthur KluckersTudor Pro Cycling Team | +10’36” | |
| 136 | 🇦🇺 Brady GilmoreNSN Cycling Team | +11’08” | |
| 137 | 🇦🇺 Kaden Alexander GrovesAlpecin-Premier Tech | +11’08” | |
| 138 | 🇨🇳 Chenli ZhaoChina | +11’08” | |
| 139 | 🇳🇱 Oscar RiesebeekAlpecin-Premier Tech | +11’08” | |
| 140 | 🇸🇮 Žak ErženBahrain Victorious | +11’25” | |
| 141 | 🇮🇹 Daniel SkerlBahrain Victorious | +11’25” | |
| 142 | 🇧🇪 Jonas RickaertAlpecin-Premier Tech · bonuses 1” | 1” | +11’36” |
| 143 | 🇦🇺 Jarrad Eriks DriznersRed Bull-Bora-Hansgrohe | +12’07” | |
| 144 | 🇨🇳 Chenglu LiuChina | +13’05” | |
| 145 | 🇧🇪 Ayco BastiaensSoudal Quick-Step | +13’49” | |
| 146 | 🇨🇳 Ruidong WangChina · bonuses 1” | 1” | +13’57” |
| 147 | 🇧🇪 Dries De BondtTeam Jayco Alula · bonuses 2” | 2” | +15’37” |
The other classifications
Points
blue jersey| Pos. | Rider | Points |
|---|---|---|
| 1 | 🇳🇱 Frits BiesterbosTeam Picnic Postnl | 25 |
| 2 | 🇫🇷 Paul MagnierSoudal Quick-Step | 25 |
| 3 | 🇩🇪 Max KanterXDS Astana Team | 19 |
| 4 | 🇧🇪 Milan FretinCofidis | 15 |
| 5 | 🇧🇪 Jordi MeeusRed Bull-Bora-Hansgrohe | 13 |
| 19 | 🇮🇹 Matteo MilanGroupama-Fdj United · the best Italian | 5 |
Mountains
blue polka-dot jersey| Pos. | Rider | Points |
|---|---|---|
| 1 | 🇨🇳 Ruidong WangChina | 12 |
| 2 | 🇵🇹 Afonso EulálioBahrain Victorious | 10 |
| 3 | 🇦🇹 Tobias BayerAlpecin-Premier Tech | 10 |
| 4 | 🇦🇺 Rudy PorterTeam Jayco Alula | 6 |
| 5 | 🇩🇪 Jasha SütterlinTeam Jayco Alula | 5 |
Young riders
white jersey| Pos. | Rider | Time |
|---|---|---|
| 1 | 🇳🇱 Frits BiesterbosTeam Picnic Postnl | 11h17’21” |
| 2 | 🇫🇷 Paul MagnierSoudal Quick-Step | s.t. |
| 3 | 🇳🇱 Olav KooijDecathlon CMA CGM Team | +12” |
| 4 | 🇳🇴 Martin TjøttaUno-X Mobility | +13” |
| 5 | 🇮🇹 Matteo MilanGroupama-Fdj United | +16” |
Teams
| Pos. | Team | Time |
|---|---|---|
| 1 | NSN Cycling Team | 33h52’51” |
| 2 | Groupama-Fdj United | s.t. |
| 3 | Team Picnic Postnl | s.t. |
| 4 | Uno-X Mobility | s.t. |
| 5 | Pinarello-Q36.5 Pro Cycling Team | s.t. |
The fagIAno · The receipt for stage 3
Milan Fretin won: we had seven riders ahead on our list.
We had given the winner 1.8%.
- Our favourite
- Olav Kooij (30%): not in the top ten.
- How it ended
- Bunch sprint, a scenario we had given 89%.
The full receipt
- Olav Kooij30%
- Paul Magnier27%
- Jordi Meeus9.5%
- Max Kanter5.3%
- Arvid De Kleijn2.4%
- 8th Milan Fretin won1.8%
- How it ends
- Bunch sprint it ended like this89%
- The breakaway makes it9%
- A finish among the GC riders1.8%
Log loss 4.04: −ln of the probability we gave the winner, among the actual starters; the lower, the better. Frozen on October 14 at 21:33, before the start: they no longer change.
The experts: log loss 6.13, from the 10/12/2026 prediction by idlprocycling.com.
Fingerprint 1e8858032e5d1b87…
