Category Enforcement function was recently changed to the worse.
When introduced, it would check zFTP and zMAP value with the table and force higher category on the rider (if zFTP in B, but zMAP in A, then a rider would be assigned to A), see below from respective ZwiftInsider article from Dec 29, 2022.
Note: exceeding just one of the thresholds (zMAP or zFTP) will bump you to the next category. You don’t need to exceed both to be upgraded.
The original idea was to get rid of sandbaggers who would carefully nurture their zFTP not to exceed the category threshold, but would be very fresh at the short crucial moments of the race like Hilly Loop KOM on Watopia.
Some time in the past two months category enforcement was changed to allow lower category, so if zFTP is in A, but zMAP is in B, then a rider can race in B, here is the current description from Zwift Support site.
In an open race, the lowest group you can join is determined by where the lowest value of either your zMAP (watts/kg) or zFTP (watts/kg) falls in the below table.
This makes the original sandbagging issue considerably worse, because a rider with 5w/kg FTP can race in B and simply ride any B off of their wheels. They don’t even need to do have zMAP > 5w/kg, because they will already be very far ahead.
Let me put it in a different way: original category enforcement was based on a single zFTP metric. People learnt how to “game” (cheat) this metric. Adjusted category enforcement added second metric, zMAP, because gaming two metrics simultaneously is harder than gaming a single one. Current rules allow anyone to game any metric out of two, making it easier to cheat, because one has more options.
In an open race, the lowest group you can join is determined by where the lowest value of either your zMAP (watts/kg) or zFTP (watts/kg) falls in the below table, provided your zFTP (watts) also falls in that, or a higher, row. If your zFTP (watts) value falls in a lower pace group than your zMAP (watts/kg) or zFTP (watts/kg), you’ll also be able to enter the group where your zFTP (watts) falls.
For example: If your zMAP power-to-weight ratio is 3.2W/kg, your zFTP is 2.63W/kg, and your zFTP (watts) is 140W, you can race in pace groups D, C, B, or A. Even though your zMAP and zFTP meet the criteria for Pace Group C, your zFTP (watts) meets the criteria for (and allows you to race in) Pace Group D or above.
Is that a fairly significant change, when did that come into effect?
I don’t know when it came to effect. I remember discussing category enforcement with a friend of mine right before New Year, and the previous system was still in place.
Well from my side I can tell for sure that the base category enforcement system hasn’t been changed since last May. I just checked the code history. So I can only find two possible explanations for this case:
this happened on a event with “custom category enforcement” - where event organizers can choose their own rules.
some parallel bug in the system not in the category enforcement rules but in the event logic that handles this (seems highly unlikely to me but still a possibility)
Looks like the content has been updated away from what it previously was? Think the posters in here agree the actual calc hasnt changed from their own checks.
An improvement in your approx 3-5min effort would lower your zFTP by a few Watts and put you back in D (unless the model thought you exceeded zMAP threshold).
David, thanks for your response, and hope that the documentation can be reverted. I still suspect that there is a bug somewhere.
I can’t post links here, but if you took a look at the one of top C riders from ZwiftPower #5935298 (taken at random inspection of top C riders), you would see that his top 20 min power in the past 90 days is 265w, meaning that his FTP is 95% * 265 = 252w, but ZwiftPower shows his zFTP as 242w.
This is a documentation mistake, nothing changed in the enforcement logic, so any rider is still placed into highest category of zMAP/zFTP
Zwift uses its own Critical Power curve to determine zFTP and zMAP power, one shouldn’t be using standard approach of taking 0.95 of max 20 min power for zFTP
zFTP and zMAP power are divided by the current rider’s weight to determine their category placement, but it can lead to artefacts in ZwiftPower if rider’s weight changed in the past 90 days