Category enforcement problem - an example

Zwiftpower’s (ZP) ranks categories based on W/kg. This system has three characteristics –

  • It’s completely transparent.
  • It’s simple to understand.
  • It allows reasonable, if imperfect, categorization.

Following on the third item above, Zwift’s new category enforcement (CE) should give some correlation to ZP. However, the following example (for one) shows that this isn’t necessarily true.

Looking at a certain racer’s profile (62302), from the beginning of 2022 through July 18 he raced in 145 ZP C races and trophied in 33% (20 gold, 16 silver, 12 bronze). Just considering the 20 gold finishes, the average number of C racers was 9. Thus, it wasn’t like this rider had no competition. Thus, this racer is a strong C under the ZP rating system. (During this same period this racer also competed in 16 D races where he got 13 golds - 81%.) Note that ZP rates this racer at 2.88 W/kg at 20 minutes and his power curve shows 1000 W for 10 seconds over the past 90 days.

Now, under the CE system this racer was allowed to compete in four D races where he took gold in each. Thus, I submit that there is a significant problem with the current CE system when a strong ZP C racer is allowed to compete in the D category in CE races.


For comparison, let’s look at my stats (profile 636022). For the same period I have raced 31 times – 19 D, 6 E, 6 C (the last are CE). Of the 25 D and E, I trophied 9 times (3 gold, 4 silver, 2 bronze). Thus, I’m a strong D racer under ZP. (Compared to the above racer, I’m rated at 2.54 W/kg at 20 minutes and only 281 W for 10 seconds over the past 90 days.)

Under the CE system I’ve had to compete in the C category. There I’ve raced 6 times where I finished next-to-last 3 times and last 3 times. (The average number of racers was 16.) Since I’m a strong D racer under ZP it’s certainly possible that I’m a weak C under CE; I can deal with that. What I don’t understand is how the above racer can be a D under CE while I’m a C under CE.

Looking at the current CE system –

  • It has limited transparency. As far as I know, no one has provided a complete, detailed explanation.
  • Because of limited transparency it’s difficult to understand. I suspect it would be difficult to understand even with complete transparency (i.e., how easy would it be for someone to manually calculate their category to verify Zwift’s categorization; with ZP it’s easy).
  • At least in the above instance CE seems significantly wrong. Likely there are other instances.

Generally I’m a strong supporter of category enforcement. However, it seems to me that Zwift’s algorithm needs to be corrected.


I’ll try and look into more depth in a bit - turns out my Internet connection didn’t like 99F and I’m currently tethered to my phone :joy:

It should follow, to an extent, Zwiftpower, but does not take into account 95% and any CP of 2.5 or above should be C. I don’t know why this rider isn’t in C based on the information that you have given but I’ll find out as soon as I can.

No arguments from me that we need to be more transparent (although we’re not going to share our algorithm, we will show riders what category they are in and what their CP/MAP are).

I don’t think this is an algorithm issue, but I can’t really comment on that until I can connect to the VPN again :slight_smile:

1 Like

FYI they are Category Enforcement C. (The example in your post)

that same profile name i have (62302) :slight_smile: :joy: :joy: :crazy_face: :stuck_out_tongue_winking_eye: :stuck_out_tongue:

1 Like

I’m looking at the results for the following races on Zwiftpower where this racer took gold in all D categories –

Zwift Classics - The Apple Lap

10 July 2022 20:10**

Zwift Classics - The Apple Lap

12 July 2022 07:10

Zwift Classics - The Apple Lap

Wednesday 14:10

Zwift Classics - Watopia Cup

Yesterday 14:10
(I also raced this one. When I signed up with the app it said that access to D was restricted. I assumed that that applied to me in particular but that other lesser racers would be allowed in D. If this actually applied to all racers then how was he allowed to sign up as D?)

The ability to sign up is based on your category. I believe that his was changed today and will not be able to enter D tomorrow.

1 Like

but i am still sign up for tomorrow D race, would it be wrong for me to race it ? :stuck_out_tongue_closed_eyes: :crazy_face: :stuck_out_tongue_winking_eye: :partying_face:

Still, the question is why he was allowed to sign up as D in the first place for those four races. Shouldn’t your algorithm have caught this without my intervention? Are other riders similarly able to evade the category enforcement?

1 Like

i think had to do with 60 day roll off zwift. vs 90 day roll off ZP. is my working Bet.

The algorithm doesn’t look at results, only power curve.


So glad this has been brought up, saves me starting a new topic!

Just finished an EVO race series (trying to do the minimum amount so I can join the team and wear a pink jersey!) and I had entered the B pen as that is the minimum I am allowed.

In reality, I’m a C but hey.

Same as usual, we start and I’m dropped. Within 1km they were 25 seconds ahead and I was alone with about another 3kms of lead in before we get started for real.

The C group soon catch me and so I sit in and think, if I can hang on, I’ll have a pop at the 4 sprints.

I do this and then stay to get grief of the Cs.

You can’t win.

I’ve said it before, I’m all for Cat Enforcement but it does not work for me.

Sometimes I wish I hadn’t been honest about my weight as that is a far greater problem to the integrity of Zwift.

At the end of the day, I suppose I just have to accept that Zwift is only a game, that every race or series is flawed and meaningless and that the only thing Zwift is good for is to keep me active when I haven’t the time to get out outside.

(Results of today’s race?
Same as usual.
Dead last in my Cat, only 4th in the sprints and not able to hold onto the C group either… rather pointless really…and still no local time clock in game!)

edited to add

Just looked at my ZP profile now and that explains some of the comments about me.
I’m now showing as C, almost B but can only enter B.
No idea when the downgrade occurred.

1 Like

Dude you are 168cm / 100kgs and +90years old…which of this is correct?
IMO none of those 3.

Is this you? ZwiftPower - Login
Go to settings on Zwiftpower and change UPG mixed category to Let ZwiftPower Decide.

From the results it looks like you raced in Category C but got upgraded to the last place in B.

If racing results were purely decided on power-to-weight ratio, someone tell those riders on the Tour: all they need to do is get weighed, and complete a 20-min FTP test to find the winner - and save themselves weeks of effort…

In Zwift racing, your 1-5min power (as well as max sprint power) plays a major part in your result. Ergo, Zwift’s CE is better than ZP’s because it looks at your whole power curve, not just FTP.

3 Likes yes yes, 107 :stuck_out_tongue: :stuck_out_tongue: :stuck_out_tongue: :stuck_out_tongue: :stuck_out_tongue: tos(power lifting :P) we can’t call it zwift one now.


Hi Dejan,
No, that’s not me.

After I wrote and posted my little rant, I felt much better so I’m going to shut up now.