I’ve been on a roll lately, racing each week’s ZRacing event on Tuesdays at 12:10pm California time (join me!) in the B group (450-570). While I haven’t won a race in a while, these provide a good challenge with a large and varied enough field to keep things interesting.
This week’s race is on a single loop of Watopia’s Sand and Sequoias, a popular circuit that takes in both the Fuego Flats desert and Titans Grove, two distinctly different sections of road. My event was full of classic Zwift race fun: an overpowered rider staying off the front, an underreading trainer making me work extra hard, praying to the powerup gods, and even a virtual shifting “mechanical” that forced me to improvise a bit to stay in touch! Let’s get into it…
The Warmup
I got on the bike with plenty of time before the race, giving me a full half hour to wake up the ol’ ticker and spin up the legs. I was already one dirty chai and a few pieces of Neuro caffeine gum into my warmup by the time I got on the bike, so I was nicely caffeinated. I had also rubbed PR Lotion into my legs to keep the burning at bay.
My Warmup “Stack”



I rode my Cadex Tri bike during the warmup, since I’m working on upgrading it as we head into ZRL. Gotta get those minutes!
Fuego Flats (the Easy Part)
This route is 22.4km long, and the first ~10km takes you from the desert start pens and across Fuego Flats to Saddle Springs. It’s quite flat, and most racers don’t even attempt an attack here, because the pack chasing from behind is simply too fast.
The Luck of the Powerup
The race was set up to hand out one of two powerups at random at each arch: a feather or an aero. With two arches on the course, the powerups you receive could really affect your race! Everyone wanted a feather as their first powerup, to help them up the Titans Grove KOM. And everyone wanted an aero for the second powerup, to help them in the final sprint.
I got a feather through the first arch. Bingo.
We chugged along, a starting group of 26 riders working at a steady but bearable clip. I averaged 251W for this section, but things started getting spicy near the end as we entered Saddle Springs. One L. Nystrom attacked off the front, and four other riders followed. They soon built a 5-second gap, and seemed to be working hard together as we headed up the Col du Saddle Springs into Titans Grove.
This was gonna hurt. But at least I had my feather!
Titans Grove (the Hard Part)
We hung a right into Titans Grove, and the real work began. One rider from our group put in a hard effort and bridged up to a handful of riders just ahead, but I could see the breakaway had split into two groups. We reeled in the back group at the bottom of the Titans Grove KOM, but there were still three riders up the road.
It helps to know how this KOM lays out. While it’s 2.6km long on paper, the first kilometer is quite flat (less than 2%) and very draftable. So if you want to ride this as efficiently as possible (vs attacking and ripping everyone’s legs off), you want to sit in the pack and draft efficiently for this first bit.
The second portion is steeper, but still only 3-4%. Drafting still helps a lot, so sit on a wheel and just work to hold a good pack position up and over the top.
I stuck to my advice above, and was able to hang with the peloton up and over the climb, triggering my feather with about 600 meters to go. I finished in 4 minutes, 37 seconds with an average power of 330W.
Bad Shifting, Bad Powerup
But as we approached the KOM banner, something odd happened: I shifted (virtual shifting), but the resistance didn’t increase as expected! Instead, it hit… slowly… over several seconds. This odd shifting delay would persist through the end of the race.
I had hoped for an aero powerup through at the KOM banner, but alas: it was another feather. You win some, you lose some.
In contrast to the flat, easy start of the race, the 5.3km section from the start of Titans Grove to the top of the KOM required 308W average for me to stay with the group. Ouch!
The Finish
I tried to recover a bit as we descended from the KOM arch, but my delayed virtual shifting was making things a bit goofy. I also knew there was a sharp little kicker coming up, so I tried to get set into a gear that would work for hammering up and over this rise.
By the time we finished that kicker and began the true rollercoaster descent to the jungle, only two riders were up the road: L Nystrom solo on the front, with B. MacPhee chasing. I didn’t have the legs to chase, so I sat in and hoped our pack of 21 would pull them back.
B. MacPhee got caught with 3km to go, just before we exited Titans Grove. That left only Nystrom, who didn’t seem to be slowing one bit. Just as we all began resigning ourselves to fighting for second place, B. Ruhne, wearing a DIRT kit, jumped hard off the front and got away solo.
I sat in the group, unable to jump hard enough to get away. As we neared the sprint finish, A. Morvan jumped hard with an aero powerup, catching B. Ruhne just before the line. Nystrom won by nearly 20 seconds. And my feather powerup and tired legs proved a poor match against the competition. I crossed the line in 10th.
See ride on Strava >
See results on ZwiftPower >
Watch the Video:
Takeaways
This race basically unfolded the way past Sand and Sequoias races have unfolded for me. Easy on the flats. On the rivet surviving the Titans Grove KOM. And too knackered to sprint to the podium.
Zwift Racing Score
My score increased from 564 to 569 as a result of this race. Looks like I may not be long for the 450-570 group! And neither is L. Nystrom, the rider who jumped off the front ~9km into the race and stayed away to win solo by 20 seconds. He averaged 4.3W/kg for the event, which was his first race since December 2024 according to his ZwiftPower profile. His Zwift Racing Score result for this event was 559, and that includes a seed score upgrade due to some new 90-day power bests.
Generally, I’ve been quite happy with how my Zwift Racing Score-powered races have unfolded in recent months. The algorithm seems to be doing a good job. But today’s race highlights two areas where Zwift Racing Score still needs to improve:
- Taking a rider’s historic performance into account: Nystrom averaged 4.2W/kg for over 53 minutes in a race in March 2024. He’s clearly got the fitness to be ranked higher than he was heading into today’s race.
- Upgrading a rider more quickly based on current performance: I’m not sure how much his score jumped due to today’s result, but the fact that he can still race in the 450-570 group is silly, given what he did today, averaging 4.74W/kg for 20 minutes.
Blaming the Trainer
The most annoying bit of information is that I was testing a smart trainer (which shall remain unnamed) during this race, and while it seemed like the trainer may have been reading a bit low as I was warming up, I used it as the power source anyway during the race, while dual recording my Assioma pedals on my head unit.
It turns out that the trainer’s average power was ~15W lower than the pedals for the duration of the race. Ouch. Here’s a chart showing a small portion of the race, with my pedals in blue and the trainer in purple:
The power readings on this chart may look similar at first glance, but the Strava power curve for this race shows that the difference between the trainer’s numbers and the pedal’s numbers is the difference between a ho-hum effort and setting several new PRs for 2025 in the 10-30 minute window.
I’m not saying I lost because of an under-reading trainer, of course. But it certainly didn’t help. Occupational hazard, I guess, when you’re riding in the Zwift Insider Pain Lab!
Your Thoughts
Did you race this week’s Sand and Sequoias ZRacing event? How did it go for you?