TSOZ Closer Look: Zwift Racing Score Changes

In the Fall 2025 “This Season on Zwift” press release, Zwift revealed several upcoming changes to the Zwift Racing Score system which is used to group riders for most of the races on the platform. These changes will have a significant impact on rider scores, so let’s dive into the details…

Zwift Racing Score Decay

Launching mid-September

    Zwift Racing Score decay was built into the early system, but the feature was turned off in October 2024 because feedback from Zwifters indicated it wasn’t making scoring more accurate. At that time, Zwift said, “We may turn this back on later after making some improvements to the mechanism.”

    Zwift has now made those improvements, and they are reintroducing decay into the ZRS system. Zwift says, “This means that if you stop racing for a while, your displayed score will very gradually drift downward (after 30 days without a race), and the system’s uncertainty about your true level goes up – so when you return, you’re matched more fairly rather than a stale high score.”

    Digging a little deeper, this change involves:

    • 30‑day grace period: Your score will only begin decaying after 30 days without a scored race.
    • Rising Uncertainty, Fairer Returns: After the 30-day grace period, the system’s uncertainty for your score will also increase, allowing your score to adjust more rapidly once you do race again. Or to put it another way: returning racers will adjust faster to their real level.
    • Decay is Capped (or better, Floored): Your score will not drift infinitely downward.
    • Discourages Rating Squatting: Built-in decay means riders can’t climb to a higher score and stay there without racing. It keeps rankings fresh.

    In practical terms, Zwift says this is what you can expect if you take a break from racing:

    • Short break (within grace period): No change; you won’t feel penalized for a holiday or training block.
    • Moderate break: Slight downward adjustment; you may see a modest score dip that encourages re-engagement.
    • Long break: You settle at a conservative plateau; when you come back, early results will move you faster than before.

    Rewarding Personal Bests with Instant Score Updates

    Launching mid-September

    ZRS is a results-based algorithm where your score changes based on your finishing position in races. But the foundational component of the ZRS algorithm is your seed score, which is based on your 90-day power personal bests.

    One crucial thing your seed score provides is a ZRS floor value – the lowest your score can drop to. Your ZRS floor is 15% below your seed score.

    Currently, if you set a new power PB (in a free ride, workout, race, or any Zwift activity), your ZRS is only immediately changed if the updated floor value based on your new power PB is higher than your current ZRS. This means there are plenty of scenarios where riders will hit new power PBs outside of a race, but their scores don’t change. Here’s one example of how that could work…

    Example 1 (current system):

    • Current ZRS: 500
    • New Seed Score Based on New Power PB: 540
    • New Floor Value (85% of Seed Score): 459
    • New ZRS: 500 (unchanged, because it is higher than the new floor value)

    With the new system, when a rider achieves a 90-day power PB, their racing score will immediately be set to the new, higher “seed” value if that seed value is higher than their current ZRS.

    Example 2 (new system):

    • Current ZRS: 500
    • New Seed Score Based on New Power PB: 540
    • New ZRS: 540 (score instantly set to new seed score, since it was higher than the rider’s current score)

    In simple terms, this change will lead to ZRS increases for more riders, which should mean more riders’ scores will accurately affect their current peak fitness. To be specific:

    • Active Racers will see score boosts immediately when their power PB wasn’t in a race
    • Active Non-Racers who are training but not racing will get their score adjusted upwards with new PB values, helping ensure their score is accurate once they race
    • Returning Users coming back to Zwift after a break will have their scores adjusted more quickly as they set power PBs in any Zwift activity

    30-Day Best Score for Race Categorization

    Launching late September/early October

    Soon, race organizers will have the option of categorizing riders based on 30-day best ZRS, as opposed to the current ZRS that all scored races use.

    Why the change? Some racers have complained that riders are purposely tanking their score by riding hard enough to bypass Zwift’s anti-tanking measures while still finishing far down in the results. This is especially prevalent among racers who naturally sit near the cutoff lines for categories.

    These racers may enter a “target” race with a score that places them near the top of their category, winning the race and receiving a ZRS result that would push them out of their category and into the next highest.

    They will then purposely tank a race or two (or perhaps four, via our Tiny Races), dropping their ZRS so they can once again enter the lower category in their target race.

    With this change, race organizers may enable “30-Day Max Score Enforcement” for their event, meaning even if a racer purposely tanked their score across multiple events, they would still be categorized based on their highest score in the past 30 days.

    Simply put, this is an additional anti-tanking measure. And I think it’s a good one that many race organizers will use.

    (For our Tiny Races in particular, this feature will have the added benefit of reducing how often a rider starts the set of four Tinies in one category, then gets forced into a higher category mid-set, eliminating their chance of a high overall placing since they raced in two different categories on the day.)

    Displaying Score Deltas in Results

    Launching mid-September

    We published a post about the ZwiftPower ZRS browser plugin just 2 weeks ago. This fun little community-created add-on for ZwiftPower adds ZRS results to ZwiftPower pages, including a delta figure showing how much each rider’s ZRS changed in that race.

    In that post, I asked Zwift to add the delta figure to race results found on event pages at zwift.com. Little did I know, Zwift already had that change in the works (which explains why the delta figure was available in the API data for the ZwiftPower ZRS plugin to access in the first place).

    Anyway – this is a small change, but a welcome one. The deltas will also be visible in results on Zwift Companion.

    Questions or Comments

    That’s a pretty significant list of changes impacting Zwift Racing Score. What do you think of the changes? Share your thoughts below!

    Eric Schlange
    Eric Schlangehttps://zwiftinsider.com
    Eric runs Zwift Insider in the spare time he finds between riding his bike and managing various business interests. He lives in Northern California with his beautiful wife Monica. Follow on Strava

    43 COMMENTS

    Subscribe
    Notify of
    guest

    43 Comments
    Oldest
    Newest Most Voted
    Paul Smith
    Paul Smith
    1 year ago

    Excellent, Eric.

    Is there any way of determining your floor if you haven’t set a new PB? Personally, I’ve been hanging around the same ZRS (desperately hanging on to might be more accurate) since the December 2024 adjustments and I haven’t had an effort that showed the floor up/floor down arrow symbols indicating floor change..

    Thanks

    Matt
    Matt
    1 year ago
    Reply to  Paul Smith

    Enter a race that does use ZRS for entry but doesn’t give zrs impacting results and the number is the floor

    yes this is dumb

    Peter
    Peter
    1 year ago
    Reply to  Paul Smith

    It really should just show your seed/floor on your profile page.

    Griff
    Griff
    1 year ago

    The ZRS delta is nice. Now I just need a 30-day ZRS graph visible.

    Ikcelaks
    Ikcelaks
    1 year ago

    I’m glad that they’re trying tweaking the “uncertainty” parameter for inactive riders. I hope that they are doing that in a fairly continuous way so that riders who race less frequently (but are still active) see larger per-race score swings than riders who race multiple times per week. As a rider who has historically raced regularly but almost never more than once per week, I’ve felt like the ZRS adjustments I see are too slow at reacting to changes in my ability.

    Setting ZRS to 100% new seed scores on power PRs is the big change here. It has been widely requested in the Zwift Forum posts critiquing ZRS, so I’m curious to see how it works out. The big effect that I expect is for new riders to move up categories quicker as they reap the newbie gains. That’s probably a good thing for competitive racing. However, it doesn’t seem like any of these changes will significantly hamper the “cruisers” who never give full efforts longer than a minute, unless the seed score formula starts incorporating 30s power (or some other short duration power).

    Matt
    Matt
    1 year ago

    Great article! Until yesterday, I had not raced since April 2nd but my ZRS seems virtually unchanged since then yet my Velo score had dropped to zero..lol

    Bob
    Bob
    1 year ago

    ZRS needs to be specific to the course being raced! Imagine trying to predict the top 10 finishers in a TDF stage without having any idea of the course profile. The guys who win the sprint stage might finish an hour behind on a stage in the Alpes. Any system designed to predict how you’ll do, that doesn’t consider the course profile is inherently flawed.

    Peter
    Peter
    1 year ago
    Reply to  Bob

    This! Very much this.

    J marx
    J marx
    1 year ago

    Pitty there aren’t some more anti tanking measures been put in problem with score vs grade is you get high graded riders doing monster 5-20min power and then stopping early to tank their race scores. This just blows apart races for those just wanting a good race against level competition.

    JBONT
    JBONT
    1 year ago

    Thx Eric,
    hopefully the 30day-best will help to make monthly Zracing more fair, instead of racers near their Cat-limit have to leave their Cat and lost the complete monthly overall gc result.🙏

    Daniel
    Daniel
    1 year ago

    Lovely, we at low consistent say C score will always be racing a few A-B riders that has taken a 2 month summerbreak and have scored down with a base fitness that are way ahead that of C. That is what racing score is to me, even currently, sign up based on your score. Even if you are in the hight tiers of that bracket, there are one part of the pack that can maintain a level way over the rest. A normal C ZRL start is at 450 watts gradually slowing down a bit over 1-2 minutes. On a ZRS race there are always 5-10 people that just keeps going on that pace.

    Right now they are not given enough points for that to even get out of the bracket, so I will see them next race as well. These rules will hopefully address that…

    But I will still avoid ZRS races, they are so unfair.

    steve c
    steve c
    1 year ago

    ZRS decay isn’t needed and it doesn’t solve any of the major flaws with ZRS.

    Your ZRS floor should be based on 100% of whatever ability metric is used by seed score, currently 5mins power at your claimed weight. Not 85% seed score.

    Is 5mins a good interval to use for seed score? Maybe in the real world, but not in Zwift.
    Far too many routes do not have a climb that take everyone at least 5mins (and those routes that have such climbs are so very rarely used), if their equipment claims they can do up to ~7.5W/Kg for 5mins. Elite racers can climb Petit KOM in under 5mins https://www.strava.com/segments/24690967 , Zwift desperately needs some 550-1000 foot climbs.
    Reducing the seed score duration closer to 3mins will get more ability reflective results and allocate racers better to a pen and where in that pen they fall by ability.

    Bigger field races give smaller ZRS changes than a 1v1 race in a pen.

    Why is ZRS changing at all, when less than 5 racers finish from a pen?

    Why are signups that don’t even enter the start pen affecting ZRS changes?

    Why are we not using power data from the previous season to determine seed score, for racers who used Zwift last season?

    Why are we not using outdoor power meter data from those providing it via their Garmin/Wahoo/Hammerhead to get extra XP credit? Outdoor and indoor power can be extremely close after indoor acclimitisation.

    It’s been far too easy to manipulate ZRS for the last ~15 months, there’s so many racers who have managed/tanked their score down enough to race in a weaker pen and then stay there most of the time

    Determining pens by highest ZRS in last 30 days will help a bit, but which organisers will use it? As far as I’m aware, not one of the custom Category Enforcement options were ever used by ZwiftHQ events, which are now a vast majority of the race schedule.

    Reverz
    Reverz
    1 year ago
    Reply to  steve c

    30-day best will be a game changer. It does prevent people from purposely tanking their scores, or they would have to be playing the long game. Some might still do that but it’ll keep em out of circulation for longer at least…

    But still, the biggest problem with the racing calendar imo is Zwift has almost monopolised it. There used to be variation in the calender: field sizes, race length, circuit… right now it’s a barren wasteland with mostly either your standard zRacing event: big field, 25-35mins and 1 track for an entire week or one of the few remaining rogue races on the calendar with a field of 2 or 3 riders per cat.

    Vic
    Vic
    1 year ago

    I’m immediately left wondering how anyone knows if a person has been inactive? Ie. you use Zwift for training in the off-season, do your real work and racing IRL outdoors (not in Zwift) and then return 3 months later to repeat the cycle, etc.

    Tom
    Tom
    1 year ago

    Eric, do you view ZRS as a matchmaking system or a prestige system? Or both?

    Mike
    Mike
    1 year ago
    Reply to  Eric Schlange

    He’s asking rating vs. ranking. You’re right that it’s more of a rating (matchmaking) system but then the question becomes, why bring decay back into it? Is it a lack of understanding the platform on the part of ZHQ?

    Tim
    Tim
    1 year ago

    “Discourages Rating Squatting: Built-in decay means riders can’t climb to a higher score and stay there without racing. It keeps rankings fresh.”

    What’s the problem with this? If a rider wants to do that, let them? They will lose the next race, and no real negative effects to anyone else (unless for some reason everyone does this). If someone wants to work their way up to a legit high race score and then retire from racing and brag about a high race score, who cares?

    Vic
    Vic
    1 year ago
    Reply to  Tim

    Yeah, I don’t recall ever seeing one person complaining because they noticed or think another person’s ZRS score is higher than it should be.

    Ikcelaks
    Ikcelaks
    1 year ago
    Reply to  Tim

    Yep, balancing ZRS is funny in that different people want to manipulate their scores in opposite directions. But, since having an artificially high ZRS doesn’t ruin races for others, it isn’t actually a problem.

    Leave the ZRS high during extended breaks from racing (assume they’re doing other training), but boost up the “uncertainty” so that their score changes rapidly when they come back to racing. Then, if they’ve actually gotten slower, a couple poor finishes will put them down where they need to be.

    Tom
    Tom
    1 year ago
    Reply to  Ikcelaks

    The problem is that increasing the uncertainty directly lowers ZRS. Because Zwift are using the leaderboard version of OpenSkill instead of the matchmaking version.

    steve c
    steve c
    1 year ago

    20 people all create new Zwift accounts on the same day and after an honest 5min+ effort, they all end up in the same pen, with Bill ending up with the highest seed score and Ben having the lowest seed score.

    All 20 join the same race and are the only entrants for their pen.

    Bill wins the race and Ben comes last, with everyone having put in an honest race effort, but nobody improving their 5min seed score.

    Bill was always expected to win the race and Ben was always expected to come last, given the seed score efforts done before the race.

    So why are we using such a garbage system where ZRS increases Bill’s score the most and lowers Ben’s score the most, because it isn’t vELO based?

    Under a vELO system, such as https://www.zwiftracing.app/events , Bill’s score would have only increased a little due to winning and Ben’s score would have probably not changed at all, because the results were expected given the ability shown so far by each racer.

    Last edited 1 year ago by steve c
    Tim
    Tim
    1 year ago
    Reply to  steve c

    Yeah, they don’t seem to take into account the field strength in adjusting ratings after.

    Mike
    Mike
    1 year ago
    Reply to  steve c

    This is a good point. When ZRS was announced it was stated that beating stronger people than you will raise your score more. That isn’t how it works unfortunately. @Eric Schlange is there any word on if they’re going to implement that? Or are we stuck with top half goes up bottom half goes down for as long as ZRS exists?

    Martin Gill
    Martin Gill
    1 year ago
    Reply to  Mike

    All of these changes seem to be around how power data is captured and applied to scores – so ZRS ends up just being another Power based ranking? As the points above state, ZRS was sold as primarily a results based system with the power bands just providing some initial guardrails.
    The results based adjustments to scores still often don’t seem to make a lot of sense either on field size, strength, or down to the more granular level of who beats who. Hopefully there can be some more focus and progress on this side of things?

    Peter
    Peter
    1 year ago

    Hmm I dont know about that decay.It makes us believe that everyone who doesnt race for more than 30 days gets back weaker than they were.

    While that might be true if you get injured but I think more people ‘abuse’ it when they come back from summer outside cycling and are certainly not weaker or even better than when they left Zwift.

    Every September and October its a mess with people being too low catted. And yes, while they now might go up faster, they still can easily ruin those races before they do.
    So lets say 3000 racers come back and it takes them 2 races to get back to level. That is still 6000 races they ruin the experience for the people who do belong there.

    Peter
    Peter
    1 year ago

    And no ZRS History we can view ?

    That was about asked for on day two of the beta test and was promised it would come not many days later.

    Peter
    Peter
    1 year ago

    And that 30 day best performance catarisation. How does that work for people without 30 day results. Are they excluded from even joining the race ?

    Mike
    Mike
    1 year ago
    Reply to  Peter

    Their 30 day number will be whatever it was at the start of the most recent 30-day period assuming decay has hit. If they’re just a decay-floor it’ll stay there. I haven’t done a ZRS-scored race in months and my ZRS is the same as it was months ago. That’s my 30-day score.

    Peter
    Peter
    1 year ago
    Reply to  Mike

    Ohhh so it is the ZRS you have or when your 30 day is better than that, they use that. Do I understand that correctly ?

    Alex
    Alex
    1 year ago

    Great text, Eric. Are you planning to use the ’30-Day Best Score for Race Categorization’ in the Tiny Races?

    Fred
    Fred
    1 year ago

    It’ll be interesting to see what happens to my racing score. I race five to ten times a year, as a replacement for a high zone workout day. If my score decays too much during a long non-race period, I might get placed into a category that is unfair to others. But then again, I’m what used to be called a high Cat D/low Cat C. So maybe it does not matter so much to those going for prizes. Hopefully, the races I may join on a whim will still let me choose a category higher than I might otherwise get automatically placed.
    I love races that have a mass, non-categorized start. Us in-between category folks have a better chance forming a bunch and racing each other. I couldn’t care less if I come in 264th place as long as I win my bunch’s sprint.

    Last edited 1 year ago by Fred Sirvalo
    Chris Lawrence
    Chris Lawrence
    1 year ago

    Active racing, is that active ZRS scored racing, or any Zwift race?
    For instance, if someone is racing Ladder / TTT / ZRL, but not ZRS scored events, will their ZRS score decay or not?

    ArHu
    ArHu
    1 year ago

    I don’t get it why would anyone want to tank their racing score? Just competing at level A is a much greater achievement than winning gold in B

    Reverz
    Reverz
    1 year ago

    Eric, could you explain how 30-Day Best Score for Race Categorization would cause people to not be forced into a higher category mid tiny race set? Because I don’t understand…
    It’s BEST score… if anyone exceeds their category treshold after ANY of the races they will STILL get forced into the higher category for the remaining races of the series won’t they? Their BEST score is over category treshold after all.

    Tom
    Tom
    1 year ago
    Reply to  Reverz

    It won’t make any difference to set of races that someone goes above the threshold, as the scores are not finalised for this purpose until 12 hours after the race, in the same way that the pen-entry enforcement doesn’t apply until the score is finalised.
    The main difference will be that if someone goes above the threshold in one set they’ll be forced to race according to their maximum score for the subsequent 30 days, so they won’t be able to tank their score mid-week to target the tiny races.

    Reverz
    Reverz
    1 year ago
    Reply to  Eric Schlange

    Isn’t that an issue people could easily prevent already by just entering the higher cat if they’re that close to the limit before the first race?

    I see this point being made by race series organisers over & over in their race descriptions. Frankly it’s not all that hard to figure out that if the cut-off for cat C for example is 520 then should you really be starting a series of races in cat C when your race score is 510?
    It’s a different story entirely when a series spans across multiple weeks and it’s sometimes hard to predict how much better your form will be a few weeks into a series, but an intra-day series entering a bracket júst below the cap is asking for trouble. 30-day best score will hardly have any impact here I think.

    All that being said. 30-day best will help massively as anti-tanking precaution, which is a big step towards creating more competitive and even playing field races.

    Last edited 1 year ago by Reverz
    Jim Griffin
    Jim Griffin
    11 months ago
    Reply to  Reverz

    Not sure if it’s possible but I would love to see automatic upgrades per class based on power output…it is very frustrating to see riders do wild numbers but only go up 13 points. Over 3.5w/kg in a Pen 3 race should automatically upgrade you to Pen 2 for next race. When returning to racing you should start where you left off…lose once then drop. I am a 508-535 racer who is solid cat C…the last couple of races I have done Pen 3 has been faster than Pen 2…that shouldn’t be possible.

    Man rides stationary Zwift bike trainer in advertisement. Text reads The Zwift Ride Big Weekend Sale Sept 24-28. ZWIFT: RIDE $999.99. Colorful shapes and a Save Now button appear below.

    Get Started on Zwift

    Newest Featured Posts

    Support This Site

    Write a post, shop through us, donate or advertise. Learn more

    NEWSLETTER SIGNUP

    Zwift tips and news every 2 weeks! Click to subscribe.

    More Posts