Introducing - Zwift Racer Rankings Done Right - an ELO-MMR based smart ranking system

Zwift Insider article:

Trial race with pens sorted by ranking:

As discussed elsewhere on this forum, I have been researching ranking systems used in other online games, such as Rocket League, to see what would work well for Zwift Racing. This seemed a little more urgent with the suggestion that, in the future, Zwift would look to utilise the ZwiftPower/USAC rankings system that already exists to rank riders, which has a number of significant flaws. I settled on ELO-MMR as the easiest to implement but with the most relevant benefits, and started researching how to store race results and build a proof-of-concept system. Fortunately I ended up in contact with Tim, who had already done all of the work (but to a much higher standard). We were on exactly the same page regarding our vision for the future of Zwift racing, and I am super happy to share the hard work he has done.

Much more information is available in the ZI article and on the website itself. A couple of key points to note:

  • The website is in beta. Each season the data will be analysed for continuous improvement, for example smarter initial seeding

  • It isn’t magic. If a rider chooses to ride Z2 for their first 10 races, then their ranking will be low. It is not a crystal ball, although the K factor allows it to learn fast

  • It is designed to work with any race format an organiser desires. Pens do not have to be split by ranking. If you want to sort pens by 20m w/kg for an Alpe race, so be it. The ranking system still works

  • It does not work for points races (yet)

  • For race organisers to split pens by ranking, the races really need to be privately organised for the time being. We are hoping that when Zwift look to a formal implementation of ranking-based racing, they look firstly at this system and ELO-MMR (and hey, maybe give Tim a call)

  • The ability to use different inputs to split pens, including power metrics if desired, is still a really critical piece of functionality to support innovation

  • Something perhaps not explicit in the article is that the rankings are parabolic - there are very few riders at the very top rank. When split in to their sub-divisons, there are 15 rankings, so there are many ways a race organise could distribute ranks to pens. The example in the trial race listed above is just a starter for ten from me.

Please ask questions below (after reading the article and spending some time with the website), and myself or other community members that have been involved in the testing of this system will endeavour to answer.


I’ve been following the beta for a couple of weeks and it looks very promising!

Quick question… my rating on the site is Gold II and 3175…

Which pen would I enter for the test race? My cat is Gold 2, but my points are less than 3250.

Pen D: Gold 2 and higher (>3250)
Pen C: Silver 3 and higher (>2500)

1 Like

EDIT: spotted the issue. Description has not carried over to the individual pen description. Updating now.

I have updated the race description to make it a bit clearer:

Pen E: Ranking above 4000 on (Platinum 1 and higher)
Pen D: Ranking above 3250 on (Gold 1 and higher )
Pen C: Ranking above 2500 on (Silver 1 and higher)
Pen B: Ranking above 2000 on (Silver 3 and higher)
Pen A: Ranking below 2000 on (Bronze)


Hope it works out well. Looks like plenty of effort has gone into it. Signed up for Wednesday as it needs to be tested and supported by the wider community…

1 Like

Will be interesting to see how this system plays out over a number of races, hope to make the start on Wednesday, but I cannot guarantee to finish.

Which brings me to my main point of this post… If I or others do not finish, do racers in our pen who do finish get the equivalent ranking point reward for having technically beaten me, while my rank score lowers?


Managed to locate myself (Silver II) but couldn’t find a way of seeing how (badly :laughing:) I rank in the grand scheme of things i.e. where my ranking falls overall (out of the 41,761 entries) or even how I rank in just the ZP “C” or ZR “Silver” categories?

AFAIU, the race results are taken from ZwiftPower, so if you are not listed there, you are not part of the rank update calculation.

@gloscherrybomb You have race start time conflicts going on for Wednesday…

Zwiftpower race info page says 1930 BST
Zwiftpower web signup page and Companion say 2000 BST

Not sure if it is the model, the input or both but at first glance results seem off. Number one has raced 20 times and only won three.

Number 35 raced seven, won four and podiumed five. He also has a much better track record and would ride several of those in front off him of his wheel. Just eye balling it something seems off.

i think the only thing i am actually better than teugels at is typing useless ■■■■ on internet forums but there i am in 17th so whatever. i will test it anyway

Looking to get an FAQ up on the website, as lots of the same questions coming in.

Plan is to show your overall ranking on your profile page soon. It is technically very expensive to do it elsewhere.

You’re pretty good at podiuming every race you enter, so there is that :wink:

It is, naturally, susceptible to the races you chose enter and the fields you compete against. If you look at a rider’s profile, you can see their ranking change history over time. Let me know if anything seems off.

I’m not sure on the value of the CP metric - It’s based on a 20min number that for many won’t be a fully committed effort… as you know, sandbaggers.

It won’t match the zwift CP figure and mine is different to figure… Might be better to hide it for now?

It’s 8pm UK time. I’ll try to get ZwiftPower to update.

1 Like

Indeed it is calculated CP only from your race efforts this season. I think it’s still interesting, but it’s good feedback you could give in the discord channel.

What discord channel?

Did I not read far enough…

Ha bottom of the website

I’ve done a few races this season but I can’t find myself in the rankings. I mean I know I’ll be in the lowest pen, but should I be found in the search? Last race was Sept 9.

I think the season reset was September 4th - was it a ‘normal’ Zwift race on September 9th?