Category Enforcement Trial - Next Steps [February 2022]

So, my belief is it would be good to have a ranking system, but you cannot just throw a ranking system down, wipe your hands, and expect that to be the solution for all races for all Zwifters. I think what they are doing now will apply more broadly to the general Zwift base, but that ranking is probably a great next step

Because the current W/kg model has worked so well over five years that there is really no reason to change it at all right? No complaints, or minimal complaints that can be ironed out with minimal tweaks to the model being used.

But sure, without actually having tried a ranked result system you can condemn that and simply wave your hands and say it won’t work.

Sigh… OK, maybe I am biased. 1200 races in on Zwift. But I also organized and acted as Race Director for more than 500 races IRL. And was on the BoD for our local velodrome for 10 years where we ran a few hundred races every year (including some 6-day events). And was on the BoD for the local club for 10 years that ran those 500 or so races. And was on the BoD for our local Provincial Cycling Authority for four years (in Canada we do UCI based on Provincial Orgs.) I have spent a fair amount of time and energy doing this since 2008.


Yes, that might be the issue. You’re probably seeing this through the eyes of someone that races a ton, where zwift is trying to build a system that works for people who have a wide variety of racing experience.

My guess is you are in the top 1% in terms of number of races on zwift. If what zwift is trying to do is make racing more approachable and fun for the vast majority of their users, they will need more than just slapping down a ranking system. I am very confident your racing experience would be better with a ranking system since you have way more than enough races to keep your rank up to date.

It works fine for those who race consistently, and it doesn’t have to be weekly. The rank is relative, and that’s the key — any race they do will automatically be weighted by the races they didn’t do because other riders did and their ranks are influenced by those races, which in turn are influenced by other racers in other races, which in turn… etc.

Seeding is a different problem; if you have folks who have never raced or whose rank has degraded over a few months, you have several options for suggesting a bracket (including using historical data from highest attained rank to — gasp — even a power curve estimate).


IRL most local racers may get 5-10 road races, and a dozen half hour crits per year. And don’t have any problem getting advanced from Cat 4 to 3 to 2 etc and maintaining that from year to year. Or if they take a few years off, dropping down and racing there until and unless they get pushed back up.

And as an IRL organizer, we (within the bounds of safety) will push people up or down if necessary.


IRL racing also doesn’t have a lot of cruisers who are trying to stay in a lower category which mess with the experience of other races correct?

Zwift’s solution to racing has to be a bit different than IRL because there are a few keys differences in Zwift. One is many people (sandbaggers and cruisers) don’t actually want to go up a rank in Zwift (there’s a ~4000 post thread discussing this). The other is not everyone on Zwift use Zwift specifically for racing… some are on Zwift to do workouts, some just do the odd route now and again, and in a “season” of Zwift a lot likely don’t do 10 actual races, my guess (I don’t know this, but it seems rational) is Zwift is actually trying to provide a system to make racing more approachable for that set of folks too.

Another thing that is different in Zwift vs. IRL is a lot of the races have much fewer people than IRL races (looking at the list of races going on many have like under 6 people per category making ranking algos hard to pin down in the same number of races as they would IRL. If you start by putting unranked races in an “E” category, getting to a ranking would also probably take longer etc… And the system needs some form of degredation in it too, so they have to keep up ‘some’ level of racing activity.

So, again, I do think ranking should be implemented… Absolutely. I do not think you can use ranking as the only model without any seeding based on other activities given the differences between Zwift and IRL racing. The issue in Zwift is… It only takes a couple of people to really change the dynamic of a race, so that “initial seeding” is not a small problem for the lower ranks. I don’t think you can gloss over how you do initial ranking in Zwift and keep a great user experience for people dipping their toes into racing in Zwift as a result.


Well put I agree - well almost !

Those with no race experience need, where at all possible, to be placed in a group which best suits their ability. Give beginners/first time racers a good experience, don’t drive them away after their first race. I would rather a first time racer raced a category down than a category up. I wonder how many first time racers have found these test races a pleasant experience - I hope Zwift is getting their feedback.

Thanks for posting on the race ranking thread.

If anyone else supports a results based system (not necessarily instead of but as well as) please post your thoughts on how it might work on Race ranking discussion

1 Like

If not already requested can we please have a filter option on Zwiftpower, if not on the Companion app too, for events using the in progress category enforecement signup process?


As is usual, Jesper from Zwift Hacks is way ahead of Zwift. Under the ‘Rules’ tab you can find events with ‘Category enforcement’.


The chase races with category enforcement do still show the traditional wpg categories in the race metdata it seems, so that will probably confuse people who are entering that can’t join a category due to their MAP/CP values being too high.

They are WTRL events so public cant join via Zwift/CA anyway. I am surprised in the Andreas length description accompanying those that they a) dont mention WTRL, and b) dont say how to join - not good PR for people that dont know.

1 Like

Even if you do know it seems to be broken.

Clicking on the + icon next to the race just displays a busy icon and nothing happens.

It also seems pointless to have category enforcement for the Herd Individual Time Trial races. I guess it’s not bad but what’s the point? Sandbagging doesn’t really affect how a TT is raced, only the end results which ZwiftPower should clean up anyway.


How can I find events with category events after the trial? Not really interested in racing events without it turned on, outside of ZRL for the time being.

The category enforcement itself won’t impact on an iTT but the redefined category limits will.

This should work:

These results are done by WTRL (they show up in ZP but the series standings are done on WTRL), but you can still see the categories of the racers around you anyway, so could lead to confusion if people had entered the wrong categories.

I know all this (and there’s also post hoc cleanup by WTRL) but I got far more irrationally annoyed than I should have seeing sandbaggers in the TTs I did before Xmas, especially C and D. We had racers call out sandbaggers in-race as well!

For me it’s probably because I can’t understand why someone would want to sandbag in a TT it makes no sense.

1 Like

I have some feedback to two different things: The category enforcement and a different category calculation system (still based on known, to zwift, power).

Category enforcement is a very good thing. It should have been there a long time ago. My only comment is that an organiser should be able to override it to accommodate for different use of categories, e.g. FRR racing different categories, getting someone upgrading in the middle of a running series etc.

Regarding the method of categorisation:

  1. I am in favour of transparency. People will tend to figure out a “secret” sooner or later and then it will become common knowledge for a few but not all. Also, transparency allows scrutiny, critique and improvement.

  2. New category calculation does not make much difference. Some people will change category but in principle the system is similar. It suffers from the same problems like the FTP system: Some people get very lucky by being at the top of their category and then they are discouraged from improvement as it would push them to the next. For them it encourages sandbagging and not racing fully. Maybe the new system is a bit harder to game but not so much. Some others are doomed to stay at the bottom of a category, guaranteed a forever bad race experience. With the exception of newbies with lots of gains and very young. Or maybe a vet waiting for their performance to drop.

Some options?

  • Offer 8 categories (high/low) like some series. If not many riders in a race, the high and low can be combined but with sufficient sign ups, it makes far more interesting racing
  • Move the category boundaries from race to race or rotate them around the year. Instead of having fixed boundaries you can rotate them and thus making sure there are races where someone can be good at.

In any case, this is definitely progress.


These are good suggestions. I’m afraid that the rotation of the category boundaries will be a bit confusing IMO. I also like the races with 8 categories. It should be enough for most to be within reach of the top of their category for some races and that is all we can expect.
I think there are too many races within the same timeframe in the calendar right now. We would get enough entrants to have 8 categories more often if the number was reduced.
If the race organizers got the opportunity to choose between enforced normal and high/low categories as a start, it would be a good step forward. More customization may come later. Many small steps :slight_smile:



  • - More Cats;

    • reduce (different to eliminate) the overloading of the schedule;
    • small steps;
    • listen to the constructive feedback from the community
1 Like

Automatic number of categories would be nice. But it really needs to be done with a formula that has two constants, minimum number of people per category, and maximum number of categories.

The people per category probably needs to vary depending on the category. Something like A-20, B 15, C-10, D-8 (scale if more than four).

1 Like