Hello, Giro d’Italia Gamers!
STAGE Grade: C+
I rate today’s stage C+. The race took place in front of the Colisseum. That’s worth a few stars. It was a good sprint, not great. That’s worth a few stars. That’s all I can say about this stage.
Route: 3/5 GC: 0/5 Tactics: 1/5 Sprint: 4/5 Surprises: 0/5
The last stage of a Grand Tour stage usually makes my job easy. Champagne for the winner, pictures of the teams of the all winners. Cycling is a team sport, even the team cars rolled to the front when the Visma – Lease-a-Bike team was curb-to-curb, champagne in hand and bib number 173 (for Wilco Kelderman) held up. A team sport.
Filippo Ganna went in the attack 18 kilometers from the end. Jasper Stuyven jumped with him, as did Matteo Sobrero. For 15 kilometers Ganna time-trialed ahead of the peloton, with a passive Sobrero behind him, and Stuyven behind him.
I’ve no idea why Ganna did that. Stuyven wasn’t going to work — he has Jonathan Milan in the peloton. Sobrero might have worked, he had nobody to support in the peloton, really. But he didn’t. Now, Sobrero is engaged to Ganna’s sister. They consider each other family. Was there some family affair going on? Did Ganna hope he could launch Sobrero? I’ve no idea.
The peloton caught them, of course. Just in time for Stuyven to start doing his lead-out work for Milan.
A few years ago, Dylan Groenewegen was the most hated sprinter in the peloton. A cowboy, a kamikaze. Widely held responsible for Fabio Jakobsen near-fatal crash, and suspended from cycling for a long time because of it. Now he’s racing for Unibet Rose Rockets and everyone loves that team, and now they like Groenewegen too. Okay. How fickle.
Anyway: Groenewegen was aggressive in that sprint, and I thought he had set himself up perfectly. His lead-out was struggling to set the pace, but he muscled his way in Paul Magnier’s wheel. The most sought-after position in the entire peloton. Watch it back, it was an impressive series of moves from Groenewegen. Into the final flick-flock it was Stuyven, Magnier, Groenewegen in front. There’s no reason for Groenewegen to lose that sprint.
But lose it he did. For some reason, Magnier was not a factor in this sprint. That forced Groenewegen to go early, and Milan and several others easily went around him. Milan came from halfway to nowhere and too an emphatic win.
Ben Turner attacked at some point and the only rider who went with him was Andrea Mifsud, our Team Polti – VisitMalta rider. Mifsud is Maltese, and I thought: he fits right in with those Italians. The official langagues in Malta are English and Maltese, but practically everyone speaks Italian. Think again, though: Mifsud was raised in France. Doesn’t mean he doesn’t speak Italian, but doesn’t mean he does, either.
Anyway, he was caught by the peloton without fanfare. Later on, when Ganna and his group were captured, Mirco Maestri gave it a go. An absolutely perfect attack, from the old-school cycling textbook. Attack just as the chasers catch the break.
It didn’t work, of course, but only because the stakes were too high. They weren’t going to let a Pro Tour rider embarrass the sprint teams in this fashion.
Although that almost did happen. The only rider who kept up with Milan was Giovanni Lonardi. Lonardi is Polti’s crack sprinter. Every year once or twice he ends up on a World Tour podium, even in the Giro d’Italia both in 2024 and 2025. He couldn’t beat Milan but second place does look good, it added a lot of UCI points to Polti’s total as well as prize money.
Overall, I think Polti should be happy with the outcome in their 2026 Giro d’Italia. Winners of the fuga competition, second and third in the traguardo volante competition, a number of good stage results — a total of 49,461 euros. Eleventh-most, better than many of the big teams. More than double what VF Group - Bardiani CSF – Faizanè raked in, too. These things matter in Italy.
I’m counting 622 UCI points for Polti. That’s a lot of points for them and, fun fact: they remain the highest-ranked Italian pro cycling team. Because there are no, I didn’t realize this, but there are no World Tour teams based in Italy. Which blows my mind.
Anyway, good Giro for Polti. See you next year, ragazzi!
Watch the final kilometers HERE.
Spoiler alert: there were no changes in the standings from the stage, but Team Charles and Team Hugo traded places after the Final Standings bonus points were awarded.
For the stage, Team Amalia took their expected sprint win (most points from the stages, most points overall, most riders in the Top-25 — four), with Team Sam behind them and Team Ansel (most points from classifications) and Team Grace in close pursuit. Next were Team Tadej, then Team Charles and Team Hugo tied for sixth, and Team Felix finished eighth.
Team Ansel were the strongest in the Final Standings, as we knew they would. Eleven riders in the Top-25 of the general classification, most points from the Maglia Ciclamino competition, most points from the Maglia Azzura competition.
Congratulations to Team Grace for winning the game. It was the closest game in three years, so thanks to Team Ansel as well for doing their part.
Thirty-four sleeps until the Tour de France. Of course, several of you are going to continue to receive race reports for another week, on account of the Giro d’Italia Women. I want to thank everyone for playing.
Arrivederci!
Standings after stage 21:
|
Rank |
Name |
Points |
MOVES |
|
1 |
Team Grace* |
2700 |
0 |
|
2 |
Team Ansel* |
2645 |
0 |
|
3 |
Team Sam* |
2389 |
0 |
|
4 |
Team Tadej* |
2308 |
0 |
|
5 |
Team Amalia* |
2244 |
0 |
|
6 |
Team Charles* |
2205 |
0 |
|
7 |
Team Hugo* |
2183 |
0 |
|
8 |
Team Felix* |
1826 |
0 |
Standings after Final Standings bonus points:
|
Rank |
Name |
Points |
MOVES |
|
1 |
Team Grace* |
3116 |
0 |
|
2 |
Team Ansel* |
3095 |
0 |
|
3 |
Team Sam* |
2706 |
0 |
|
4 |
Team Tadej* |
2650 |
0 |
|
5 |
Team Amalia* |
2576 |
0 |
|
6 |
Team Hugo* |
2565 |
1 |
|
7 |
Team Charles* |
2561 |
-1 |
|
8 |
Team Felix* |
2145 |
0 |
Standings after stage 21 (including adults):
|
Rank |
Name |
Points |
MOVES |
|
1 |
Team Grace* |
2700 |
0 |
|
2 |
Team Ansel* |
2645 |
0 |
|
3 |
Team Amelia |
2566 |
0 |
|
4 |
Team Julie |
2528 |
1 |
|
5 |
Team Fran |
2525 |
-1 |
|
6 |
Team Doug |
2485 |
0 |
|
7 |
Team Craig |
2398 |
3 |
|
8 |
Team Kent |
2395 |
-1 |
|
9 |
Team Sam* |
2389 |
-1 |
|
10 |
Team Laurens |
2376 |
-1 |
|
11 |
Team Corsa |
2346 |
1 |
|
12 |
Team Paul |
2329 |
-1 |
|
13 |
Team Tadej* |
2308 |
0 |
|
14 |
Team Amalia* |
2244 |
0 |
|
15 |
Team Charles* |
2205 |
0 |
|
16 |
Team Hugo* |
2183 |
0 |
|
17 |
Team Zach |
2178 |
1 |
|
18 |
Team Adam |
2148 |
-1 |
|
19 |
Team Rob |
2111 |
0 |
|
20 |
Team Jake |
2055 |
0 |
|
21 |
Team Kari |
1834 |
1 |
|
22 |
Team Felix* |
1826 |
-1 |
|
23 |
Team Kate |
1700 |
0 |
|
24 |
Team Jonwaine |
1630 |
0 |
|
25 |
Team Roslyn |
585 |
0 |
Standings after Final Standings bonus points (including adults):
|
Rank |
Name |
Points |
MOVES |
|
1 |
Team Grace* |
3116 |
0 |
|
2 |
Team Ansel* |
3095 |
0 |
|
3 |
Team Amelia |
2980 |
0 |
|
4 |
Team Julie |
2930 |
0 |
|
5 |
Team Doug |
2929 |
1 |
|
6 |
Team Fran |
2897 |
-1 |
|
7 |
Team Kent |
2787 |
1 |
|
8 |
Team Paul |
2741 |
4 |
|
9 |
Team Craig |
2736 |
-2 |
|
10 |
Team Laurens |
2728 |
0 |
|
11 |
Team Corsa |
2724 |
0 |
|
12 |
Team Sam* |
2706 |
-3 |
|
13 |
Team Tadej* |
2650 |
0 |
|
14 |
Team Amalia* |
2576 |
0 |
|
15 |
Team Hugo* |
2565 |
1 |
|
16 |
Team Charles* |
2561 |
-1 |
|
17 |
Team Adam |
2540 |
1 |
|
18 |
Team Rob |
2503 |
1 |
|
19 |
Team Zach |
2502 |
-2 |
|
20 |
Team Jake |
2375 |
0 |
|
21 |
Team Kari |
2195 |
0 |
|
22 |
Team Felix* |
2145 |
0 |
|
23 |
Team Jonwaine |
1965 |
1 |
|
24 |
Team Kate |
1948 |
-1 |
|
25 |
Team Roslyn |
600 |
0 |
Complete breakdown of points from stage 21:
|
Name |
STAGE RESULTS |
PINK JERSEY |
PURPLE JERSEY |
BLUE JERSEY |
WHITE JERSEY |
POINTS/CLASS |
TOTAL |
PREVIOUS |
CUM. TOTAL |
|
Team Amalia* |
107 |
31 |
10 |
6 |
0 |
47 |
154 |
2090 |
2244 |
|
Team Ansel* |
74 |
45 |
10 |
11 |
0 |
66 |
140 |
2505 |
2645 |
|
Team Charles* |
64 |
41 |
5 |
6 |
0 |
52 |
116 |
2089 |
2205 |
|
Team Felix* |
5 |
28 |
1 |
6 |
3 |
38 |
43 |
1783 |
1826 |
|
Team Grace* |
74 |
41 |
10 |
11 |
3 |
65 |
139 |
2561 |
2700 |
|
Team Hugo* |
59 |
41 |
5 |
11 |
0 |
57 |
116 |
2067 |
2183 |
|
Team Sam* |
93 |
30 |
10 |
9 |
0 |
49 |
142 |
2247 |
2389 |
|
Team Tadej* |
78 |
37 |
5 |
6 |
3 |
51 |
129 |
2179 |
2308 |
Complete breakdown of points from Final Standings bonus points:
|
Name |
STAGE RESULTS |
PINK JERSEY |
PURPLE JERSEY |
BLUE JERSEY |
WHITE JERSEY |
POINTS/CLASS |
TOTAL |
PREVIOUS |
CUM. TOTAL |
|
Team Amalia* |
304 |
0 |
18 |
10 |
0 |
28 |
332 |
2244 |
2576 |
|
Team Ansel* |
412 |
0 |
18 |
20 |
0 |
38 |
450 |
2645 |
3095 |
|
Team Charles* |
338 |
0 |
8 |
10 |
0 |
18 |
356 |
2205 |
2561 |
|
Team Felix* |
308 |
0 |
1 |
10 |
0 |
11 |
319 |
1826 |
2145 |
|
Team Grace* |
378 |
0 |
18 |
20 |
0 |
38 |
416 |
2700 |
3116 |
|
Team Hugo* |
354 |
0 |
8 |
20 |
0 |
28 |
382 |
2183 |
2565 |
|
Team Sam* |
282 |
0 |
18 |
17 |
0 |
35 |
317 |
2389 |
2706 |
|
Team Tadej* |
324 |
0 |
8 |
10 |
0 |
18 |
342 |
2308 |
2650 |
Complete breakdown of points from stage 21 (including adults):
|
Team Adam |
35 |
37 |
5 |
11 |
0 |
53 |
88 |
2060 |
2148 |
|
Team Amalia* |
107 |
31 |
10 |
6 |
0 |
47 |
154 |
2090 |
2244 |
|
Team Amelia |
78 |
45 |
5 |
11 |
0 |
61 |
139 |
2427 |
2566 |
|
Team Ansel* |
74 |
45 |
10 |
11 |
0 |
66 |
140 |
2505 |
2645 |
|
Team Charles* |
64 |
41 |
5 |
6 |
0 |
52 |
116 |
2089 |
2205 |
|
Team Corsa |
74 |
41 |
10 |
11 |
0 |
62 |
136 |
2210 |
2346 |
|
Team Craig |
111 |
31 |
10 |
11 |
3 |
55 |
166 |
2232 |
2398 |
|
Team Doug |
54 |
45 |
5 |
11 |
3 |
64 |
118 |
2367 |
2485 |
|
Team Felix* |
5 |
28 |
1 |
6 |
3 |
38 |
43 |
1783 |
1826 |
|
Team Fran |
69 |
37 |
10 |
11 |
0 |
58 |
127 |
2398 |
2525 |
|
Team Grace* |
74 |
41 |
10 |
11 |
3 |
65 |
139 |
2561 |
2700 |
|
Team Hugo* |
59 |
41 |
5 |
11 |
0 |
57 |
116 |
2067 |
2183 |
|
Team Jake |
59 |
30 |
5 |
11 |
0 |
46 |
105 |
1950 |
2055 |
|
Team Jonwaine |
18 |
32 |
1 |
6 |
0 |
39 |
57 |
1573 |
1630 |
|
Team Julie |
93 |
45 |
10 |
6 |
0 |
61 |
154 |
2374 |
2528 |
|
Team Kari |
41 |
34 |
1 |
11 |
0 |
46 |
87 |
1747 |
1834 |
|
Team Kate |
41 |
22 |
1 |
9 |
0 |
32 |
73 |
1627 |
1700 |
|
Team Kent |
78 |
45 |
5 |
6 |
0 |
56 |
134 |
2261 |
2395 |
|
Team Laurens |
93 |
33 |
10 |
6 |
1 |
50 |
143 |
2233 |
2376 |
|
Team Paul |
50 |
38 |
10 |
12 |
0 |
60 |
110 |
2219 |
2329 |
|
Team Rob |
59 |
41 |
5 |
11 |
0 |
57 |
116 |
1995 |
2111 |
|
Team Roslyn |
41 |
0 |
2 |
0 |
0 |
2 |
43 |
542 |
585 |
|
Team Sam* |
93 |
30 |
10 |
9 |
0 |
49 |
142 |
2247 |
2389 |
|
Team Tadej* |
78 |
37 |
5 |
6 |
3 |
51 |
129 |
2179 |
2308 |
|
Team Zach |
93 |
30 |
10 |
11 |
0 |
51 |
144 |
2034 |
2178 |
Complete breakdown of points from Final Standings bonus points:
|
Name |
STAGE RESULTS |
PINK JERSEY |
PURPLE JERSEY |
BLUE JERSEY |
WHITE JERSEY |
POINTS/CLASS |
TOTAL |
PREVIOUS |
CUM. TOTAL |
|
Team Adam |
364 |
0 |
8 |
20 |
0 |
28 |
392 |
2148 |
2540 |
|
Team Amalia* |
304 |
0 |
18 |
10 |
0 |
28 |
332 |
2244 |
2576 |
|
Team Amelia |
386 |
0 |
8 |
20 |
0 |
28 |
414 |
2566 |
2980 |
|
Team Ansel* |
412 |
0 |
18 |
20 |
0 |
38 |
450 |
2645 |
3095 |
|
Team Charles* |
338 |
0 |
8 |
10 |
0 |
18 |
356 |
2205 |
2561 |
|
Team Corsa |
340 |
0 |
18 |
20 |
0 |
38 |
378 |
2346 |
2724 |
|
Team Craig |
300 |
0 |
18 |
20 |
0 |
38 |
338 |
2398 |
2736 |
|
Team Doug |
416 |
0 |
8 |
20 |
0 |
28 |
444 |
2485 |
2929 |
|
Team Felix* |
308 |
0 |
1 |
10 |
0 |
11 |
319 |
1826 |
2145 |
|
Team Fran |
334 |
0 |
18 |
20 |
0 |
38 |
372 |
2525 |
2897 |
|
Team Grace* |
378 |
0 |
18 |
20 |
0 |
38 |
416 |
2700 |
3116 |
|
Team Hugo* |
354 |
0 |
8 |
20 |
0 |
28 |
382 |
2183 |
2565 |
|
Team Jake |
292 |
0 |
8 |
20 |
0 |
28 |
320 |
2055 |
2375 |
|
Team Jonwaine |
324 |
0 |
1 |
10 |
0 |
11 |
335 |
1630 |
1965 |
|
Team Julie |
374 |
0 |
18 |
10 |
0 |
28 |
402 |
2528 |
2930 |
|
Team Kari |
340 |
0 |
1 |
20 |
0 |
21 |
361 |
1834 |
2195 |
|
Team Kate |
230 |
0 |
1 |
17 |
0 |
18 |
248 |
1700 |
1948 |
|
Team Kent |
374 |
0 |
8 |
10 |
0 |
18 |
392 |
2395 |
2787 |
|
Team Laurens |
324 |
0 |
18 |
10 |
0 |
28 |
352 |
2376 |
2728 |
|
Team Paul |
372 |
0 |
18 |
22 |
0 |
40 |
412 |
2329 |
2741 |
|
Team Rob |
364 |
0 |
8 |
20 |
0 |
28 |
392 |
2111 |
2503 |
|
Team Roslyn |
12 |
0 |
3 |
0 |
0 |
3 |
15 |
585 |
600 |
|
Team Sam* |
282 |
0 |
18 |
17 |
0 |
35 |
317 |
2389 |
2706 |
|
Team Tadej* |
324 |
0 |
8 |
10 |
0 |
18 |
342 |
2308 |
2650 |
|
Team Zach |
286 |
0 |
18 |
20 |
0 |
38 |
324 |
2178 |
2502 |
-Laurens.