STAGE 2 OF 6 · HILLY · CHN FINISHED
Chongzuo → Jingxi
Wednesday October 14 · Tour of Guangxi 2026
- 1 Frits Biesterbos
- 2 Paul Magnier
- 3 Olav Kooij
- best Italian 7th Matteo Moschetti s.t.
- KM
- 179.5
- ELEVATION
- 1,818 m
Our articles
The profile
ROUTE SCHEDULE · 41 PLACESThe climb
| Climbing | Summit, km | To the finish | Length | Average | Altitude |
|---|---|---|---|---|---|
| G359 National Rd. GPM · category 28.3 km at 3.9% · 595 m | 149.6 | 29.9 | 8.3 km | 3.9% | 595 m |
The intermediate sprints
| Where | km | To the finish |
|---|---|---|
| G359 National Rd./Nongming Village | 94.3 | 85.2 |
| G359 National Rd./Huadong Town People’s Government | 167.2 | 12.3 |
The full itinerary: 41 places
| Place | km | To go | Altitude | 44 km/h | 46 km/h | 48 km/h |
|---|---|---|---|---|---|---|
| Jiuniupapo Squaresign-on | -2.2 | 181.7 | 125 m | 11:10 | 11:10 | 11:10 |
| Youyi Blvd.km 0, the start | 0 | 179.5 | 126 m | 11:15 | 11:15 | 11:15 |
| Youyi Blvd./Lijiang South Rd. | 2.6 | 176.9 | 107 m | 11:18 | 11:18 | 11:18 |
| Chongzuo Bridge | 4.4 | 175.1 | 95 m | 11:21 | 11:20 | 11:20 |
| G359 National Rd./G359 National Rd. | 11.8 | 167.7 | 120 m | 11:31 | 11:30 | 11:29 |
| G359 National Rd./Huancheng South Rd. | 30.8 | 148.7 | 150 m | 11:57 | 11:55 | 11:53 |
| Binjiang Av./Xinhe Farm Bridge | 35.6 | 143.9 | 124 m | 12:03 | 12:01 | 11:59 |
| Scenic spot Internal Rd./small bridge | 42.9 | 136.6 | 124 m | 12:13 | 12:10 | 12:08 |
| G359 National Rdfeed zone | 43.5 | 136 | 136 m | 12:14 | 12:11 | 12:09 |
| G359 National Rd | 44.3 | 135.2 | 151 m | 12:15 | 12:12 | 12:10 |
| G358 National Rd./X536 County Highway | 64.5 | 115 | 197 m | 12:42 | 12:39 | 12:35 |
| X536 County Highway/Encheng No.2 Bridge | 73 | 106.5 | 193 m | 12:54 | 12:50 | 12:46 |
| X536 County Highway/Anping Bridge | 78.7 | 100.8 | 171 m | 13:02 | 12:57 | 12:53 |
| X536 County Highway | 82.9 | 96.6 | 186 m | 13:08 | 13:03 | 12:58 |
| X536 County Highwayfeed zone | 83.6 | 95.9 | 188 m | 13:09 | 13:04 | 12:59 |
| X536 County Highway | 84.5 | 95 | 200 m | 13:10 | 13:05 | 13:00 |
| X536 County Highway/Nalin Tunnel | 87.5 | 92 | 225 m | 13:14 | 13:09 | 13:04 |
| X536 County Highway/G359 National Rd. | 90.7 | 88.8 | 244 m | 13:18 | 13:13 | 13:08 |
| G359 National Rd./Nongming Villageintermediate sprint | 94.3 | 85.2 | 233 m | 13:23 | 13:18 | 13:12 |
| G359 National Rd./Yanying Border checkpoint | 103.6 | 75.9 | 246 m | 13:36 | 13:30 | 13:24 |
| G359 National Rd./G219 National Rd. | 107 | 72.5 | 292 m | 13:40 | 13:34 | 13:28 |
| G219 National Rd./Shuolong Tunnel | 110.6 | 68.9 | 262 m | 13:45 | 13:39 | 13:33 |
| G219 National Rd./S316 Provincial Rd. | 115.9 | 63.6 | 239 m | 13:53 | 13:46 | 13:39 |
| G219 National Rd. | 116.6 | 62.9 | 240 m | 13:54 | 13:47 | 13:40 |
| G219 National Rd.feed zone | 117.4 | 62.1 | 241 m | 13:55 | 13:48 | 13:41 |
| G219 National Rd. | 118.4 | 61.1 | 242 m | 13:56 | 13:49 | 13:43 |
| G219 National Rd./X532 County Highway | 120 | 59.5 | 243 m | 13:58 | 13:51 | 13:45 |
| G219 National Rd./checkpoint | 128.8 | 50.7 | 252 m | 14:10 | 14:03 | 13:56 |
| G219 National Rd./Xialei No.2 Bridge | 131.5 | 48 | 246 m | 14:14 | 14:06 | 13:59 |
| G359 National Rd.start of the climb | 141.3 | 38.2 | 271 m | 14:27 | 14:19 | 14:11 |
| G359 National Rd./Xinqiao Tunnel | 144.6 | 34.9 | 407 m | 14:32 | 14:23 | 14:15 |
| G359 National Rd.KOM | 149.6 | 29.9 | 595 m | 14:39 | 14:30 | 14:22 |
| G359 National Rd./Tongling Border checkpoint | 151.6 | 27.9 | 598 m | 14:41 | 14:32 | 14:24 |
| G359 National Rd.feed zone | 152.6 | 26.9 | 607 m | 14:43 | 14:34 | 14:25 |
| G359 National Rd. | 153.5 | 26 | 638 m | 14:44 | 14:35 | 14:26 |
| G219 National Rd./S216 Provincial Rd. | 166.3 | 13.2 | 673 m | 15:01 | 14:51 | 14:42 |
| G359 National Rd./Huadong Town People’s Governmentintermediate sprint | 167.2 | 12.3 | 678 m | 15:03 | 14:53 | 14:44 |
| G359 National Rd. | 174.8 | 4.7 | 724 m | 15:13 | 15:03 | 14:53 |
| Gulong Rd. | 176.5 | 3 | 717 m | 15:15 | 15:05 | 14:55 |
| Guihua Rd./Gulong Rd. | 178.5 | 1 | 733 m | 15:18 | 15:07 | 14:58 |
| Jinxiu Ancient Townfinish | 179.5 | 0 | 738 m | 15:19 | 15:09 | 14:59 |
Times are local, at the organiser’s average speeds.
The finishing order
THE STAGE REPORT| Pos. | Rider | Time |
|---|---|---|
| 1 | 🇳🇱 Frits BiesterbosTeam Picnic Postnl | 3h45’19” |
| 2 | 🇫🇷 Paul MagnierSoudal Quick-Step | s.t. |
| 3 | 🇳🇱 Olav KooijDecathlon CMA CGM Team | s.t. |
| 4 | 🇩🇪 Max KanterXDS Astana Team | s.t. |
| 5 | 🇨🇭 Robin FroidevauxTudor Pro Cycling Team | s.t. |
| 6 | 🇧🇪 Jordi MeeusRed Bull-Bora-Hansgrohe | s.t. |
| 7 | 🇮🇹 Matteo MoschettiPinarello-Q36.5 Pro Cycling Team | s.t. |
| 8 | 🇳🇴 Erlend BlikraUno-X Mobility | s.t. |
| 9 | 🇧🇪 Lionel TaminiauxLotto Intermarché | s.t. |
| 10 | 🇮🇱 Oded KogutNSN Cycling Team | s.t. |
General classification
red jersey · after stage 2| Pos. | Rider | Bonuses | Time |
|---|---|---|---|
| 1 | 🇫🇷 Paul MagnierSoudal Quick-Step · bonuses 16” | 16” | 6h45’26” |
| 2 | 🇳🇱 Frits BiesterbosTeam Picnic Postnl · bonuses 10” | 10” | +6” |
| 3 | 🇦🇺 Sam WelsfordNetcompany Ineos · bonuses 6” | 6” | +10” |
| 4 | 🇳🇴 Fredrik DversnesUno-X Mobility · bonuses 6” | 6” | +10” |
| 5 | 🇩🇪 Max KanterXDS Astana Team · bonuses 4” | 4” | +12” |
| 6 | 🇳🇱 Olav KooijDecathlon CMA CGM Team · bonuses 4” | 4” | +12” |
| 7 | 🇺🇸 Neilson PowlessEF Education-Easypost · bonuses 4” | 4” | +12” |
| 8 | 🇪🇨 Jhonatan NarvaezUAE Team Emirates XRG · bonuses 3” | 3” | +13” |
| 9 | 🇳🇴 Martin TjøttaUno-X Mobility · bonuses 3” | 3” | +13” |
| 10 | 🇪🇸 Pau Miquel DelgadoBahrain Victorious · bonuses 2” | 2” | +14” |
| 15 | 🇮🇹 Matteo MoschettiPinarello-Q36.5 Pro Cycling Team · the best Italian | +16” |
The full general classification: 148 riders
| Pos. | Rider | Bonuses | Time |
|---|---|---|---|
| 11 | 🇦🇹 Patrick GamperTeam Jayco Alula · bonuses 2” | 2” | +14” |
| 12 | 🇬🇧 Tom PidcockPinarello-Q36.5 Pro Cycling Team · bonuses 1” | 1” | +15” |
| 13 | 🇮🇱 Oded KogutNSN Cycling Team | +16” | |
| 14 | 🇳🇴 Erlend BlikraUno-X Mobility | +16” | |
| 15 | 🇮🇹 Matteo MoschettiPinarello-Q36.5 Pro Cycling Team | +16” | |
| 16 | 🇧🇪 Lionel TaminiauxLotto Intermarché | +16” | |
| 17 | 🇮🇱 Itamar EinhornNSN Cycling Team | +16” | |
| 18 | 🇮🇹 Matteo MilanGroupama-Fdj United | +16” | |
| 19 | 🇸🇮 Matevž GovekarBahrain Victorious | +16” | |
| 20 | 🇧🇪 Jordi MeeusRed Bull-Bora-Hansgrohe | +16” | |
| 21 | 🇳🇱 Fabio JakobsenTeam Visma | Lease A Bike | +16” | |
| 22 | 🇮🇹 Manlio MoroMovistar Team | +16” | |
| 23 | 🇺🇸 Luke LampertiEF Education-Easypost | +16” | |
| 24 | 🇬🇧 Joe PidcockPinarello-Q36.5 Pro Cycling Team | +16” | |
| 25 | 🇩🇰 Henrik PedersenUno-X Mobility | +16” | |
| 26 | 🇮🇹 Mattia AgostinacchioEF Education-Easypost | +16” | |
| 27 | 🇨🇿 Pavel NovákMovistar Team | +16” | |
| 28 | 🇮🇱 Nadav RaisbergNSN Cycling Team | +16” | |
| 29 | 🇵🇹 Rui Filipe Alves OliveiraUAE Team Emirates XRG | +16” | |
| 30 | 🇫🇷 Clément ChampoussinXDS Astana Team | +16” | |
| 31 | 🇬🇧 Joshua GiddingsLotto Intermarché | +16” | |
| 32 | 🇧🇪 Arne MaritRed Bull-Bora-Hansgrohe | +16” | |
| 33 | 🇨🇳 Zhicheng LiuChina | +16” | |
| 34 | 🇦🇹 Tobias BayerAlpecin-Premier Tech | +16” | |
| 35 | 🇧🇪 Dries van GestelSoudal Quick-Step | +16” | |
| 36 | 🇫🇷 Kévin VauquelinNetcompany Ineos | +16” | |
| 37 | 🇦🇺 Rudy PorterTeam Jayco Alula | +16” | |
| 38 | 🇫🇷 Camille CharretCofidis | +16” | |
| 39 | 🇳🇱 Jan MaasCofidis | +16” | |
| 40 | 🇬🇧 Bjoern KoerdtTeam Picnic Postnl | +16” | |
| 41 | 🇳🇱 Marijn van den BergEF Education-Easypost | +16” | |
| 42 | 🇩🇪 Marco BrennerTudor Pro Cycling Team | +16” | |
| 43 | 🇩🇪 Jasha SütterlinTeam Jayco Alula | +16” | |
| 44 | 🇳🇱 Cees BolDecathlon CMA CGM Team | +16” | |
| 45 | 🇳🇱 Tijmen GraatTeam Visma | Lease A Bike | +16” | |
| 46 | 🇮🇹 Alessandro PinarelloNSN Cycling Team | +16” | |
| 47 | 🇩🇪 HEßMANN MichelMovistar Team | +16” | |
| 48 | 🇫🇷 Léo BisiauxDecathlon CMA CGM Team | +16” | |
| 49 | 🇬🇧 Paul DoubleTeam Jayco Alula | +16” | |
| 50 | 🇬🇧 Robert DonaldsonTeam Jayco Alula | +16” | |
| 51 | 🇧🇪 Arjen LivynsXDS Astana Team | +16” | |
| 52 | 🇫🇷 Cyril BartheGroupama-Fdj United | +16” | |
| 53 | 🇧🇪 Robbe DhondtTeam Picnic Postnl | +16” | |
| 54 | 🇫🇷 Louis BarreTeam Visma | Lease A Bike | +16” | |
| 55 | 🇪🇸 Pelayo Sanchez MayoMovistar Team | +16” | |
| 56 | 🇪🇸 Juan AyusoLidl-Trek | +16” | |
| 57 | 🇳🇱 Milan VaderPinarello-Q36.5 Pro Cycling Team | +16” | |
| 58 | 🇦🇺 Matthew FoxLotto Intermarché | +16” | |
| 59 | 🇬🇧 Owain DoullTeam Visma | Lease A Bike | +16” | |
| 60 | 🇵🇹 Afonso EulálioBahrain Victorious | +16” | |
| 61 | 🇬🇧 Max WalkerEF Education-Easypost | +16” | |
| 62 | 🇨🇭 Robin FroidevauxTudor Pro Cycling Team | +16” | |
| 63 | 🇩🇰 Mathias NorsgaardLidl-Trek | +16” | |
| 64 | 🇫🇷 Enzo PaleniGroupama-Fdj United | +16” | |
| 65 | 🇳🇴 Martin BuggeUno-X Mobility | +16” | |
| 66 | 🇧🇪 Jarno WidarLotto Intermarché | +16” | |
| 67 | 🇫🇷 Tom DonnenwirthGroupama-Fdj United | +16” | |
| 68 | 🇩🇰 Mikkel HonoréEF Education-Easypost | +16” | |
| 69 | 🇧🇪 Steff CrasSoudal Quick-Step | +16” | |
| 70 | 🇳🇱 Loe van BelleTeam Visma | Lease A Bike | +16” | |
| 71 | 🇬🇧 Sean FlynnTeam Picnic Postnl | +16” | |
| 72 | 🇧🇪 Ilan van WilderSoudal Quick-Step | +16” | |
| 73 | 🇮🇪 Dillon CorkeryTeam Picnic Postnl | +16” | |
| 74 | 🇨🇳 Yutao ShenChina | +16” | |
| 75 | 🇳🇴 Torstein TræenUno-X Mobility | +16” | |
| 76 | 🇨🇴 Diego Pescador CastroMovistar Team | +16” | |
| 77 | 🇩🇰 Tobias SvarreUno-X Mobility | +16” | |
| 78 | 🇺🇸 Artem ShmidtNetcompany Ineos | +16” | |
| 79 | 🇲🇨 Victor LangellottiXDS Astana Team | +16” | |
| 80 | 🇨🇳 Haoyu SuXDS Astana Team | +16” | |
| 81 | 🇮🇱 Rotem TeneNSN Cycling Team | +16” | |
| 82 | 🇫🇷 Clément Braz AfonsoGroupama-Fdj United | +16” | |
| 83 | 🇧🇪 Maxim van GilsRed Bull-Bora-Hansgrohe | +16” | |
| 84 | 🇫🇷 Adrien BoichisRed Bull-Bora-Hansgrohe | +16” | |
| 85 | 🇩🇪 Lennard KämnaLidl-Trek | +16” | |
| 86 | 🇱🇻 Emils LiepinsPinarello-Q36.5 Pro Cycling Team | +16” | |
| 87 | 🇪🇨 Harold Martin Lopez GranizoXDS Astana Team | +16” | |
| 88 | 🇳🇱 Max van der MeulenBahrain Victorious | +16” | |
| 89 | 🇩🇰 Sebastian Kolze ChangiziTudor Pro Cycling Team | +16” | |
| 90 | 🇰🇿 Alexey LutsenkoNSN Cycling Team | +16” | |
| 91 | 🇩🇰 Peter HansenNetcompany Ineos | +16” | |
| 92 | 🇺🇸 William BartaTudor Pro Cycling Team | +16” | |
| 93 | 🇧🇪 Sébastien GrignardLotto Intermarché | +16” | |
| 94 | 🇳🇿 Reuben ThompsonLotto Intermarché | +16” | |
| 95 | 🇪🇸 Javier Romo OliverMovistar Team | +16” | |
| 96 | 🇧🇪 Brent van MoerPinarello-Q36.5 Pro Cycling Team | +16” | |
| 97 | 🇫🇷 Rémy RochasGroupama-Fdj United | +16” | |
| 98 | 🇳🇱 Timo De JongTeam Picnic Postnl | +16” | |
| 99 | 🇩🇪 Emil HerzogRed Bull-Bora-Hansgrohe | +16” | |
| 100 | 🇮🇪 Jamie MeehanCofidis | +16” | |
| 101 | 🇨🇴 Daniel Felipe Martinez PovedaRed Bull-Bora-Hansgrohe | +16” | |
| 102 | 🇪🇸 Oscar Rodriguez GaraicoecheaNetcompany Ineos | +16” | |
| 103 | 🇩🇪 Emanuel BuchmannCofidis | +16” | |
| 104 | 🇪🇸 Marc SolerUAE Team Emirates XRG | +16” | |
| 105 | 🇨🇴 Brandon RiveraNetcompany Ineos | +16” | |
| 106 | 🇮🇹 Davide FormoloMovistar Team | +16” | |
| 107 | 🇺🇸 Andrew AugustNetcompany Ineos | +16” | |
| 108 | 🇧🇪 Rune HerregodtsUAE Team Emirates XRG | +16” | |
| 109 | 🇳🇱 Daan HooleDecathlon CMA CGM Team | +16” | |
| 110 | 🇪🇸 Carlos VeronaLidl-Trek | +16” | |
| 111 | 🇮🇹 Samuele BattistellaEF Education-Easypost | +16” | |
| 112 | 🇩🇰 Julius JohansenUAE Team Emirates XRG | +16” | |
| 113 | 🇨🇦 Nickolas ZukowskyPinarello-Q36.5 Pro Cycling Team | +16” | |
| 114 | 🇫🇷 Baptiste VeistrofferLotto Intermarché | +16” | |
| 115 | 🇮🇹 Andrea BagioliLidl-Trek | +16” | |
| 116 | 🇬🇧 Simon CarrCofidis | +16” | |
| 117 | 🇳🇴 Tord GudmestadDecathlon CMA CGM Team | +42” | |
| 118 | 🇩🇪 Niklas BehrensTeam Visma | Lease A Bike | +45” | |
| 119 | 🇧🇪 Edward PlanckaertAlpecin-Premier Tech | +45” | |
| 120 | 🇩🇰 Søren Kragh AndersenLidl-Trek | +45” | |
| 121 | 🇧🇪 Laurenz RexSoudal Quick-Step | +45” | |
| 122 | 🇧🇪 Dries De PooterTeam Jayco Alula | +46” | |
| 123 | 🇧🇪 Vlad van MechelenBahrain Victorious | +1’48” | |
| 124 | 🇫🇷 Titouan FontaineGroupama-Fdj United | +1’56” | |
| 125 | 🇧🇪 Robbe GhysDecathlon CMA CGM Team | +2’04” | |
| 126 | 🇧🇪 Warre VangheluweSoudal Quick-Step | +2’26” | |
| 127 | 🇧🇪 Milan FretinCofidis | +2’57” | |
| 128 | 🇧🇪 Stan DewulfDecathlon CMA CGM Team | +3’11” | |
| 129 | 🇬🇧 Oliver PeaceTeam Picnic Postnl | +3’46” | |
| 130 | 🇩🇪 Anton SchifferTeam Visma | Lease A Bike | +5’56” | |
| 131 | 🇳🇱 Arvid De KleijnTudor Pro Cycling Team | +8’43” | |
| 132 | 🇨🇴 Juan Sebastian Molano BenavidesUAE Team Emirates XRG | +8’43” | |
| 133 | 🇨🇳 Binyan MaChina | +8’43” | |
| 134 | 🇧🇪 Florian VermeerschUAE Team Emirates XRG | +8’43” | |
| 135 | 🇱🇺 Arthur KluckersTudor Pro Cycling Team | +8’43” | |
| 136 | 🇨🇳 Ruidong WangChina | +11’08” | |
| 137 | 🇸🇮 Žak ErženBahrain Victorious | +11’08” | |
| 138 | 🇦🇺 Brady GilmoreNSN Cycling Team | +11’08” | |
| 139 | 🇦🇺 Kaden Alexander GrovesAlpecin-Premier Tech | +11’08” | |
| 140 | 🇮🇹 Daniel SkerlBahrain Victorious | +11’08” | |
| 141 | 🇨🇳 Chenli ZhaoChina | +11’08” | |
| 142 | 🇳🇱 Oscar RiesebeekAlpecin-Premier Tech | +11’08” | |
| 143 | 🇧🇪 Jonas RickaertAlpecin-Premier Tech · bonuses 1” | 1” | +11’36” |
| 144 | 🇦🇺 Jarrad Eriks DriznersRed Bull-Bora-Hansgrohe | +11’37” | |
| 145 | 🇧🇪 Ayco BastiaensSoudal Quick-Step | +12’35” | |
| 146 | 🇨🇳 Chenglu LiuChina | +13’05” | |
| 147 | 🇨🇳 Haijie HuChina | +13’05” | |
| 148 | 🇧🇪 Dries De BondtTeam Jayco Alula · bonuses 2” | 2” | +15’37” |
The other classifications
Points
blue jersey| Pos. | Rider | Points |
|---|---|---|
| 1 | 🇫🇷 Paul MagnierSoudal Quick-Step | 25 |
| 2 | 🇳🇱 Frits BiesterbosTeam Picnic Postnl | 15 |
| 3 | 🇩🇪 Max KanterXDS Astana Team | 15 |
| 4 | 🇳🇴 Fredrik DversnesUno-X Mobility | 12 |
| 5 | 🇦🇺 Sam WelsfordNetcompany Ineos | 10 |
| 14 | 🇮🇹 Matteo MilanGroupama-Fdj United · the best Italian | 5 |
Mountains
blue polka-dot jersey| Pos. | Rider | Points |
|---|---|---|
| 1 | 🇵🇹 Afonso EulálioBahrain Victorious | 10 |
| 2 | 🇦🇺 Rudy PorterTeam Jayco Alula | 6 |
| 3 | 🇫🇷 Rémy RochasGroupama-Fdj United | 4 |
Young riders
white jersey| Pos. | Rider | Time |
|---|---|---|
| 1 | 🇫🇷 Paul MagnierSoudal Quick-Step | 6h45’26” |
| 2 | 🇳🇱 Frits BiesterbosTeam Picnic Postnl | +6” |
| 3 | 🇳🇱 Olav KooijDecathlon CMA CGM Team | +12” |
| 4 | 🇳🇴 Martin TjøttaUno-X Mobility | +13” |
| 5 | 🇮🇱 Oded KogutNSN Cycling Team | +16” |
| 6 | 🇮🇹 Matteo MilanGroupama-Fdj United · the best Italian | +16” |
Teams
| Pos. | Team | Time |
|---|---|---|
| 1 | NSN Cycling Team | 20h17’06” |
| 2 | Team Picnic Postnl | s.t. |
| 3 | Groupama-Fdj United | s.t. |
| 4 | Pinarello-Q36.5 Pro Cycling Team | s.t. |
| 5 | Uno-X Mobility | s.t. |
The fagIAno · The receipt for stage 2
Frits Biesterbos won: we had fourteen riders ahead on our list.
We had given the winner 0.7%.
- Our favourite
- Olav Kooij (30%): finished 3rd.
- How it ended
- Bunch sprint, a scenario we had given 91%.
The full receipt
- Olav Kooij30%
- Paul Magnier26%
- Jordi Meeus9.8%
- Max Kanter5%
- Arvid De Kleijn3%
- 15th Frits Biesterbos won0.7%
- How it ends
- Bunch sprint it ended like this91%
- The breakaway makes it7.9%
- A finish among the GC riders1.1%
Log loss 4.91: −ln of the probability we gave the winner, among the actual starters; the lower, the better. Frozen on October 13 at 21:33, before the start: they no longer change.
The experts: log loss 6.05, from the 10/13/2026 prediction by cyclinguptodate.com.
Fingerprint 49174f48bd347c8c…