Who’s the world’s best Zwift racer today? There’s only one ranking system Zwifters go to for the answer, and that’s the ZwiftPower Individual Rider Rankings.
This will be news to some of you who didn’t know that every race on Zwift is actually a multilevel competition. Of course, there is the obvious “first across the line” ranking. But ZwiftPower also awards ranking points to all race finishers, and those points are used to rank Zwifters against one another.
So there are at least two competitions going on in every Zwift race. (And in a more complex race series like ZRL, every race is actually several competitions. But we won’t dig into that today.)
This post explains how ZwiftPower’s ranking points are calculated, both in simple terms and in minute mathematical detail. A follow-up post will focus on boosting your ZwiftPower ranking. Let’s dive in!

The Basics of ZwiftPower Rankings
The ZwiftPower rider rankings are calculated using the same formula as USA Cycling’s ranking system. (We were going to link to a nice explainer on USA Cycling’s website, but their website is broken and in fact quite terrible, so that can’t happen.) Here are the key things to understand about the system:
- Rankings are set between 0 and 600 points: everyone begins at 600
- Lower Scores are Better: a rider ranked at 100 is “ahead” or “stronger” than a rider ranked at 200
- Best 5 Races in Past 90 Days: every race you finish earns a result (group rides and TTT’s do not count). But only your best 5 results in the past 3 months are used to calculate your current rider score. Notably, this means that a bad result doesn’t hurt your score. It just doesn’t help it!
- Not Category-Based: ranking points are separate from ZwiftPower categories (A/B/C/D). Points tell you how you rank against the full universe of Zwift racers, while categories divide racers into competitive groups. It’s very possible for a B (or even a C) to outrank an A rider.
- Improving Your Ranking: in general, to improve your ranking you must beat riders currently ranked stronger than yourself. This isn’t exactly how it works, but conceptually this is the idea.
- Only for ZwiftPower Users: if you aren’t signed up/opted in to ZwiftPower, your result isn’t part of the points calculation, and you aren’t earning any points.
Seeing Your Results on ZwiftPower
Your race result will not show up immediately on ZwiftPower after you finish the race. We aren’t sure what triggers the calculation, but our guess is it has to do with organizers finalizing the results. In our experience, results always show up by the next day, but sometimes show up within an hour or two.

When viewing your ZwiftPower Profile, the far-right column (titled “Result”) tells you your points result for each race.
Additionally, the “Race Ranking” section of your profile tells you your current rank. Click the “Info” box to see how you rank against others in your category, age group, weight group, team, and country. It will also show the top 5 scores which your current rank is based upon.
How Race Results are Calculated
Every race you finish produces a points result. How is that result calculated? Put on your thinking caps, kids. We’ll try to keep it simple, but it’s a somewhat complex formula!
Your result is calculated using the following formula:
Rank Points = Race Quality + ((Finishing Position – 1) * Points Per Place)
So your result is based on three variables: Race Quality, your Finishing Position, and Points Per Place. Finishing Position is obvious enough, but what are “Race Quality” and “Points Per Place”? Glad you asked!
Race Quality
“Race Quality” refers to the strength of your competition. Think about it: if you entered a race against 100 WorldTour pros and won first, that should boost your ranking more than if you won a race against 100 rookie racers, right?
The formula for Race Quality is:
Race Quality = (Average of the best 5 riders finishing in the top 10 places) x (0.9)
Easy enough to understand. So when a race finishes, we can look at the top 10 to calculate the Race Quality. Suppose a race ends, and the top 10 looks like this:
Race Results Example
Racer | Place | Ranking Before Event |
---|---|---|
Racer A | 1 | 250 |
Racer B | 2 | 200 |
Racer C | 3 | 400 |
Racer D | 4 | 220 |
Racer E | 5 | 500 |
Racer F | 6 | 350 |
Racer G | 7 | 300 |
Racer H | 8 | 280 |
Racer I | 9 | 540 |
Racer J | 10 | 330 |
Race quality would be based on the 5 highest-ranked finishers in that list, which would be:
- Racer B (200)
- Racer D (220)
- Racer A (250)
- Racer H (280)
- Racer G (300)
Plug those into the equation and you get:
Race Quality = ((200+220+250+280+300) / 5) * 0.9 = 225
Note: there is an exception to the Race Quality equation. If the average of all of the riders who finish the race is lower than that of the average of the best 5 in the top 10 then the Race Quality is calculated using the total race average points instead of the average of the best 5 in the top 10. This is a very rare occurrence on Zwift due to fairly large and diverse field sizes.
Points Per Place
Points Per Place refers to how many points each successive finishing place is worth. Obviously, finishing first should earn more points than finishing second, and so on. But this formula also takes into account the total number of finishers (field size), because finishing 10th in a field of 20 riders shouldn’t be worth as much as finishing 10th in a field of 100.
Points Per Place is calculated like this:
Points Per Place = ((Average Ranking of Finishers – Race Quality) * 2) / (Finishers – 1)
Using the example of the 10 racers from above, Points Per Place would be:
Points Per Place = ((337 – 225) * 2) / (10 – 1) = 24.88
Note: a small field adjustment exists on ZwiftPower. If there are between 5 and 9 riders who finish, ZwiftPower still uses the top 5 for quality, but uses all riders for average.
Final Calculation
Now that we know our Race Quality and Points Per Place figures, we can calculate the resulting points earned by any racer:
Rank Points = Race Quality + ((Finishing Position – 1) * Points Per Place)
We know Race Quality in our example is 225, and Points Per Place is 24.88. So the 1st place finisher’s rank points would be:
225 + ((1-1) * 24.88) = 225
Yes, 1st place always earns the “Race Quality” number as their score. But 2nd place would earn:
225 + ((2-1) * 24.88) = 249.88
Key Ranking Factors
Now that we know precisely how ZwiftPower points are calculated, we can see which factors are most important if we’re looking to improve our ranking. (We’ll be publishing a post all about boosting your ZwiftPower ranking soon, but this is just a teaser.)
Field Size
Using our race example above, imagine if that list of 10 finishers was just the top 10, but there were 90 additional finishers. This doesn’t change our Race Quality number at all (it’s still based on the same top 5 ranked finishers in the top 10). But it drastically reduces our Points Per Place number:
Points Per Place with 10 Finishers = ((337 – 225) * 2) / (10 – 1) = 24.88
Points Per Place with 100 Finishers = ((337 – 225) * 2) / (100 – 1) = 2.26
This doesn’t change things for 1st place, but it changes things for everyone else! Consider the result the 10th place rider would earn in both scenarios:
10th Place with 10 Finishers = 225 + ((10-1) * 24.88) = 448.92
10th Place with 100 Finishers = 225 + ((10-1) * 2.26) = 245.34
Remember, the lower number is better. In this case, it’s a massive difference of 200 points, even if the top 10 finishers were the same!
Top-Ranked Finishers
Having some super-strong racers finish in the top 10 will improve your Race Quality rating, which in turn can give you higher points, especially if you finish near the top. Consider the effect if Rider A in our original example was rated at 100 instead of 250:
Original Race Quality = ((200+220+250+280+300) / 5) * 0.9 = 225
Race Quality with Super Strong Finisher = ((200+220+100+280+300) / 5) * 0.9 = 198
This doesn’t drastically alter the Points Per Place number:
Original Points Per Place = ((337 – 225) * 2) / (10 – 1) = 24.88
Points Per Place with Super Strong Finisher = ((322 – 198) * 2) / (10 – 1) = 27.56
But it does alter how many points 1st place earns (remember, their result equals the Race Quality rating).
If you got 2nd place in the original race, you would have earned a result of 249.88. But if you got 2nd place with the super-strong 100-rated rider finishing in the top 10, your result is now 225.56.
Better-Ranked Finishers
At the start of this post we said “to improve your ranking you must beat riders currently ranked stronger than yourself.” While this isn’t always the case (there are situations where you could improve your score without beating riders ranked above you) in the vast majority of situations, the statement holds true.
Therefore, if you’re looking to improve your ranking, you need to enter races against higher-ranked riders. If you’re the top-ranked rider in your race, chances are very good that winning 1st place won’t boost your ranking at all.
This is just another danger of Racing Within Your Zwift Category which strong riders must consider.
And this is why top-ranked racers will often pull out of a race before the end… because if they finish against a weaker field, they’re essentially boosting the scores of their competitors, without boosting their own score. Unsporting? Many would say so. But it happens.

Wrapping It Up
Hopefully you now understand how ZwiftPower’s rider rankings work. And if you do, congrats – that means you can easily grasp how ZwiftPower’s team rankings work!
Watch this space for a follow-up post focusing on strategies for boosting your rider ranking.
Questions or Comments
Something you don’t understand? A nuance we missed? Comment below.
Thank you Eric for diving down the ZwiftPower ranking calculation rabbit hole.I find ZwiftPower quite opaque in allocation places for timed race events versus first past the post races. For example, the Zwift Duathlon League has points accumulated for the ride distance achieved within 35 minutes, but the ZwiftPower finisher place and subsequent ranking adjustment is completely different. Do you know how ZwiftPower works for timed events? Looking at distance traveled during a timed event would help clarify the places and rankings.
I’m not sure ZwiftPower DOES work for timed events. I think that’s something WTRL sort of came up with and they manage the results in their own system.
Does ZwiftPower give you ranking points for those Duathlon races? And are they accurate? My guess is the ranking points shouldn’t even be applied to those events… unless ZwiftPower has figured out how to rank stuff accurately for those time-based events.
My Duathlon League results were included in the race rankings about a month ago – I did contact Zwift and ask that they be removed, not sure if that did it but now my Duathlon results are not actually included in the race ranking calculation, although the scores are still shown against the event line by line.
David, ZwiftPower has applied ranking points to the Duathlon time based races however, as I think you suspect, they have not used the distance travelled. As this is a time based race the results show everyone finishing at 35 minutes plus fractions of a second (much like the results shown for group club rides). The result list bears no relation to the distance travelled, in fact in one race I finished 2 miles behind one strong rider but 14 ranking points positions above him. As the result list being used is in a random order in most cases the Top… Read more »
Thanks for a great article. Do you know how ZwiftPower calculate “Estimated race quality” for upcoming events? It is certainly not calculated as the average of top five ranked riders in the sign-up list multiplied by 0.9. Did a quick test on a few upcoming events and found out that the estimated race quality was significantly lower than avg top5*0.9 (in events where the top five ranked riders had entered the correct category.) (BTW congrats on beating me by one place in the L39ions of LA race before Christmas. Thanks to the massive number of participants, I was able to… Read more »
I’m not sure how ZP gets its race quality number – and I wrote an article on the topic! (https://zwiftinsider.com/race-quality/)
I’ve tried to figure it out – it MUST be tied to who is signed up, and perhaps to HOW MANY are signed up. But I don’t know the formula. Would love to know how it works.
Is there a easier way to find good quality races where people better ranked than you are racing? Thanks!
Yes, on Zwiftpower.com under the Events tab they indicate the race quality based on the riders that are registered if you click on the Rankings button. The race quality appears for each Category. This can obviously change as riders don’t race that were registered or as higher quality racers register at the last minute.
Nice! Thanks Vince 😉
See https://zwiftinsider.com/race-quality/
Great explainer!! I really like this scoring system, as a mid-B this is pretty much the only way I can actually assess my racing performance, my position in a given race is a complete lottery depending on the quality of the field, which is very difficult to assess without any kind of comparative across races, but this scoring system is very good. Watch out for anomalous races counting – eg for a while my Zwift Duathlon run scores were counting (even more odd given it was a how far can you run in 15 minutes race) but that does seem… Read more »
Apart from the very top of the ranking i suppose it’s a rather unpopular metric. Zwift categories and w/kg matter much more to most i imagine, which is fair. But upon discovering that i’m in the top 1000 of my country i care a lot more.
When i tell my parents that i achieved a new personal best 30s second power of 7w/kg, chances are they will look at me with puzzled eyes. But top 1000 in my country? Now we are talking 😀
Absolutely!
Thanks Eric. i wrote you about Zwifpower ranking two weeks ago. To be in the results racer must finishing a race. In the starting pen 100 racers of your category. In the results ? 30. 70 racers with DNF. If a racer start a race,he must be in the results like IRL. Zwiftpower must change this, it is not fair !
Yeah, I’m not sure what the fix is there.
One thing, though: you will almost ALWAYS have fewer finishers listed on ZwiftPower than who are in the actual race, since ZP only lists people who have registered with ZP. Especially in D and C categories, you get a lot of riders who just hop in and race, but have never created their ZwiftPower account.
I was writing about Zwifpower racers, Eric. But if you think isn’t a problem..
That’s a crazy number to DNF – I’ve never seen that in the B races I’ve done. Perhaps it was a super long race? Can you link to it?
My estimate is that in A races that feature some sort of hill(s), dropout rate is on the order of 30 percent. Less for super flat races. The fix is simple. Anybody who starts a race will be included in the results. Like IRL
For more detailed post-race evaluation in any specific race, you can use the “columns” tab to add “Rank before” and “Rank for Event”. That will show every finisher’s rank before the event and what the rank result for the race is.
Also, as a guide to what races may be best to enter, in the zwiftpower events page, click on the “Rankings” button at the top. You will then see the estimated quality of each category for each event. Lower numbers are better.
Great article but this is a false ranking system. It’s very heavily weighted to a euro centric timezone where the “top ranked” riders race. It doesn’t take into account the talent in Japan, Australia or parts of North America where strong riders live. Yes if you race against a high quality competition then you will get higher points but when you look at a lot of those races the majority of them finish in a sprint on a flat to rolling course. In fact some very short races that are heavily attended (oh crit, kirch, evo) that are less than… Read more »
It seems that individuals that aren’t actively racing are still included in the rankings, is this correct? if so, I wish there was a way to either filter the rankings to see racers that are active or maybe have a yearly ranking along with an all-time.
He stated the scores are “last 90 days” yet the leaders in that list “last raced” in 2020 and 2019. Certainly not within the last 90 days.
So the error seems to be in the “Last Race” column as going to each individual account has much more recent racing information.
Need to include the rage quitters in the race quality score – too many people quit if they are dropped and the. Don’t factor in the calculation as they are not a finisher
So if there are 100 riders at the start (and finishers), when the top 10 riders all have ranking 400 and the rest of the riders have ranking 100, the last rider in the race gets the best rating from the race?
Race quality = 360
Points per place = -4.6464…
That means the first rider gets ranking of 360 and the last rider gets ranking of -100.
Is the system just hoping a case like that never happens or is there a safety mechanism that is not shown in this article?
Isn’t that where this bit comes in “Note: there is an exception to the Race Quality equation. If the average of all of the riders who finish the race is lower than that of the average of the best 5 in the top 10 then the Race Quality is calculated using the total race average points instead of the average of the best 5 in the top 10. This is a very rare occurrence on Zwift due to fairly large and diverse field sizes.”
So this article explains how the race points are calculated for each rider finishing a race, but how is *rider ranking* calculated? How do you go from earning X points at a race to having points subtracted from your rider ranking? e.g., If I were the winner in the above example and I earned 225 points in the race, how many (negative) points is my rank improved by?
“Best 5 Races in Past 90 Days”, so your latest race would contribute to that if it made your top five. As it’s the average of 5,the difference between your other best 4 and this race would be divided by five.
Oh, now I see. You can’t look at one race in isolation to determine how it affected your rank because how much it affected your rank depends on what it is being averaged with. So if you earn 225 points for your first ever race, your rank would be (4(600) +225)/5 = 525, so a change of 75 points. But if this wasn’t your first race and your rank was lower than 600 (but still higher than 225,) the resulting change from earning 225 points would be smaller. Thanks for filling in the blanks for me!
It’s interesting comparing ZwiftPower to RGTDB (RGT Cycling ranking). In RGTDB, riders start with an “average” ranking, then if they are not that strong, racing tends to reduce their ranking, so there’s a counterincentive to racing for less strong riders if all they care about is ranking. In Zwift, there tends to be an incentive for racing, as the default ranking is the bottom of the rankings. Also in RGT, if you register for an event and don’t start (unless you’re the organizer) you are given last place. So simply finishing is always better than not finishing or not starting… Read more »
Any idea why sometimes WTRL TTT races get result points while others don’t?
Not sure, as I’ve never managed races on ZwiftPower’s backend. But what I’ve HEARD is TTT results are never supposed to count, and any results should be cleared by WTRL. Now, whether that’s happening or not, I have no idea…
Is there a minimum number of racers in a group (A, B, C, D) in order for you to get a ranking result?
Not that I’m aware of.
Eric – couple of examples where no ranking
https://zwiftpower.com/events.php?zid=2669860 (1 in B Race – me)
https://zwiftpower.com/events.php?zid=2701294 (4 in A Race) – 3 in C race and they got ranking
Only 2 races I have done w/o a ranking. Unsure why
Weird.
I mean, the first one makes sense. If you’re the only B, you’re not going to earn points for winning.
But the second one is weird. Don’t know the answer there. Would be a question for 3R.
thanks Eric – I will let you know if I hear anything from 3R – I did send them email
Tyler
Tyler if you get an answer from 3R would like to see what it is. Zwiftpower rankings follow USA Cycling rankings. In answer to a similar question as to why a racer didn’t get ranking points this is their answer below. “Last, but not least, is that there were 2 or fewer people in your race, and there isn’t enough data to create a ranking for that particular event.” from that I believe there must be at least three or more racers to get ranking points. in your four A category riders question I observe that all four finished in… Read more »
Based on my experience too (and kind of implied by the formulae Eric obtained) the answer seems to be 5.
Hi QQ do we know if Anti Sandbagging races have a different calculation model than the above?
Thanks
They do not.
Hi Eric. What role does gender play in calculations? I frequently jump into races with no women’s category because there are so few. Are my points calculated as if I were male with no adjustment for gender?
Correct. There is no gender adjustment. Calculations are based on the riders in the category you’re riding, regardless of gender.
Thank you Eric for this article. Really useful as I start my journey into Zwift racing.
Do you know if there is a minimum distance/duration for the race to be ranked in Zwift Power?
I just did a short 12km EVO CC Sprint Race CAT A which was not ranked. It lasted about 16 minutes.
No minimum that I know of. If there is, it’s certainly more than 12km! Sometimes the rankings take a bit of time to show up.
The ranking points for you race and the other groups have now been calculated and published alongside the results. Unfortunately there were only two ZwiftPower finishers in your A category race and I have a feeling there must be more than 2 finishers for ranking points to be awarded.
Thanks Eric and Ian for your detailed insights! I will try to look for more popular races. Appreciate your efforts checking too 🙂
Hi Eric, thanks for the info. I’ve completed the same race multiple times. Looking back, some of those races display a ranking in the Result column (i.e. a number under 600) but most have a blank Result. Does ZP leave that field blank if you don’t score under 600?
Thanks! Great stuff, wish I’d looked at this ages ago.
I set myself the goal of getting into the top 1,000 ranked riders in my country. Today I achieved it, but it feels a bit flat as I did so by coming 4th out of 4 in a crit city race! Dead last and I get the boost I needed. Hmmm. Doesn’t feel as good as I’d hoped.
Thanks for all the info, I do have a question though. Does ZP only consider those in your CAT for the points? Ive raced 2 that show no result. While I was the highest rank in my CAT (C), I finished ahead of some in the CAT above (and they had higher rankings before the event). I ask because it relates to a post you link here about races to select, I have no sprint… seriously none. I try hard to avoid group sprints. I can make breaks though, and in my latest race (group start) I made a break… Read more »
Your ranking is calculated against others in the category you entered. You can see a good example of this in a recent 3R race, where all categories started and raced together: https://zwiftpower.com/events.php?zid=2937343 If you enable the “Rank for Event” column you’ll see the points calculations are done on a per-category basis, not an overall basis. So if you enter a race like this, where A, B, C, and D all start and ride together, if you’re a C and you beat an A… that doesn’t actually help your score directly. Now, if this race had just, say, an “E” category,… Read more »
Yes, that makes sense. Thank you for the response. I was thinking I was using my strengths tactically, which does get me high finishes, but obviously doesn’t help my ranking.
Back after a Zwiftless period, I did some racing today (thanks for the Tiny race series!). My ranking before today was 600 pts. Four races later, I’m at 240.86 pts. I clicked the “Info” box next to my Race ranking on Zwiftpower, and started to wonder.. What does “category” actually mean here? It says that I’m 2nd in my category, 1151st in my age group and 116th in my country etc. I find it hard to belive that I’m 2nd place by any standards, so how come? As far as I can tell, I’m not in 2nd place in any… Read more »
Need a link to your ZwiftPower profile if you want me to take a look…
Sure! 🙂
https://zwiftpower.com/profile.php?z=3347700
The weirdness is, you have no “Minimum Category” in ZP. I think that’s why it shows you as ranked 3rd in your category…
Looks like you haven’t done any recent race efforts over 20 minutes in length. I think if you do that, it’ll assign you a minimum category.
Sounds plausible. 🙂 So 3rd in a category that doesn’t really exist.. Always something!
Are there a minimum number of ZP registered race entrants for tanking points to apply? I thought it was 3 but ive just done a race with 1 A+ and 4 A’s on ZP and no ranking scores for anyone?
Not that I’m aware of. Could be the rider organizer set up the event in ZP so it didn’t give out points…?
Seems to be 5 finishers (DQs included)
Does it take a while for the point results to be posted? Still waiting on two results that I know are in my top 5
I ride B and A races (a lot – 450 races so far). The effort to get a good ranking in A is MUCH more than to get a good ranking in B. This is where it falls down – there is no way those top B finishers could get those rankings in an A race (I know cos I am one of them). I currently average around 240-190 in an A race. With the same effort in a similarly deep feild, I can get 180-140 in a B race. So we have B racers with great rankings and A… Read more »