After a months-long drought, it finally happened – I won a Zwift race! Here’s the cool part: even before the win, this was one of the best race experiences I’ve had on Zwift. As soon as I discovered the Bullseye Points Race and signed up for it, I had a feeling it was going to be special, for at least three reasons:
- It was my first race on a route I “created” in Zwift: the Seaside Sprint route. Originally created as a Rebel Route, Zwift turned it into an event-only route a few months ago.
- It was a points race, and I’ve never done one of those on Zwift.
- I lead a weekly “Sprintapalooza” ride which rotates between various sprint-friendly routes. We’ve ridden this exact course several times, sprinting each lap just like we’d be doing in this race. I was well-prepared!
About the Race Format
The Bullseye Points Race was started by The Herd’s James Bailey last summer. James told me, “I love running races that are a little bit different to the norm.”
The race begins with a lead-in, followed by 6 laps of Seaside Sprint for a total length of 40.6 km (25.2 miles). This is a points race: at the end of each lap, riders are awarded points for their order across the line. 1st place gets 50 points, 2nd place gets 49 points, all the way down to 50th place getting 1 point. The final lap is worth double points.
Powerups are awarded at both banners on the circuit, giving riders ample opportunity to get a useful powerup for each lap’s sprint. Points are calculated post-race by ZwiftPower.
[adinserter block=”7″]
Warmup
After signing up for the event, I hopped onto Zwift a bit early. The day before had been an easy one – a sunny Z1/2 outdoor ride. So I knew my sunburned legs would be fairly rested, and I wanted to get some decent miles in today.
I chewed three pieces of caffeine gum about an hour before the event. I’ve been working on dialing in my caffeine dose for Zwift races, and it seems that a little more caffeine taken a little earlier than usual is probably more effective. Of course, I also applied some PR lotion to the legs. Then it was off to Tempus Fugit for ~15 miles of warmup.
The Start

This was the easiest race start I’ve had in a long time. Most races which begin on the Watopia pier in the “reverse” direction (which takes you immediately up a shallow climb and onto The Esses) start pretty hard and fast. But our group of 63 B’s was quite tame – which was smart! I averaged 323 watts for the first 2 minutes to stay with the front pack.
We went through the sprint banner before the Italian Villas (which is the lap banner for this route, and thus the finish line for the race) and our first lap began.
A couple riders were pushing hard on the front, and eventually jumped off, never to be seen again. They were clearly sandbaggers/flyers, and our group wisely didn’t chase, so their efforts didn’t affect us. Smart group!
As we hit The Esses on the first lap, I began to calculate my strategy for the first sprint. Holding a draft boost powerup, I knew that my best sprint time would come from sprinting in the draft. But unlike Sprintapalooza, this event isn’t about your best sprint time – it’s about who is first over the line! I had to shift my mindset. I decided I would try to stay near the front of the pack and follow the wheels of anyone who jumped a little early on the descent into the sprint, then if I came around them during the actual sprint – that would be a good thing.
Going off of the results on ZwiftPower (which exclude riders who were disqualified and those not signed up for ZwiftPower), I got first place on the first lap. (In the actual race, I was in a pack of three that were within a wheel of each other over the line.)
On the second lap, I got first place again. Thanks for the aero powerup, Zwift gods! This was going well.
The Middle
Our group of 63 was reduced to 20 before we finished the third lap. I popped my feather powerup on the climb before the drop into the sprint, and finished second behind Luke Chronister, a rider who was finishing near the front of each lap. He was definitely a contender, although that didn’t change my approach to each lap’s sprint.

I must confess, while there were certain names I kept seeing near the front, I didn’t have the mental fortitude to mark particular riders. My goal was simply to finish as close to the front on each sprint as possible. Without a live view of the points totals, this was really all I could do! In between sprints I did my best to hold my position mid-pack – out of the wind, but close enough to the front to avoid being caught behind leg-sapping gaps.
As is typical with circuit races, a lap pattern emerged. Immediately after the sprint, there would be a breakup of the front group, with ~5 riders (the strongest sprinters) getting a slight gap on the other ~15. Then as we crossed the Italian Villa cobbles, the groups would come back together, and some nutcase would hammer hard at the front as we descended the twisty dirt road to the Volcano land bridge. The pace would ease up over the land bridge, then ratchet up again as we hit the ramp into the Volcano and the steps up to the Volcano banner. We’d be strung out as we crossed that banner, then we’d come back together before crossing the glass bridge back to The Esses.

The pace wasn’t crazy, but you had to be careful not to get caught out when the group surged. These little surges slowly whittled the group down, dropping 1-2 riders from our front group each lap.
Lap 4’s sprint wasn’t pretty. ZwiftPower puts me at 4th place, but in-game it was more like 15th, as I recall. It was another sprint without a powerup, and I got swamped mid-sprint by the pack.
I took first in the Lap 5 sprint, with Chronister just .033s behind me. That was a close one!
The Finish
The final lap began tamely enough, but when we hit the ramps up to the Volcano banner the group surged hard. We were strung out, with a strong group of 4 up the road and my group of 5 chasing.

Knowing I was in contention for the podium, I gave it all I had, pushing ~350 watts for about 90 seconds. Between my efforts and a couple of other riders in our group, we managed to reel in the group ahead, coming together in a pack of 10 riders for the final rollercoaster ride through The Esses.
I was hoping for an aero helmet powerup for the finish, but the Volcano banner gave me the draft boost instead. So be it. We hit the final ramp up before the descent into the final sprint, and riders began to hammer. Powerups were flying everywhere, and we caught a group of ~10 C’s at the same time, adding to the chaos! It was a pell-mell dash to the line, and somewhere in that mix I activated my draft boost powerup, shifted, stood up, and hammered to the finish. I crossed the line in 6th place according to Zwift’s results, but of course the final points results were what really mattered.
See my activity on Strava >
See my activity on Zwift >
See race results on ZwiftPower >
Final Results
Race results weren’t immediately available, because they require the race organizer to do some manual work on ZwiftPower after the race ends. I crossed my fingers and headed for the shower, knowing I had finished near the top in most of the sprints, but unsure if other riders had done better.
Within 30 minutes of the race ending, race organizer James finalized the results and sent me a message on Facebook: “Congrats on the B win.” Hurray! I came away with 344 points from a maximum of 350 available… enough for 1st place.
Thanks for a Thankless Task
I chatted with James a bit to learn about the process of finalizing the results. It would have been a bummer to wait for hours to see final results, but he had them finalized faster than you see in outdoor races. He’s a perfect example of how Zwift’s community race organizers put in hard work every day to make these events a fun experience for everyone.
James actually organizes 5 different weekly race series for The Herd Racing League. Impressive. Thank you, James – and thanks to all the event organizers on Zwift.
Takeaways
My biggest takeaway from this race was that it was super-fun, and I’ll be back for more.
Secondly, it’s interesting to look at my peak sprint power as the race progressed:
- Sprint 1: 847 watts
- Sprint 2: 834 watts
- Sprint 3: 740 watts
- Sprint 4: 733 watts
- Sprint 5: 728 watts
- Sprint 6: 631 watts
Definitely fatiguing steadily, which means this race was really good training! My strength is sprinting, but doing so repeatedly, with race-level wattage in between, was a new challenge.
Points Races: My New Favorite?
This event was a blast, and I’ll definitely be doing it more often. It’s a much more interesting race format than the typical “sit in until the final sprint” flat scratch race. After just one race, it’s clear to me that a whole different set of strategies are involved, with smart powerup usage being key and long attacks mid-race paying off, even if they don’t stick.
My head is already spinning with ideas for how these events could be taken to the next level. What if we could see the points totals in real-time next to each rider’s name? What about team competition? What if the race included the ghost and burrito powerups, making those sprints even more strategic?
For another perspective on how these races unfold, watch veteran racer Casey Schumm do the A race on his Twitch stream below (the event begins about 19 minutes in). He and three other riders break away for the first four laps, and one of the riders in that breakaway group ends up winning overall:
Your Thoughts
Have you tried any Zwift points races, and if so, which ones? Got any tips? Share your comments below!
Congrats Eric with a well deserved win and again a great article! Might give this event a go sometime soon, sound like good fun!
Sounds very cool! I’ll be looking for one of these events to join!
Thanks for another great writeup!!
208 Heartrate! You should be working harder for these wins 🤪
good thing you didn’t fall over at the end! INSANE!
I hadn’t noticed that! Has to be a glitch. If you zoom in you can see it goes up into the low 190’s, then back to low 180’s really quick… then up over 200 again.
Either that, or I’m about to die! Max HR I’ve ever seen is 189.
Love the Bullseye points races, done 4 of them now, and yesterday was my first B race! Think I stuck with your lead group for about half a lap Eric before being spat and picked up with another group but happy with my 15th place in the end. Can’t wait for next week already!
Nice!
Congrats on the win! I’ve never done a points race, but I like the idea of mini-races within the race. As you mentioned, it seems to yet another option to keep Zwifting fun. I love that no matter the day, time, or mood, I can find some type of race, ride, or workout that will keep me engaged while I sweat out the day’s worries.
I really enjoy your race write-ups. I’ve learned a lot of tips from you, and my race results have definitely improved by practicing them. Thanks!
Hey, thanks Brandon! Glad the writeups have helped you out!
Eric, congrats on the win – I was the guy in the white shirt and pink socks.
When I saw it was you, I had to give it all and did – thanks for the motivation. Sadly results did not show up as expected on Zwiftpower, strange.
Hey Andre – it seemed like you were “in the mix” on the sprints, for sure. And you finished with me in the front group, too. No small feat in itself!
Well done James Bailey
The Bullseye is indeed a great race format for those who wants to try some different style of the usual ,,suspects,,
Was a pity that I was toooooo tired of work yesterday to join it. My overall lead in the B is flown away🤪 so great seeing you Eric presenting this great format on your Plattform. It’s really hard effort hammering nearly all out to get the points and this one had only 6 laps. After Crit City track with 18laps you will not hear anything of sprints for the next days🥵🤪😱
James Bailey and his Herd Team (like you Said it’s extraordinaire what they do for the zwift community) offers another points race, it’s the Premium Race of Herd every weekend ,,Herd Summer Racing League,,
The Summer League is the best Series I did so far on Zwift (5 races from Friday to Sunday, best one counts). 10 weeks Series
In this League riders get points for Sprints, KOMs and for finish. At sprint and KOM primes the fastest and not first over line counts, so think everybody can believe what carnage is going on during the race. Hopefully seeing you Eric in the Summer or Bullseye once. You are really a heck of a sprinter.
Sounds like the Herd is doing some really great race organizing! May have to check out the Summer Racing League.
18 laps?!?! Holy rubber legs, Batman! I’d be toast. But what great training, a sprint every two minutes.
What a great concept – mix of a crit (length and elevation change) and a track points race. Is there any way to easily filter for events set up to reward sprint points (or KOM’s…or both?)
Not that I know of. I wondered the same thing!
Sadly not. As far as Zwift is concerned this is a routine race. It’s in ZwiftPower that you can customise the primes, or points that mean you can start making things a bit more interesting.
Eg: our 5 weekend races are all on NYC KOM After Party. Primes are awarded for each of the 3 sprints (fastest time), the KOM (fastest time) and GC – first over the line at the finish.
It’s such a shame that in the latest Zwift update Zwift have added the Boost Mode (which exactly zero people asked for) but still haven’t added points or elimination races (which have been asked for repeatedly).
An elimination race or official points race on one of the super short circuits could be an utter blast of a race.
*cannot wait* for elimination races.
Congratulations on your win 344 of 350 sounds impressive to me 🙂
I’m already thinking of the Zwift velodrome – Indoor-indoor cycling 🙂
Scratch races, Madison, elimination races, maybe even spinting out a Keirin race behind a derny (which would be just like the automatic beacon you’ve written about recently). I would give it a try!
Oh, and look, how long I can hold my track stand in the sprints 😛
The velodrome idea doesn’t excite me much, because without being able to steer your bike… I just don’t see the value in being stuck on a track for lap after lap.
I think creative races like the Bullseye Points Race can give you some of the interesting formats you find in a velodrome – you’re just on a much more scenic virtual course instead.
344 DOES sound impressive. It was certainly a lot more points than I thought I’d end up with!
I guess you are right. Certainly in the way that in Zwift there is lots of opportunity to spice things up compared to 250m of plywood 🙂
But I think for example for an elimination race, the laps could be even shorter than “Seaside Sprint” or the volcano circuit. This way, due to shorter lap times, there could also be more participants.
On the other hand, in the respective velodrome races, sprint points are given only every few laps which also increases the race distance (and which certainly is due to the fact that you are missing the opportunities Zwift is giving)… Maybe Crit City isn’t too bad either for these kind of races – I’ve been riding there only once so far.
Another idea would be implementing the possibility to place custom arches for events, e. g. every km, mile, etc.
All in all, also coming back to other commentors, I definitely like the idea of providing a broad variety of race formats in Zwift!
A 250m track distance has more to do with the distance needed to lap the field rather than the distance between sprints which is usually a multiple of laps, ie a standard points race has primes every 10 laps or 2.5k.
Thanks for a great write up! Really enjoyed this format and it was actually a fun race for once instead of just being drilled the whole time. Congrats on the win!
Great report, as ever, Eric. I’ve done a few of these and they add another dimension to the often ‘samey’ flat races. How about you try and write up a WTRL TTT? I started to do these and they are DEFINITELY something different.
The point structure is interesting, where one might finish 40th on the first sprint, then win the next five and still finish behind someone who was 5th in every one of six sprints. In most IRL points-based races, either points are limited to a small number on each sprint, or points have an accelerated schedule where the difference between 1st and 2nd exceeds the difference, for example, between 49th and 50th. But of course many of the challenges of IRL racing (safety and difficulty picking results) aren’t present on Watopia.
In any case that looks like a great route and a nice alternative to the triathlete favorite of just doing laps of the volcano.
Congratulations on the win! I’ve entered the Bullseye Points Race a few times and always enjoyed the format. I was always curious to find out where I placed for each sprint, but I haven’t been able to find that information on ZwiftPower. Do you know how?
If you click “Primes” on the ZP event, you can see the top (I think) 5 finishers for the prime sections. I think that’s the best you can get.
Top 10. Points to top 50 sounds like an awful lot but I guess it makes the primes further down the pack much more interesting as well. Well, at least if you had a clue about the race situation. With sandbaggers and Zpower users it can be difficult to tell how you actually placed until you see the results.
And a strong yes to many more points and elimination races on Zwift from me as well.
Congratulations Eric for the win! Love to read your write ups everyday, almost all of my Zwift knowledge come from you. I am so happy to finally see the title changed to “Won” today!
Given the points race a couple of tries now. Really like it, but can’t work out scoring. My race had mostly C riders a couple of D’s a couple of Bs and one A. Despite hitting each lap prime between 10th and 14th I still only managed 15 points. Despite our group of Cs having faster finish times than any other group, we all get bumped down because As Bs and Ds all got maximum points for their group, (only 1 or 2 of them!) so beating us all on points. Hard to work out scoring, but good fun.
Hey Eric, was looking for some info on Points Races and this popped up from 4 years ago. Looks like I’ll be doing my first ever points race during this years ZRacing event #2. Is the premise the same with points at the finish banner for all Point Races? Have you learned anything since doing that first one that you would like to share. Thanks,