The sixth and final race of Zwift Racing League 2021/22 Season 3 was held yesterday, and it was the Queen Stage, featuring the tough Innsbruck KOM on the 2018 UCI Worlds Short Lap route.
Heading into the race my team (the DIRT Roosters) were sitting in 1st place overall, but our position was far from secure. We had a fire in our bellies, though – we had worked our way up from Division 5 to 1, and this was our chance to win it all in the Bs!
Winning the season would require a strong finish in this race, but we were ready with a solid team that has a good mix of climbers and sprinters. We divided the team into two groups, and each group had its own strategy:
- Our three best climbers (Antoine, Thomas, and Arjen) try to hold onto the front pack and even grab FTS/FAL points on the KOM. If they’re in the front group for the sprint, go for FAL there as well.
- Our three best sprinters (Clem, Dejan, and myself) don’t blow up on the KOM, but try to hold a good pack position then go for FTS points on the sprint.
That was our plan… but how did it really work out? Here’s the story of the Roosters’ final race of the ZRL season.
Race Prep
I did what I could to be fresh and prepared for the race, following my normal routine:
- Easy effort the day before
- Plenty of sleep the night before
- A clean, carby oatmeal breakfast
- Beet juice two hours before the race
- Caffeine gum – two pieces (300mg), one hour before the race
- PR lotion on my legs about 45 minutes before the race. More bicarb=less burning.
- Pick my bike setup (Tron bike for decent climbing and sprinting) and join the start pens with 30 minutes to go to save my spot in front.
- A nice 30-minute warmup with the C. Cadence crew
My legs felt fresh, and I knew the course well. My personal plan was this:
- Go hard up the KOM, even though I stood no chance of KOM points, in order to stay in a good pack that would carry me to my best finish position
- Hit the sprint hard for FTS points
- Finish well
Start + Climb

The start was easy, which surprised no one. A few riders attacked off the front after a minute or two, which made no sense whatsoever. The Roosters sat in and waited for the real fireworks to begin.
We hit the base of the KOM and the pack began powering up. My goal was to finish the climb as close to the front as possible, but I knew I was outclassed by many of the riders in the field. So optimizing my finish meant striking a balance between pushing hard to hold a wheel and easing off the gas so I wouldn’t blow up.
I pushed hard for the first 5-6 minutes, holding onto the wheels of the front group. Then we hit a particularly steep bit, the pack surged, and I pulled the plug. After that it was just a mental and physical slog as I tried to stay in touch with a small group of riders around me constituting places ~40-50 in a race of 70. Far from impressive, but I had to keep pushing, because as we Roosters say… every point counts!
Teammate Dejan was behind me while Thomas, Antoine, and Arjen were holding their own in the front pack. Clem eventually dropped from the front group and came back to my pack.
I finished the climb in 21:35 (318W average), beating my previous PR by 2 minutes. Then it was time for a long downhill and sweet, sweet recovery.
Recover + Sprint

On the way down our pack swelled a bit as we caught a couple of TBR riders who were up the road. (That was good news since TBR was our closest competition for the overall season.) Our pack now constituted places 35-49, and DIRT teammate Ally had joined us on Discord to help Sean with DS duties. Sean stayed with the front three riders while Ally stayed with the back three, and both of them did a great job of talking and pushing us through the race.
No one in our group pushed hard until we hit the Leg Snapper, then the fireworks began. I’ve got decent 1-minute power which is perfect for the Leg Snapper, but there was no reason to push hard here unless others attacked, since I would be sprinting for FTS points just up the road.
But of course, it’s the Leg Snapper – so someone will always attack. Clem and I followed their wheels as our group strung out, then we recovered a bit on the descent before arriving at the sprint.


I was next to Clem as we neared the sprint, and I spun up my watts, hoping I could give him a bit of a leadout, then he would come around and I could grab his wheel. The leadout part sort of happened, but Clem is so freaking strong that he blew past me like I was standing still!
He took 1st in FTS. I took 13th.
The Finish

The riders were totally strung out with 1.6km to go. I had a TBR rider (Broeshart) just up the road, and he became my carrot as I listened on Discord to Antoine and Thomas dying a thousand deaths in their finish line sprints.
I kept waiting for Broeshart to start his sprint, but when we got to 250m to go and he still hadn’t started, I jumped. Broeshart grabbed my wheel and peaked at some impressive numbers, but eased off just when I thought he was going to come around and pip me at the line. I crossed the line in 37th place, just a wheel ahead.
(36th-40th place all get 15 finishing points in ZRL, so it really didn’t matter if I beat him to the line. But this is cycling…)
See activity on Strava >
See ride on Zwift.com >
See results on ZwiftPower >
Watch the Race Video
Team Result, Code 7
Things got a bit confusing in the hours following the race, as many riders were DQ due to “Code 7”, which WTRL describes as “Rider has exceeded Division Power Limits”.
Here’s what is confusing: the “Division Power Limit” is a secret, and can change between races. It’s a different number from ZwiftPower’s category limit (ZwiftPower says you’re an A if you have three races where 95% of your 20-minute power is 4.0 or more) because WTRL gives you a bit of a buffer. Some racers had calculated the Division Power Limit to be 4.1 in past races, but WTRL can and does change this limit on a per-event basis.
Over the course of the next 18 hours we would see our result bounce around from 1st to 5th as various riders got a Code 7, then the Code 7 disappeared. Clearly WTRL was tweaking the Division Power Limit.
As of now, 22 hours after the race, WTRL shows us in 4th in the provisional results:

We would have taken 1st if Thomas hadn’t received a Code 7 – but that’s just an observation, not a complaint.
Thomas had a calculated FTP (that’s 95% of your best 20-minute power for the race) of 4.167 w/kg, and received a Code 7 DQ. Captain Antoine had an FTP of 4.164 w/kg and did not get a Code 7 because (we think) he’s a lighter rider and was under the absolute watts limit. Maybe. At the time of this post, WTRL’s Division Power Limit for this race seems to be 4.15.
With that 4th place finish we hold onto 1st place for the overall:

Thomas receiving a Code 7 means he can’t race in the two Finals races next week, which is a bummer. But we’re all celebrating with him that he’s now an A on ZwiftPower, an A according to WTRL… and an A in our hearts.
Takeaways
It’s possible that better pacing would have earned me a better time up the KOM – I averaged 356W for the first ~6 minutes trying to hold onto the front group, then 306 for the final ~21 minutes.
But my pack also caught several riders who finished the climb well up the road from us, so finishing with a slightly better time probably wouldn’t have changed my end result much.
It would have been nice to earn at least a few sprint FTS points, but once again I’ve been humbled racing in the B1 division. I’ve consistently been one of the lowest point earners on my team, struggling to grab points with my “good but not great” sprinting, poor climbing, and “smarts only get you so far” finishes.
On the plus side, racing in B1 has consistently pushed me to the limit! I set new 2022 power bests for a big stretch of my power curve between 9 and 26 minutes thanks to that murderous Innsbruck KOM. Most of my teammates saw similar PRs.

An Incredible Rooster Run
If this week’s result holds, that means the Roosters have completed an incredible perfect B-category run in the past 4 seasons…
The Rooster’s first ZRL season was 2020/21 season 2. They were placed in EMEA W B Division 1 and finished second to last. At that time they had a different captain, but current Roosters Antoine, Dejan, Arjen, and Clem were already on the team.
Antoine took over as captain in the next season (2020/21 season 3), and Thomas and I joined the team. WTRL had the Roosters listed in Division 2 just days before the season began, then dropped us to Division 5 just two days before the first race!
We made it our personal mission to prove that we deserved more than a Division 5 slot. And we did just that, winning 1st place that season.
The next season WTRL put us in Division 3. We took 1st place again. Then it was on to Division 2 for the 2021/22 season 2, where Sean joined the team and we took 1st once more.
And now we’ve taken 1st in Division 1. It’s been a hard-fought journey for the Roosters since being relegated after our first season, but it certainly feels good to come back and finish on top, winning four seasons in a row. You couldn’t write a better story.
Your Thoughts
How was your final race of the season? Any power curve bumps or Code 7s? Share below!
An honour to be a tiny part of the Roosters journey. Antoines prep (not just for the Roosters but all the DIRTy Beasts) is 2nd to none, and love reading about the race afterwards. Thanks for putting the time into this Eric, and good luck in the ‘whatever the hell these last races are’. Maybe see you there next Saturday. Good sprinting and smarts will take you a long way on a 13 sprint course with 150 riders!!! 🙂
Ally is an absolute legend! I wouldn’t have done as well as I did this season without his DSing and riding! thanks Ally!
Nothing like a warm-up sprint before a hill climb too eh!
Thanks for the write-up Eric! always a great read and learning lessons from your race breakdowns.
Great writeup Eric. It’s been fun to be on the team these last 2 seasons and I’m looking forward to more great racing with you and the other Roosters!
Good read Eric. And congrats to the Roosters! I’ve been on the other bird team, the DIRTy Ducks from the beginning and we just notched our second win in America’s East B1. Keep up all the good content here. Go DIRT, Roosters and Ducks!
What’s the logic behind DQing people from one race of the season? If you accept a rider into a division based on their power for the season, shouldn’t you let them finish out the season?
Thomas would actually be allowed to ride in additional races, IF there were any left in the regular season. But there aren’t.
Once you complete 3 races without a power DQ, you can continue racing your category all season long. BUT if you exceed the invisible Code 7 limit you will get DQ for that particular race.
Impressive! I had a similar ride.
Hello Eric,
It was a pleasure racing with/against you and Glem. First on the Kom we had 10 seconds advantage, we pushed hard to extend, but your group was too fast and big. Thank you for the leadout on the sprint and Glem for pulling me to 2nd fts. As a lesson I need to follow your advices better and keep always pushing till the end on a sprint, also when visual showed that you were winning. Thank you for the nice competition this race.
I didn’t realize you grabbed 2nd FTS in that sprint, Axel. Well done sir! TBR pushed us to the line this season for sure.
Lets’ see. Thomas is an A according to zwiftpower. And then Antoine lowered his weight by 1kg just for that race. And his avg W/Kg is 4 but he’s not an A? Wow. A lot of shady stuff there.
Hey Chris, if you look at my Zwiftpower history, I always ranged between 60 and 62kg. I regularly update my weight to have the most fair racing possible. In that case it was even risky in terms of DQ. But I’m not an A because my raw watts is below 250w, the minimum to be A. Upgrading is what I’m aiming for since I started zwifting 1,5 years ago. Have a look at my YouTube videos and you’ll see I give all of me at every race without calculating anything 🙂 nothing shady here
318w for >20mins is no joke!
Hey Eric, I was reading the playoff rules earlier today and saw that code 7 only goes to race 5, excluding the last race. I think Thomas will be able to race! https://www.wtrl.racing/wtrl-racing-finals/