Teamwork makes the dream work.
Last week I messaged Jesper Rosenlund Nielsen, the genius behind behind ZwiftHacks, a website I access multiple times daily thanks to its powerful event search tools. Here’s how that conversation went:

As always, I’m wowed by Jesper’s ability to build great features quickly. I offered a few more suggestions, which he implemented, and today, less than a week after my initial idea, I’m happy to share the news of ZwiftHacks’ latest event filtering feature: a Zwift Racing Score percentile search!
How It Works
The big idea here is to make it easy to filter upcoming Zwift races that use the new Zwift Racing Score (ZRS) metric. But we’re not just looking for a list of ZRS-powered events… ZwiftHacks already has that.
From the ZwiftHacks event search homepage, click “Experiments” then slide the top bar to your current racing score (find that in the Companion app or in game). This will show all upcoming races that include a category containing your racing score.

147 events showed up for me, but I wanted a more restricted list. As I explained to Jesper, what I want (sometimes) is to find scored races where I have a good chance of getting on the podium. What if I could just show races where my score puts me in the upper 20% of my category? This tool lets me do that:

I’ve entered my current racing score (591), then set the percentile slider to 80-100%. The resulting list of 15 races all include a category where I’m ranked in the upper 20% of the group.
I could also set my filters like this:

This shows all upcoming scored races (132) where I’ll be in the bottom 30% of my category. If I want to be pushed to my limit and probably dropped before the finish line, this is the search for me!
Early Days
Of course, it’s still early days for Zwift Racing Score, so Jesper’s experimental ZwiftHacks tool will probably need to evolve along with it.
Right now, as far as I can see, events using ZRS use one of three banding schemes:
- 5-category mixed scheme:
- 725-1000
- 575-725
- 400-575
- 225-400
- 0-225
- 10-category mixed scheme, with separate events for “high” and “low” groups:
- 775-1000
- 700-775
- 650-700
- 600-650
- 550-600
- 450-550
- 375-450
- 300-375
- 200-300
- 0-200
- Women’s 5-category scheme:
- 540-1000
- 415-540
- 330-415
- 220-330
- 0-220
It’s easy enough right now to figure out where your score places you in each of these schemes, and to find which events you prefer to join. Because of this, you may not see a need for a tool like Jesper’s.
But in the future, event organizers will be able to set their own custom score-based bands, which means you won’t always be at the top or bottom or middle of your category. (This is a good thing.) Having a filter like ZwiftHacks’ will let you quickly choose a race based on the sort of experience you’re looking to have.
Nice work, Jesper. Ride on!
Questions or Comments
Got questions about how the ZwiftHacks tool works? Suggestions for making it better? Share below!
Intresting. Thanks
I’m going to predict that nobody uses this filter to search for a race where they are bottom of the pen. 🤣
For some of us that’s the only option. Some scores aren’t in the top half in any of the current groups.
If I’ve got the maths right it’s:
725-737
600-625
450-487
300-312
Under 100
Hopefully community organisers take up the opportunity to choose their own boundaries.
hahaha tried your filter and set it to 80 to 100. Nothing, 70 to 100, nothing. 60 to 100, nothing, 50 to 100, nothing, 40 to 100, nothing, 30 to 100, nothing, 20 to 100. Hurray 3 races 😂
Am I right in thinking the ZRS races are few and far between at the moment as still in Beta? Hopefully volumes will increase soon.
Anyone else see this as very problematic?
IMO, if the ZRS gets fully embedded, the correlation between ZRS and finishing position in that race shouldn’t be too strong. At least that is my hope. My rationale is that you could have someone with a very high w/kg but can’t sprint, or someone with a considerably lower w/kg who can sprint, but they both have similar ZRS. In this case, it would depend on the race course profile over who would win. This is what I like about the ZRS, hopefully races are filled with riders of very different skill sets. The current category racing is boring as it is typically people with similar w/kg. You find it hard to attack and breakaway, even on climbs and it comes down to who has the best sprint/last few km power
Arent you afraid that people will just skipp the races they are not suited for and so nothing will really change besides having less people in races ?
I’m obviously very naive. When I want to race I just look at start time and expected length (time) of race so that it fits my schedule and finally whatever race has most amount of people registered. Find it hard to understand people that are picking their races as selectively as you suggest. But whatever gets people their kicks! Will be a bummer if race numbers drop, but I’d prefer this gets a proper chance and see what happens.
Perhaps not at first, but they might be when they find out they are getting dropped way earlier in races than now. The current CE system isnt the best also, but a lot of the races have a big group riding towards the finish. Yes the people with the best sprint win a lot, but a lot of the riders are somewhat close behind them. If the riders capabilities are widener in the new ZRS system, people will get dropped on every climb since the W/KG riders will dominate, and I am afraid that people wont like riding for 20km alone and will quit racing or get more picky what races they do, while now they might do any race they see.
Sorry Ross, it does not work like that. If strong guys who cannot sprint pull at high W/kg, all sprinters are forced to work in their upper zones. Basically that means they are on their limits, their glycogen storage depleting fast, their oxygen demand higher than supply. Even if the race is short like tiny races on Saturdays, very few sprinters would be able to produce any decent sprint, perhaps not even on 60% of their maximum power. So the big guys have a good chance despite their poor sprinting abilities. Now imagine the same people will meet in the longer race or some hilly race. Sprinters are always on the losing side under this new system.
But in your case, these sprinters will lose ZRS points and the high w/kg riders will gain points and they will all end up in different/more equal race fields with time. The current system with w/kg determining category is static
Do we need a single player racing mode where people can just always win?
Looks great… I’m just starting Zwift racing (very casually though!). I finished in top 30% of a cat c race, then got moved into cat B. Can’t even finish in the top 90% of those lol.
Is there a way to see which race/event only routes I haven’t yet completed? I collect route badges and I would like to tick all these off, even if it means dodging the broom wagon 😂
Use the Companion app to search routes. You can filter the list to show only routes you haven’t completed… https://zwiftinsider.com/companion-update-explore/
“As I explained to Jesper, what I want (sometimes) is to find scored races where I have a good chance of getting on the podium.”
Interesting approach. Wouldn’t it be easier to just pick a race from the countless events that have fewer than 3 participants?
I want to actually race against a decently-sized field, though. Getting on the podium by default doesn’t mean much.
I should probably clarify – when I say “good chance” of getting on the podium… I just mean I have a shot at the podium. Some races I enter knowing I’ll get dropped. Other ones I enter pretty confident that I’ll be in the mix for the final sprint…
Just have mass start races and be done with all this cat nonsense. These categories only exist so that people who aren’t fit\fast can “win” races. Zwift unfortunately has a far greater percentage of riders who aren’t very fast for what ever reason and they are constantly looking at ways to make these guys feel like they are winning where as in the real world if these people went to races or competed on Strava they would soon realise their place in the pecking order.
You don’t see a Tour de France for the lower ranked teams and riders who aren’t as good as the top level athletes.
LOL. With all due respect, Colin, this is a ridiculous take. 😆