Table of Contents
Zwift’s “ZRacing” is the platform’s most popular ongoing race series, with over 45,000 riders participating in last month’s races!
In January the series takes on a group of flatter routes. But the bigger news is a shakeup in how the events are categorized, which I unpack below.
Read on for details about new category ranges and top-level races, plus race routes and strategically competing in the monthly GC competition.
Category Shakeup

Beginning in January, Zwift is making major changes to the category ranges used in ZRacing events. Their goal? “Fairer, more competitive racing for everyone.”
Zwift is doing this by creating a new set of “Advanced Category” races for riders with a Zwift Racing Score of 650+. Additionally, races for riders at 700 and below will feature tighter, alternating category ranges.
Read all about Zwift Racing Score >
Advanced Category Races for 650+

One common complaint among top-ranked racers is a lack of participation in the top category of ZRacing events. Zwift is working to change this by creating a new set of “Advanced” category races targetting riders with a Zwift Racing Score of 650+.
Unlike the old ZRacing schedule with its hourly events, these Advanced races will only be held 5x per day in order to focus participation and improve competition at the top level.
Event times will be as follows, but Zwift says “We will evaluate the number of times ongoing according to demand”:
- 08:15 UTC/3:15 ET/00:15 PT added starting Jan 7, 2025
- 10:15 UTC/05:15 ET/02:15 PT
- 12:15 UTC/07:15 ET/04:15 PT
- 17:15 UTC/12:15 ET/09:15 PT added starting Jan 7, 2025
- 18:15 UTC/13:15 ET/10:15 PT
- 19:15 UTC/14:15 ET/11:15 PT
- 00:15 UTC/19:15 ET/16:15 PT
Note: you can always “race up” in Zwift, so even if your Zwift Racing Score is below 650, you can join the Advanced events.
Tighter, Alternating Categories for 700-


For riders with a Zwift Racing Score of 700 and below, ZRacing events will feature tighter categories that alternate hourly between two different sets of ranges:
- Category Range 1: 0-160 | 160-270 | 270-390 | 390-510 | 510-650
- Category Range 2: 0-210 | 210-330 | 330-450 | 450-570 | 570-700
A few interesting things worth noting:
- Riders with scores between 650-700 will have the option of racing in the new Advanced events, or in the top category of Range 2 events.
- If you’re looking for a race where you have the best shot of winning, the alternating Range 1/Range 2 events give you access to an event where you are fairly close to the top of the category range.
- Looking for a harder workout? You can always race up a category, or choose a category range that puts you near the bottom of the category.
- Category ranges flexing across events has implications for riders competing in the overall monthly GC. More on this below…
[adinserter block=”4″]
Monthly GC

Each month’s series includes a time-based GC (general classification) on ZwiftPower tracking riders’ best finishing times for each week’s race. Just like a Tour de France-style stage race, the rider with the fastest combined time across the month’s stages wins!
See January’s GC on ZwiftPower >
With Zwift restructuring event categories in January, riders competing in the GC will need to think more strategically than ever. There are now 203 weekly events being held, and those events rotate between three different combinations of categories (Advanced, Range 1, and Range 2 as explained above). Riders will need to consider:
- Field Size Matters: all else being equal, the fastest times will come from the largest fields. So riding in the most popular races can help your GC results. But also…
- Category Range Matters: a group of riders with scores between 330-450 will be faster than a group of riders at 270-390. So while Zwift may recommend either of these categories for you if your score is 350, and you may have a better chance at a race win in the 270-390 group, the upper category may very well give you a better finishing time. But also…
- Your Abilities Matter: neither of the above considerations matters if you get dropped from the front group midway through the race.
While the GC results pages on ZwiftPower let you filter by score range, those are really artificial groupings at this point since the actual events aren’t using those score ranges. It may be most helpful to see the GC as a way of ranking yourself against the entire universe of ZRacing participants, which means it’s up to you to choose your events and execute your races strategically to maximize your GC ranking.
New to Zwift Racing? Three important GC-related notes:
- You must be signed up for ZwiftPower to be included in the GC results. Need help? Read How to Sign Up for ZwiftPower (and Why Every Zwifter Should Do It).
- To be included in the final ZwiftPower results, you must use a heart rate monitor as well as a smart trainer, smart bike, or power meter.
- You can race each stage multiple times to improve your finishing time.
January’s Routes

Here are the routes we’ll be racing in January:
- Stage 1 (Dec 30-Jan 5): Tempus Fugit
- 1 lap (19.6km, 22m elevation)
- Powerups: Draft, Aero 🛈
- Stage 2 (Jan 6-12): Beach Island Loop
- 2 laps (26.4km, 88m elevation)
- Powerups: Draft, Aero 🛈
- Stage 3 (Jan 13-19): London Flat
- 2 laps (24.4km, 230m)
- Powerups: Draft, Aero 🛈
- Stage 4 (Jan 20-26): Douce France
- 1 lap (24.8km, 133m)
- Powerups: Feather, Draft 🛈
- Stage 5 (Jan 27-Feb 2): The Fan Flats
- 3 laps (19.5km, 48m)
- Powerups: Draft, Aero 🛈
See upcoming “Flat Is Fast” events >
[adinserter block=”1″]
Get the Badge

Each month’s ZRacing series has a unique achievement badge, which you can unlock by finishing every stage for the month. There are no makeup events, so if you miss a stage, you miss out on the badge and competing in the GC.
One and Done
Zwift has planned these events to deliver a solid 1-hour workout, so each race should only take around 1 hour to complete, including your warmup and cooldown.
Questions or Comments?
Post below!
Will the 700 and below races still be held hourly? My workout time is 0800-1100 ET. I’ve been racing some of the Zraces in that time slot recently and they’ve all had pretty good participation. I’d hate to miss future races because of a reduction in race time opportunities.
Range 1+2 races are alternating hourly, switching daily. So if Range 1 is at 1010 one day, it will be 0910 and 1110 the next.
First! Like the multiple ranges. 👍
I second that! 😁
2 races for the European evening that are a meager 1 hour apart (18:15 UTC, 19:15 UTC), and none at all for Americas West evening 🙁
That’s not surprising, given how many riders are online at those times. European evening is midday in the US, so lots of riders are on. Americas West evening… Euros are sleeping. 😜
What about the other more common complaints from top-ranked racers: the races are always too short and they are mostly won by frauds anyways (just look at the top 10 on zwiftpower). ‘Top-ranked’ racers don’t want to waste their time doing 20 minute races on a pan flat course where a 60yo who has their power meter set to 215mm long cranks will just ride away at 500 watts at 130bpm. I can already be sure that I will not be re-working my riding schedule to accommodate these ‘advanced’ races that now happen less frequently.
2 of the races are ~20km, the other 3 are 25km. I am curious how these will be completed in 20 minutes?
😂 Have you seen the performances people do in the uncontrolled wild west of Zwift community racing? This is the Tempus Fugit segment leaderboard. Add in the lead-in time and maybe the race will last 22 minutes.
Where is this power meter setting you referenced? My Wahoo Kickr V5 has no such setting. I would like to know more.
I makes some sense that a crank size should be entered some where but the power put to the trainer shouldn’t make a difference. Right or wrong.
I am one of those 60+ with a ZRS of ~240.
“Power meter” refers to a power meter, not a trainer–either a pedal based power meter or crank arm. I assume that pedal based power meters actually measure torque, which is force x radius of the crank arm (IIRC), so you need to know the correct crank arm length to calculate for force and then from there for power.
It look like a good change but I would welcome also a point rank for all primes. It could be a neat alternative for those not competing in GC. I have raced recently in a one of WattFabrik races, where points were given at all primes and at the finish.
But then you have to make the whole series points-based. It changes everything…
I mean in this case only points for primes that could be added so in a series where it should be flat and fast, sprinters could also fight for points on sprint segments. GC might be calculated as usual on time basis.
I think that would be good…. The time based GC just turns every race into a sort of weird group time trial.
It’s a fun idea, but completely unmanageable at this scale.
How’s so? Zwift and Zwiftpower already know who were top X riders across a segment’s finish line, so my assumption was that they could assign point to those riders and display it on another tab on Zwiftpower.
Maybe I should have added “with existing functionality”
Sigh, the changes mean I can’t do this zrace series. My score is above 700, and the advance races are at times I can’t do.
Same here from the west coast. I usually ride on Zwift events after 5pm. 5:15pm start time would be best for these advanced race categories.
Finally, less races for the top category, I think that would really improve the field size. I (and guess more people too) prefer to race in the biggest field as possible, but with races held every hour it was hard to guess which will have a highest attendance, but with events at every 2 hours, it will be easier. Very welcomed change for me!
And! My opinion. Lots of Low End racers will have more space to find Fun to compete.
This looks great and motivating. Well for me ;-). Thanks!
Just a copy of last year, so a bit boring. And if ZRS has tought us anything it is that we should not have flat routes for a month.
It is good we have Tour de Zwift also this month, cause I will be skipping these boring flat sprint races. Eventhough I am a sprinter.
We tend to repeat the flat series due to it being our most successful theme/month
I dont mind the flat routes, gives me a chance to hang in there for a while!
But is it the most successful becuase it is in January when everyone is still keeping up with their new years resolutions, rather than because its flat?
Well, maybe it has something to do with the series being held in the busiest time of the year?
Definitely does, but the flat ones are always more popular
Of course they are. People can just draft till the finish and sprint for it. Not a lot will get dropped after 3km on these routes. Everyone will have a feeling they can compete on these routes.
This is so right about the draft till the sprint. But as a light rider, I can only use those races for a threshold workout, as I cannot win against those big watt guys at sprint. Or I’m making some fun by attacking randomly just to wake up the pack, knowing very well I cannot hold the break till the end, but otherwise it’s too boring. Everyone just sit the wheels.
But I very like those cats, it’s more equally competitive.
I love it. Starting with ZRS in Zwift Lab and following the evolution: Congratulations Zwift, it’s gonna be fun racing. I even won my first and only race in a ZRS Lab Event. I plan to do both ranges 1 & 2. 1 is for fun being competitive for Top 10 (i’m not a sprinter) and 2 for the finishing time, hopefully getting stronger there.
Probably some finetuning have to be done and looking like a perfect instrument for Team to organize Tours. Thanks! 2025 looking good.
Based on the times, I can’t do any of them. Great
Is this why the event part of the app is not working properly.
I Zwift on a Kickr, but I don’t use a heart rate monitor, does that exclude me from being involved in races ?. Only Cat D (or lower), still new to training on the bike.
You can still participate in the race, but your result will not be included in the results on Zwift Power and in the GC.
Hey Peter, thanks for the info, racing is maybe somewhere down the line for me then. Thanks again.
I was wondering why none of these events were showing up on my companion App. You need to activate the filter for RACING SCORE, otherwise they are invisible. I guess the default was to not show them.
All well and good, but until they fix all the bogus numbers in the top (now 650+) category it changes nothing at that level
I miss the Fondo events. You can’t fake fitness over two hours. I used to love watching the cheaters crack and get dropped at the two hour mark.
My score is currently too high to do group 1 but can do the group 2 rides. Why are the advanced races not showing up in my companion app? I thought there were races for 700+ and I can’t see them anywhere?
Forgive me but I just want it to be clear…
So I have now raced in Range 1 and Range 2 on Tempus.
My finish time differs by exactly 1 minute.
For GC, it doesn’t matter which Range I achieve my best time in, just my best times for each course are collated for the GC, yes?
Correct!
Wait….. Range 1 and Range 2 are combined for the GC?
You could even try to hang on in the advanced race for GC.
It doesn’t matter at all which race you’re in, only what your fastest time is for each course and your ZRS at the end of the month.
Zwift went to the trouble to subdivide the ZRS categories so riders in the lower half could compete in races, but Zwift is still keeping the full range for the GC? Even worse, now the folks in the lower end of a Cat won’t even race against the top riders they’re competing with for the GC? Enter the lower Range races and you’re guaranteed no shot in the GC? Who came up with this plan?
16 of the top 20 riders in “D” were “C” riders. This has been consistent with all category enforced rides, with an occasional “B” rider or two. Since category enforcement doesn’t seem to work well, I suggest that Zwift includes the letter (or number) to the left of the rider’s power metric during rides, and the ZwiftPower include the rider’s letter in a column in front of the rider’s name.
This seems a good compromise so that one see where they stand in their peer group.
thx!
Frank
I suggest you stop looking at riders’ pace groups, which are based on totally separate metrics than Zwift Racing Score (which is used now for categories), and just race! You’re comparing two vastly different categorization systems, and they’re totally different by design. ZRS was created to be an improvement over the pace groups thing… so why would we complain when riders are grouped differently?
As a 370 rider I prefer the Range 1 as it tightens things up the most.
What’s the difference between Range 1 and Range 2 ? Which one is the “easiest” ? Thanks!
Depends on your Zwift Racing Score. I explain all that above…
I’m 250 , did a range 1 and range 2 . As you stated above and its true . In range 2 got dropped by front pack , rode solo . Range 1 made the front pack and within 5 seconds of the podium and that is a win for me . When all the riders in front of me are half my age . I cannot out sprint the young guns. Thankful for range 1 .
Unfortunately missed the Stage 1, will there be a chance to get it completed?
Nope. No makeup events.
Se puede recuperar alguna epata es qie no tengo la primera
Hi, one question regarding the advanced category races at 17:15 UTC: It seems, that these races are not counted in the overall time. To me this seems to be an error. Does anyone else have the same problem? Or better a solution or explanation? Thanks in advance. Cheers, Christian
@Eric Schlange Can you maybe help here?
This obviously is solved since stage 4. But Stage 3 results from 17:15 UTC are still not counted in the overall rankings.
It’s a ZwiftPower bug that Zwift is working on.
Something weird going on with the league, since race 5 has been happening for 2 days now, the league is still only showing the first 4 races. System has been updated apparently but none of the race 5 results are showing.
It’s a ZwiftPower bug that Zwift is working on.
Long time Zwifter — Score is around 600. Have loved these races for years! Maybe it is me, but the category I am in seems to have been lightly attended (fewer than 10 riders), while other categories (300’s, 400’s) have tons of people. Am I right in assuming that since Zwift does the category choosing for you for these races AND since one’s score is determined in part based on results in previous events, that there are a lot of newer folks in the 300’s to 400’s? Can folks “choose” to race in a higher category even if they are ranked lower (might add a few more riders!)? Using your magic ball, do you think that this problem of few riders in the 510 to 650 category will gradually go away as more people are ranked? This last question is predicated on the assumption that the problem really exists — meaning I just might be getting unlucky with the times I can race). Thanks for any insight!
Got the badge but it’s showing in 2024 completed missions, is everyone else seeing the same?
Mine is in 2024 too 🤨
I LOVE FLAT IS FAST. WHATS UP FOR FEBRUARY TO TAKE ITS PLACE
Hi, I’ve tried about a dozen emails to Zwift Support but can’t get a straight answer.
In the Fast is Flat summary of the five events, two of us click on age 80+ to see where we stand and up near the top is the name Frank Weber. He comes second. Fine. He must be strong.
When you then click on 70+ for that band of riders, you also get the same name Frank Weber.
No-one else is able to get two different dates of birth past Zwift… so how does this guy do it?
If he’s 80+ we’re happy to have him among us, but is he’s in his 70s then not so.
John
I don’t see a way to filter by age on ZwiftPower… but it would make sense that 70+ would include riders who are 70 years old and older, while 80+ would include only riders 80 years and up…right?
I would suggest that having the age category as a range from 70-79 as at year end would avoid confusion. To group by 70+ and 80+ does imply that if one were 85, for example, that person being over 70+ would appear in both lists, the 70+ and the 80+. This does not seem to be the case for me. I will be 82 this year end and only appear in the 80+ group, unlike Weber who, according to the other John’s question, appears in two lists 70+ and 80+.
I think it would also help if everyone had an age beside their name on Zwift Power and not terms like Masters, Novice, Senior. I am very interested to see the actual ages of those that I will be racing against instead of trying to find a picture and guessing.
“I don’t see a way to filter by age on Zwiftpower” you say … but they do just that… well it seems that way to me.
List 1 – all riders who took part in the series – no filters – result is you see 36,000 names
List 2 – go to the box at the top right and enter ’60+’ and it filters you to 3,400 names and when you look to the far column of every name you see the identical result…. 60+
List 3 -go to the box at the top right again and enter ’70+’ and it filters you to 540 names and when you look at the far column of every name you see the identical result…. 70+
List 4 – go the same boc and enter ’80+’ and it filters you to just 24 riders but only 23 are listed as 80+ as one guy is cridited as being only 70+
My question to Zwift has been why?
Should yu be wonering you are getting stuff here from two Johns… John L and John B…. I’m John L
Because you’re using a hacky method to filter by age, which isn’t actually filtering by age. That search box filters all rider text. So the 70+ guy shows up because his name is “Frank Weber (L80+, 70+, WCCC)”.