Zwift - Race Category Mechanism Idea

Zwift category system idea

I have put together a potential mechanism for an improved category system for Zwift Racing.

Disclaimer. I am in no way skilled at putting something like this together. It is open to feedback, please describe its flaws and maybe together we can improve the concept. I have described this as if it is single-gender, but it is applicable when splitting genders too.

  • In total there would be 10 categories (A-J, or whatever naming convention you wish!)
  • Anybody new to Zwift would start in Category J (bottom level)
  • Existing users would be initially designated a category based on their ZP cat
  • Every user has a score from 1-100 that determines the rider’s category
Cat Score
A 91-100
B 81-90
C 71-80
D 61-70
E 51-60
F 41-50
G 31-40
H 21-30
I 11-20
J 1-10
  • If you enter a race you are automatically entered in to your correct category. Group rides would have optional category enforcement
  • Races could have single or multiple category pens, depending on entrant numbers or chosen config. E.g. 10 separate pens, or mixed pens:
Pen Cats
Pen 1 A-C
Pen 2 D-F
Pen 3 G-J
  • At the end of the race you either gain or lose points depending on your result
    • -3 points for quitting prior to the end of a race
    • -2 points If the average score of the riders ahead of you in the results is lower than your score
    • +2 points f the average score of the riders behind you is higher than your score
    • +3 bonus points for a race win
    • -1 point if you finish in the bottom 5% (or last place depending on # entrants)

FAQ ( not really – I made these up)

  • What if the riders ahead of me have a higher average score, but the riders behind me a lower average score?

    • This suggests you are riding in the correct category!
  • What if I win the race?

    • There are +3 bonus points for winning a race. If the average score of the riders behind you is higher than your score, this means you could potentially get 5 points! This allows the strongest riders to level up quickly
  • What if I am good at flat courses but bad at hilly courses?

    • You can either stick to your strengths to level up or work on your weakness so it does not impact your score too much
  • Have you run this through any kind of simulation to see if it actually works?

    • No
  • Is it possible to sandbag?

    • You would need to continually rage-quit races to get your score down, and then win. Which will in turn level you up again. It seems like a lot of effort for little reward – and continuous rage-quitters could be flagged.
  • I just hit cat D in Spring and have a score of 61. I have eaten a lot of cake since then and need to ride a lower level, but the average of the riders ahead of me is always higher than 61. How do I level down?

    • Continue to race in your assigned category. If the cake had a big impact, you will finish in the last 5% (or last place) and will soon drop down a level again.
  • I am A-LEET and have a score of 90. I can never win a race because I have a poor sprint. I want to be in cat A where I feel I belong. How can I level up when the riders ahead of me never have a higher average score?

    • A few options. Either work on your sprint to win some races, go for a solo breakaway, or enter some mixed-cat races where you can beat some A riders.
  • Won’t people enter races where they know the field is weak so they can level up easily?

    • What, like real life? This is fine, it’s just tactics. At some point you will meet your match.

This would be the first thing that Zwift implement before we can even think any furthur.

Good write-up, it sound a lot like the system we used in South Africa.


I want to race in Viper Squadron!


Doesn’t seem like too much effort to me. Win one, quit two. Leaving a race early is easy enough, and if you’re planning on quitting you can enter a few races that start say 5 minutes apart. You could easily quit three races within half an hour; and if you’ve more time to spend on it deliberately lose enough points that you would win several before being bumped up again.

1 Like

To what end? I agree it is possible, but most of today’s sandbaggers wouldn’t bother. You could flag a pattern of rage-quits and penalise them more heavily if necessary.

The same end as any sandbagger. To get an easy win and pretend they’re actually any good at racing and get a deluded ego boost while ruining fair competition for others.

Yeah they will.

The point being that while I mostly like the idea of a points-based system, anything that makes it easy to deliberately go back down the ranks will attract abuse.

In the real world, I think you have to race an entire season to go back down, don’t you? And once you’ve gone from Cat 4 up to Cat 3, you never go back down (British Cycling cats, at least as far as I recall).

1 Like

This is not perfect but certainly better than what we have currently.

People will always try to cheat the system. The rules should just make it harder for them to cheat that way we have a better change to have clean races.

But before we can get to all these details we need Zwift to get onboard and develop a system to put people in the correct start pen.


This should be trivial. They have all the data. They could already enforce it. It was apparently “coming in the next update” months ago, wasn’t it?

We’re still waiting for the simple stuff, let alone the anti-sandbagging in-race controls that were starting to see the light of day. Maybe the seemingly hostile takeover of ZwiftPower is a prelude to some of this stuff actually happening. We can only hope so.


No Eric said that was a long term goal. The anti-sandbagging in-race controls was due Zoon.

But I like that the community is thinking and chatting about these things, it give different views and ideas.


Zwift racing may have been overtaken by some other platform that takes racing seriously by then, I guess. A long term aim to do something as basic as automatic category enforcement isn’t very ambitious.


I eagerly look forward to the anti-sandbagging in-race controls in my next Zwift rowing race set-up by my Zwift club after I join a new race without needing to restart the whole program.


Maybe this is a step in the right direction:

$450m should certainly help, no?

That’s a lot of money!

An option (open to discussion) is that when sandbaggers are identified/flagged, they then race with “■■■■■■■■” appended to their name for three years.

1 Like

Wouldn’t it be more appropriate if Zwift gave themselves that appendix instead? Like on the web site, in marketing and on every corporate document?

At the investor meeting:
KKR: -…so you said the projected ROI for Zwift■■■■■■■■’s new hardware division would be…? Hey, by the way, why do you call yourselves Zwift■■■■■■■■ now all of a sudden? Is it like some kind of tech geek speak that you’re supposed to get only if you’re in the know?
Zwift: -Oh that? No no, it’s just a mark of shame for us maintaining a racing category system that didn’t work because it allowed and promoted unfair play. Don’t worry, we’ll drop the ■■■■■■■■ part in three years once we have served our sentence.

Anyway, @gloscherrybomb, like discussed above, I think you might need some kind of seasons in a system, although you can’t use seasons like in real-life sports in Zwift because of its global nature and diverse user preferences. But you could use a rolling time period like ZP uses (90 days or whatever, could be shorter), i.e. you don’t get up- or downgraded until you’re out of the season/off cooldown.

If you stall sandbaggers that way most of them won’t have the patience to wait for a downgrade and even if they did the impact would be smaller. Just enforcing categories will take care of most of them already. I have my eye on them from the inside, so I think I’m getting a feel for how they roll. Most of them are not very patient at all, but right now Zwift hands out quick fixes to them for free. They exist because they are allowed to and because it is so easy. The system creates a vacuum asking to get filled.

You might want to stall people moving up too a little, let patterns establish properly first before you move someone. Or you could end up with situations that are easily exploitable but not so easily forseeable, like events with low participation or something


1 Like