Introduction – What is this Blog?

What’s this all about? Well, on the surface this is a blog about cheating in Zwift races.

I give an inside view of how cheating is done in races in such a way that the race results look perfectly legit even on ZwiftPower, i.e. cheating in order to secure that gold cup in the ZwiftPower race results. This inside view comes from my own races, where I cheat and at the same time observe other cheaters. Hence if you read the various posts, at the very least you get a deeper understanding of the less visible but all too common form of cheating I call cruising. If you haven’t reflected on the phenomenon yet it should be an eye opener for you. But you could also use the information in the posts to get you up to speed so you can start cheating yourself, if you would like to. It’s up to you what you do with your freetime. You should at least have equal opportunities. The series of posts tagged as Cheat School as well as the Race Reports provide the inside view.

Beneath the surface this blog is not about cheating at all. It is a critique against the race mechanics and rules in Zwift as they stand today. My firm view is that most of the cheating, which you will find in almost every race in categories B-D throughout the weekly Zwift race schedule, is an artifact that is created by ill thought out race rules, rules that Zwift could easily change to make racing a much more fair and thus more fun experience. There are also other flaws in Zwift racing creating unfair advantages where the beneficiaries are not actually cheating, but it is still there, it ruins racing and I explain those quirks too.

“Fun is Fast”, they say in the Zwift commercials. “Fun is Fair” is the statement between the lines in this blog. You will get a deeper understanding of the flaws of the Zwift racing system in posts tagged as Cheating Theory or General.

Except for this introductory post, all the posts are displayed in descending date order, the latest posts first. So you need to browse a little to go back to older posts. In e.g. the Race Reports I often refer to older posts that introduce some key concepts, so there is a reason for you to go back and read up on those. Like any other blog keeper I encourage you to read all of it of course, but if you want to deepen your understanding of how Zwift racing really works, then you should actually spend some time here. Chances are you will be as astonished as I once was myself when I began to understand bit by bit what is really going on in Zwift races and what the real reasons were why I struggled so much without ever getting rewarded. No need to reinvent the wheel. Just read some posts and take it from there.

I try to be mildly entertaining. Still, you might find some posts or comments harsh or even offensive. That’s because I’m pissed off. Not with you. Not with cheaters (really!). But with Zwift. Zwift racing is badly designed. And their CRM, Customer Relations Management, is just terrible. Many of us paying subscribers have tried for years to make Zwift listen and address the issues we see but nothing ever happens. Zwift regularly brushes off these customer complaints with the argument that Zwift racing is just a margin phenomenon or feature that attracts comparatively few subscribers, hence they need to focus on more pressing issues that would benefit the bulk of the subscribers (not that we see much of that either). But this is a flawed argument or at least a bad strategic choice on their part. Subscribers that are not new tend to drift into racing sooner or later. Those who then back away and stick to group rides or solo activities typically had bad first experiences in races.

Just look at the weekly events calendar – the by far most common event is races. And a big part of Zwift marketing is the high profile elite racing events, which for various reasons I discuss are not nearly as flawed as the subscriber races. For a sustainable Zwift we really need racing fixed. But Zwift seems to focus entirely on attracting as many new subscribers as possible without taking care of the loyal subscribers they already have. That’s not sustainable. That’s an exit strategy, inflating subscriber numbers before selling off the company to some other party. So do we have a future as long-time subscribers in Zwift, or should we simply jump ship? Read and decide for yourself.

Tagged :

Sheriff of Watopia, you need throw me in the dungeon too!

Time to revive the blog? I have stayed in “that thread” over at the Zwift forum for some time. Maybe I should collect the last year’s events and summarize them here before they are successfully buried in that merged thread?

I just felt I had to write an urgent post today to show a little solidarity with zwift racer Luciano Pollastri, who recently posted a report in a blog on an exploit in the Zwift Companion app likely being used extensively in racing. The report is quite similar to exploit reports within IT security, a common way to draw attention to and raise concern over threats to integrity in some system or other. In this case Zwift racing. It’s how you make zero day yesterday. It’s helping. Only Zwift didn’t see it that way.

Yapping the #freeluciano meme spreading over at the forum, like some Instagram diva who wants to follow in the general direction of the winds and get a completely safe share of the spotlight, does absolutely nothing for Luciano, who got suspended by Zwift for helping them find the exploit and who was also forced to delete the report from the blog. (According to Zwift he should have whispered in their ear instead of posting that report and then waited a few months or maybe years for them to respond zwiftly with an emergency patch, and so he was punished for his crime.)

You need to dare stick your neck out if you feel the suspension was unjust. So come on, pussies! Real solidarity in any movement is all about sitting in and sharing whatever unjust punishment that was delivered. If everyone and his mother spread his report, what can they do? Ban us all? We should at least give them the opportunity. So I’ll just… put my money where my mouth is, I guess, and be the second one to go. Here goes nothing…

Hey Zwift, I’m a criminal too, violating the ToS or PoS or whatever! You should punish me. I’ll take the suspension or ban. But while you drag me in chains to the dungeon, think about this:

Cruising is also an exploit, a way to get a repeatable unfair advantage in races. Yet you allow it. How is that conceptually any different from the exploit Luciano showed you? Accordingly, I should have been suspended years ago and you should have addressed that problem too.

Below is Luciano’s report verbatim but without some of the pics that were broken in the forbidden copy an anonymous benefactor provided me with, best I can do right, sorry:

The Ultimate Undetectable Weight Cheat on Zwift

We think we came across probably the most effective, easy, and undetectable way to cheat on races, changing your weight unnoticed during races through the companion app.

Alerted by some «strange» behaviors from some riders in certain categories, and increasing rumors pointing at people being able to change their weight during ZRL Races, we tested it.

Our conclusion is that you can actually cheat starting the race with any weight and change it during the race with the companion app as needed, depending on the profile of the race (add weight in descent, be lighter in climbs). The weight change takes effect almost immediately during the race. All apparent w/kg calculations upon arrival are made based on the last weight crossing the arrival and are apparently not detectable. Variations are unnoticeable by other riders if done properly.

We believe it is already widely exploited in competition and affects race results as some indirect conversations occur among riders. In the interest of fairness of competition, we believe such a simple and definitive way to cheat, such a substantial hack should be addressed immediately. As most races are decided on very small variations and in short time periods up to 5 minutes, this is the simplest and most effective cheat we know so far.

Fix seems simple: disable weight change feature through companion appThough ZADA seems to have made Zwift aware of the hack, nothing has been done so far to solve the issue.

Here goes our analysis. Are we missing something?

[Youtube video]

The Protocol Agreed to Demonstrate the Hackchanging the weight during a TT and see what happens.

We did not need to go to second phase of the protocol as first test was 100% conclusive: the weight can be changed during the race through companion app and only the final weight is reflected in the different platforms.

The testBologna TT (Friday 18th February 10 AM CET)

We chose a TT to avoid generating draft or having an influence on the race. Also I love Bologna circuit :).

I have changed my weight from 79 to 50kg before the start of the race.

Started the race with 50kg at 200w average and then 220w, showing 3,8w/kg and 5.1 w/kg as you can see in the snapshots. So 50kg weight is effective on the race dynamics (Speed, etc…).

Started Bologna climb with 50kg and changed the weight from 50 to 79kg through the companion app at km 6.9.

Change of Weight from 50kg to 79kg During the Climb

The change of weight takes around 15 seconds to be effective. At first it seems nothing happens, but then the home trainer increases difficulty (see youtube video at 2 minutes and 55 seconds)

The weight change took a few seconds to be effective and now you can see that for way higher absolute watts the w/kg has gone down. Speed going down and HR going up.

After the weight change, 296w equals 3.8w/kg

If before weight change 200w meant 4 w/kg, now I have 3.8w/kg with 296w. Heart rate has massively gone up (dfrom 136 to 147 BPM). It is crystal clear that the weight change has been implemented. During the entire first part of the race, and specially in the climb, I was benefiting from a lighter weight.

I finish the race at 79kg. All stats upon arrival are calculated with the 79kg (see youtube video). Nobody can see the change of weight.

Average 3w/kg if I was at 79kg the entire race


Same on ZwiftPower, reported weight for the race is 79kg, while I started at 50kg.

Fit file shows a substantial change in correlation speed vs power at km 6.9.

Strava also shows a dramatic change in the dynamics at 6.9km (screenshot of the bologna climb segment under)

Bologna Climb Strava Segment with In-Race Weight Change

Conclusion: in our opinion the easiest and undetectable way to cheat.

It is extremely easy to change your weight through the companion app and be lighter (or heavier in descents) through the entire race, and change it just before the arrival. As most races are decided on short efforts and differences of less than 0.5w/kg, the cheat is unnoticeable by other riders. Zwift needs to disable the weight change feature through companion app and be able to track weight changes occurring during the race.

Zwift: do something please!!! At least sticky-watters needed to train a little bit to cheat! This one feels like you left the door of the safe opened!!!


Zwiftpower link to the event:

Link to all snapshots taken (Google Drive folder) and fit files from Zwift Activity, Zwiftpower, and Strava in case someone feels like auditing this.