Last Thursday’s Crit City race was a fun one, mostly because I finally got to race with a local buddy. Sure, I still lost. Sort of. But there’s something special about riding on Zwift with someone you’ve accompanied for thousands of IRL miles. Sure, it’s virtual–but thanks to Zwift and Discord, it’s also very real.


After missing my usual early-morning Zwift session the workday had gotten away from me. Now it was two in the afternoon and I just wanted to get a hard effort in so I wouldn’t go stir-crazy. So I messaged a few local riding buddies to see if anyone wanted to tackle a Zwift race with me, and my friend Zane came back with an affirmative. We quickly chose an event: Crit City. Bell Lap. 4:45PM. See you then!

Front to back: me, Zane, and another friend riding our local Konocti Challenge imperial last October

Two Riders, One Mission

You have to understand, this was a rare occurrence: Zane and I ride together on Zwift quite a bit, but hardly ever race together since he prefers racing in the A’s. He’s a glutton for punishment, preferring to get shelled by the top riders so he’s better prepared when the outdoor season begins and he’s taking on the P/1/2 field here in Northern California.

Me, most of my races are done because I know I have a shot at the B podium. Sure, some races are purely for training – but I’m much more motivated to go hard if I think I can finish in the front pack.

Zane and I are good friends, but we’re opposites in many ways. He’s the guy you’ll see attacking repeatedly off the front–I’m the guy sitting in and trying to survive. He rides by feel, I love all the data. He is a naturally gifted athlete–and I’m far from that! His FTP puts him right near the top of the B category (325 watts, around 3.9w/kg), while mine is closer 300 watts, around 3.6w/kg.

But that’s one reason we enjoy each other’s company: we learn from watching the other guy, and riding together pushes us to try strategies and workouts we wouldn’t have attempted solo.

Our goal for this race was simple enough: try an attack to see if we can split the group and get away with a small breakaway bunch. (I’ve been wanting to be a part of such a breakaway ever since my first Crit City race, but I have yet to see it work). If we couldn’t get in a break, we would simply stay near the front on the crazy final lap, then go all-in for the sprint finish.

The Start

I tried convincing Zane to attack with me on the first lap up the twisty climb, but he wasn’t into that idea. So we just surfed the wheels near the front as the race began. As we pulled out of the start gate I realized I’d forgotten to switch back to my Tron bike, and was riding the S-Works Venge with Zipp 858 wheels. Not the absolute fastest option, but no time to change now.

There were some strong riders pushing the pace at the front, and our group of 26 was reduced to 14 before the first lap was even finished. That group would basically stay intact for the remainder of the race.

The pack shrunk quickly from 26 to 14

After a couple laps, I was pretty sure we had two riders in the front of our group who would 1) finish the race well over the category limits or 2) blow up within another lap or two. They were constantly throwing down some big wattage on the front, but it was OK because we could sit on their wheels and let them work.

Were they sandbaggers, or just really strong? You really can’t think too much about that in a race situation. Just ride smart. Ride to win!

The Middle

We hit the twisty climb at the start of the third lap and Zane yelled in Discord, “I’m going for a break!”

I would have followed, except he caught me sleeping near the back of the pack. So I let him go. He managed a gap of 4-5 seconds, but good ol’ Hemstad towed us back to him.

Zane a few seconds off the front

Give Breaks (Brakes) a Chance

As we caught Zane I was reminded that breakaways need some help on Crit City–it’s just way too hard to get away, and this makes the races less exciting. Let’s go down a side road for a bit…

Here’s what I would love to see Zwift add to the Crit City course: position-based auto-braking. In a crit, pack position is huge. If you’re at the back of a pack going through tight corners you’ll have to put in a lot more work as the group slows to a crawl then you sprint back up to speed, over and over again. Conversely, if you’re in a 3-man breakaway off the front you can take that corner much more quickly. And this is a good thing, because it’s just about the only advantage the breakaway has on the chasing peloton.

We don’t have auto-braking on Crit City, though. Not yet. But it could be done! Riders could simply be slowed to a maximum speed (say, 20mph) on the two sharpest corners of the course. This would make the races more dynamic and crit-like.

But what if Zwift took it to the next level? What if the amount of auto-braking was based on your pack position? So the rider at the front of a pack would only get 20% of the auto-brake effect, while the riders at the back would get 100% of it.

I remember a little piece of software from a Zwifter years back that showed the percentage of draft effect Zwift was currently applying to your rider. So yes: Zwift already has a drafting “level” in play. What if that number was used to determine how much auto-braking was done? If you’re getting 0 draft, then 20% auto-brake. 100% draft? 100% auto-brake. And everything in between.

This would give the breakaway more of a chance, and reward those who are putting in the work on the front of the peloton.

Last lap: no powerup (again!)

The Finish

The remaining laps were fairly uneventful, and heading into the final lap I had received just 3 powerups in 7 chances through the arch. The powerup gods must be angry, because the ratios weren’t working in my favor! Hoping for something useful as we rode beneath the arch for the final lap, the spinner once again landed on the 10XP bonus. Boooo!

As always, the pace picked up when we hit the uphill twisties for the last time. I was out of the saddle happily hammering along, just doing my best to ride the wheels and conserve before the final sprint. Zane was right on my tail as we descended the bricks, making us 4th and 5th wheel as the pack stretched out thanks to Minton pushing hard on the front. I kept my eye on the riders ahead and the list to the right, ready to jump and grab a wheel if any strong riders looked like they may get away.

As we flew through the penultimate turn it was time to go all-in. No Tron bike? Can’t think about that now. No powerup? Oh well! My lovely wife had come up to the Lab and was yelling “GO GO GO!” and I was out of the saddle, head down, giving it all I had.

I wasn’t even sure if Zane was ahead or behind me. I was too busy putting everything I had into the pedals for those final 15 seconds.

I crossed the line, looked up, and was delighted to see these results on the screen:

1-2, baby! I started singing “Weeeee are the champions” into Discord for Zane to hear, but I was so out of breath I only got the “We” out. NorCal boys take the podium!

See my Strava activity >
See this race on ZwiftPower >

Grading on a Curve

Zane is a perfect example of how the current “final race results are on ZwiftPower” idea is broken. Why? Because he’s not on ZwiftPower.

Totally legit racer. Accurate power. But he’s not in the “final” results because there are too many hoops for him to jump through.

Oh yes, I’ve tried to get him to sign up. Repeatedly. But it’s just too much hassle for him. He just wants to ride. He’s never worn a heart rate monitor and doesn’t like hassling with tech. Since he doesn’t really care whether his Zwift race results are “final,” he’s not motivated to sign up.

For this race, that means: I won! Well, sort of. Except Zane beat me. But I DID get this:


Here are my takeaways from this race:

  • Racing with friends is fun. Even better if you’re on Discord.
  • Forgetting your Tron bike isn’t the end of the world. Neither is a lack of powerups.
  • A real-life cheering section always helps.

Your Thoughts

What do you think of my “positional auto-braking” idea? And does this count as a win for me? Please say it does. Chime in below!