I knew what I was getting myself into. Sort of.
By my count I’ve ridden around 60 laps of Richmond’s 2015 UCI Worlds course in my storied Zwift racing B-cat career. It’s a route I know like the back of my hand, and one I love to race.
But it’s also a brutal course for me. Libby Hill puts me on the rivet. 23rd Street burns another match. Then the long slog up Governor Street drains whatever I’ve got left.
And this was the third week of Zwift Racing League – but really the first week, because the first two weeks had been used as qualifying heats to place us in competitive divisions heading into this third race. My team had done well in the qualifying heats, placing first in our division – so we got placed in one of the top divisions (EMEA E2 B1). Scouting the other teams, it was clear we were up against stronger riders than the previous weeks.
This was always going to hurt. I just didn’t realize how much.
Warmup
Our race kicked off at 11:20am, so I ate a good breakfast (oatmeal with blueberries), got a few hours of work done, then turned my attention to race prep.
Three pieces of caffeine gum got 300mg of elixir in my veins. PR lotion on the legs got the bicarb into the system. And I even drank a terrible cup of beet juice from a can of powder I found sitting around. Why not?
Then it was off to Tempus Fugit for a warmup. Where I ran into a bit of a hitch – the built-in Bluetooth on my Zwifting PC wasn’t working! I could connect up via ANT+, but I knew from past experience this was a bad idea – I’m pretty sure a nearby neighbor has their WiFi on a channel that interferes with ANT+.
So I rebooted. Viola! Bluetooth was back. Assioma Duo pedals connected via Bluetooth, along with heart rate and my KICKR 5 via ANT+. I clicked to join the event early, saving my spot near the front of the line. (It’s like a virtual call up, except you qualify by clicking fast instead of being fast.) Then I left the event and rode for a while, putting in a few short efforts to get my heart rate up. Soon enough, it was time to join the pens for real. Let’s race!
The Start
Knowing we had a lot of strong riders in our group of 137 Bs, I stayed very alert near the front of the pack as the race began. I didn’t want to miss the big move if a strong team decided to force a split early.
But that didn’t happen. Not even close, in fact. I averaged just 318W in the first 2 minutes in order to stay near the front – lower than most races.
Through the first sprint, then the second, the pace picked up a bit – but not enough to make it a sufferfest. Clearly, riders were keeping their powder dry, waiting for the climbs on the back half of the first lap. The punchy climbers wanted to put in big digs on the climbs in order to drop the sprinters. And the sprinters (like myself) were trying to conserve as much as possible, know we’d need every bit of power we could muster in order to hang onto the front of the race.
The First Climbs
As we neared Libby’s cobbles, riders began to push for a position near the front of the pack. I slid into ~50th place, then activated my feather powerup (along with half the peloton) as we hit the cobbles:
I hadn’t even reached the final turn when KOM times began popping up… 1:13. 1:14.
This was not a good sign. My previous best up Libby Hill was 1:27.
I kept hammering, knowing this was the move. Came over the top in 39th place, with riders strung out up the road. No powerup. %&#! I pushed the grab the wheels ahead, but I could see a front pack coalescing 10 seconds up the road. Hammer the descent. Sprint up 23rd Street, channeling my inner Sagan. The front group was just 3-4 seconds ahead, so close!
Then they crested the hill and flew away, and my heart and lungs gave up. That was it. I’d lost the front. I’d lost the race.
The Chase
Within a minute or two, a chase group of ~20 riders had formed behind the front pack of ~25. I couldn’t get a precise count, but I knew the front group didn’t quite have 30 riders in it, which meant a handful of riders from this chase group could still get extra points. (Zwift Racing League is entirely points-based, and you are awarded extra points for 1st through 30th place across the finish line. 31st and slower all receive just 1 point.)
It would have been easy to just say “I probably won’t finish higher than 30th. I’ll just sit in and get my extra point.” (And honestly, this is something I’d like to see changed in the way ZRL points are structured – awarding extra points down to 50 or more places might make things more interesting for riders who aren’t in the front group.) But I resolved myself to go all in and do everything I could to get extra points – to finish in the top 30.
First order of business… recover. On the flat half of the second lap, I took it easy. We all did, I think! I averaged just 258 watts for this portion. A welcome respite.
The Finish
Heading into the second Libby climb, DIRT teammate Tim Hanson (who was riding for a separate DIRT team in this race) messaged me: would I want to follow his wheel as he put in a suicide attack heading into the climb?
Tim is a strong racer, but was convinced he didn’t have the legs to hang with our group over the final climbs of the race. So he wanted to put in a final dig to help a teammate.
At first I declined – I wasn’t sure how strong I’d be on these climbs, so putting in an extra attack seemed a bit foolish. But then I remembered that, when I get dropped from the front of B races, I’m typically able to finish at or near the front of my chase group. Maybe I was one of the stronger riders in this bunch, and a quick dig would thin out the pack?
I messaged Tim and told him I was in. Nothing ventured nothing gained, right?
Soon enough, he messaged “Go” and it was on! I activated my aero powerup, got on his wheel, and jumped away from the pack before the Libby KOM line began. The front pack was just 15 seconds ahead… so close, yet so far away. And my chase group was just 2 seconds behind, but closing fast.
Tim dropped off, and I was in no-man’s land, in 24th place. As I hit the cobbles, the front of my chase group came around me. “Don’t get dropped now!” I told myself. My attack hadn’t shed a single rider, but it had certainly made them work harder heading into this tough climb. If I could keep pushing and hang with the front of my chase group, I would have a reduced pack to contend with for extra points in the final minutes.
Over the top of Libby we were strung out, with the front of my pack a few seconds ahead. Those were the extra points. If I didn’t catch them now, all the hard work would have been for nothing – I would earn just one team point, the same as if I’d finished in last place. I pushed hard, activating a draft boost to help me get back in touch. “YOU GOT THIS!!” Tim messaged from 17 seconds back. That’s a solid teammate right there, folks. “Don’t let Tim die in vain!” I told myself.
Up 23rd street, I was back in the group, which had been reduced to only 12 riders. Much better odds.
I used my last powerup, a feather, as we turned the steep right on Governor Street. Riders began to hammer off the front, but I knew we had a long way to the line. We turned left onto the finishing straight, and I was in 30th place, with other riders nearby. Extra points. So close…
I shifted down and stood up to hammer the final stretch, but I was so gassed that my form was terrible. I sat back down. Shift up. Tighten the core. High cadence. All in to the finish.
29th place. 28th. 27th. 26th. I was in a dark place, emptying the tank and then some. How was I still pedaling? Monica was yelling and jumping around, “Go go go! You’ve got this!” My 17-year-old daughter was watching from the doorway, no doubt horrified, wondering how anyone could work this hard at a video game.
Watching the video replay, I almost caught the next guy up the road… but just missed doing so as a rider from behind pipped me at the line. 27th place.
See my ride on Zwift.com >
See my activity on Strava >
See race results on ZwiftPower >
Watch the video
Team Result
The race results are still being finalized by WTRL, but ZwiftPower currently shows me in 22nd place, with my teammate Scott Olsen finishing in the front pack in 17th place. We are the only two from our team of six who got extra points, which probably places us somewhere near the bottom of the top 1/3 for this race.
One of our strongest riders encountered a weird Zwift mechanical – he wasn’t getting any draft effect! He got spat out the back quite quickly. Bummer.
Takeaways
I’m not sure I could have played this race differently for a better result. That front group of riders was simply too strong for me to hang with, so it was really a question of who I could beat in our chase group. Did Tim’s kamikaze attack help me? I think it probably did, but it’s hard to say for sure – perhaps sitting in and conserving would have left me with a bit more in the finish.
That was the hardest final minute race minute of my life. I gave it all I had, and I’m still feeling the effort 2 days later! Looking at my power curve in Strava, the final 7-8 minutes of this race were a new power PB for me in 2020. 351W for 8 minutes – happy with that.
The more I race against top Bs on Zwift, the more I’m convinced that 1-3 minute power is the trick to doing well in most Zwift races. Sure, a high FTP is important, and you’ve got to have a decent sprint if you’re doing flatter races. But it’s that 1-3 minute power that lets you hang in on the short climbs that break up the pack and force the key selections. I’m going to do more training in that time window, since 1-3 minute power is not my strength.
Your Thoughts
Did you race on Tuesday? How’d it go? Share your story below!