Today Zwift has non-announced its latest sanction, against Philipp Diegner of Canyon Esports, for falsifying data as part of their Zwift Racing League pro race series. This would make for the fifth individual in the last 6 months, but most notably - the first male to be caught under the more robust anti-cheating system geared at pro athletes. All four other cases have involved women, including two just last month. The only other previous male to receive a racing suspension from Zwift was Cam Jeffers a few years ago, though in an era well before the more advanced and heavily enforced means of capturing cheaters today - and in his case for entirely different reasons.
Ultimately though, the athlete in question had 11 pro race results nullified across two seasons, and received a 6-month suspension of racing on Zwift until July 24th, 2021. This is the first time Zwift has retroactively gone through and looked at past event data for transgressions, and then retroactively nullified those results. As such, Zwift is showing a bit of their hand here in the forward direction of what they plan to do in this arena.
The rider's troubles initially stemmed from a race on January 25th, 2021, specifically the pro-focused Zwift Racing League (Season 2), Men's Race #3. In that race, the rider finished in 39th position, essentially last place. However, like every other individual that's been 'charged' with a crime, it wasn't the race itself that got the rider in trouble, but rather, the coverup.
For those that are unfamiliar, pro level races in Zwift require what's known as dual recording. That means that you need to have Zwift paired to your smart trainer and let that file record like normal. But you *also* need to have your regular bike computer/watch record from your power meter. You thus must indeed own a power meter and a watch/bike computer, which of course, at this level isn't really an issue. But, what is an issue is if you accidentally pair to the wrong source (such as pairing to your trainer), or, if the battery dies, or you forget to press start, or you delete it, or...any other common day to day issues. If you dual-record enough, eventually things go wrong (seriously, almost nobody out there dual/triple/septuple-records more data than I do...and eventually human or mechanical error happens).
Ostensibly the purpose of this second recording of a second source power device is to 'prove' the accuracy of the first device. Or at least, provide a reasonable backstop for the data. If one device says your sprint was 1,300w, and the other says it was 800w, then that demonstrates concern for accuracy - or, perhaps something more sinister. But the true purpose of this secondary recording is it makes falsifying the data immensely more difficult (real-time or post-race). That's because not only does someone have to falsify one source with one understood signature, but then has to falsify another source with another signature. And then has to ensure the way those two signatures shadow each other during the race actually matches. For example, most crank-based power meters respond far faster than most trainers on sprints, the rate of change is different. But not just sprints, but every little surge in a race - of which there could be a hundred surges of varying intensities, both the ups and the downs. Anyway, we'll talk about that more another time.
The point here is more simplistic. Every single case to date has revolved around something going wrong with that secondary source recording, and then the athlete trying to tweak that second file to make it appear like a secondary power meter. In most cases, it was simply paired to the trainer instead, or, not started at all.
And in this case, Zwift found that the secondary data source was precisely 2% higher than the original power value from the trainer:
Of course, when someone says "Oh, my power reads 2% higher than my trainer", we'd all respond with "Sure, that makes perfect sense - it's higher up in the power meter chain, and thus due to drivetrain losses will be a higher value". Except what we're really saying is "Yeah, *about* 2% higher". In reality, the exact amount will vary from second to second. One second it'll be 1.5% higher, the next 3% higher, and then if you sprint it might be a second or two ahead, and then be 20% higher for one comparative second, before the next second being back to 1.8% higher as the update/recording/sensor rates all vary slightly from second to second.
Thus, when you blanket 2% increase the values in a file, it's like using white-out on printed paper text, then using a Sharpie to re-write a few words, followed by trying to pass it off as unchanged. It's that blindingly obvious.
But the funny thing about computer data is that it basically lasts forever. And over the course of the last 12 months, Zwift has significantly increased their processes for how they catch this sort of thing. Thus, in the report they noted:
About now you're asking: What the heck is the Three-Sisters calibration test?
In short, it's a calibration test that pro riders have to do in order to validate their performances. You can read about the entire thing here in the Zwift Ruleset, page 11-12. Or I guess, I could just paste a snippet of it below. Basically, you're riding a specific Zwift route (called The Three Sisters), which includes three climbs - a short/medium/long one, followed by a sprint. However, you're riding those specific four sections of the course at maximum all-out intensity. And you're doing this with the dual-recording system outlined above...oh, and you're recording a video the entire time of yourself.
The goal of this is to basically create a baseline of your human performance. But more cleverly, it's creating a baseline of your equipment, and establishing a signature of that. And proving that you rode it. And sure enough, the rider actually falsified the data in that original baseline test:
So in total, 5 races plus the calibration test were falsified. It's unclear why he selected to fabricate the secondary power source on those five races, but not on the other 6 that he competed in. Nonetheless, all of the racer's results for both seasons were disqualified, specifically the following races:
Season 1: 8 (Results: 64th, 2nd, 72nd, 27th, 14th, 30th, 71st, 81st)
Season 2: 3 (Results: 81st, 89th, 39th)
These are already reflected within the race results on Zwift's site.
Upon being presented the information, the athlete initially denied the data tampering, but then changed their mind and admitted wrongdoing:
As a result, the athlete has been banned from Zwift races until July 24th. The athlete still can utilize Zwift for non-racing, as well as race outside of Zwift - as this ban is not in connection with the UCI as the UCI is not overseeing this event.
Additionally, as was apparently announced 14 days ago and nobody noticed on Canyon Esports' team press site, the team has terminated their relationship with the athlete:
"As of 9 am 8th February 2021, rider Philipp Diegner will no longer be part of the Canyon Esports team. This decision has been made during an investigation by ZADA following Race No. 3 of ZRL Premier League. Evidence was brought to light that was previously unknown to Canyon Esports and it's management staff. As per the team's internal protocols, a decision was made to terminate the rider's contract and part ways. Philipp had previously been suspended from race duties while the team and ZADA's investigation was ongoing. At the time of publishing this notice, ZADA and Zwift have made no further announcement other than the disqualification from Race 3.
Canyon Esports had been investigating in good faith whether the reported irregularities had occurred involuntarily during the exporting process. However, before we could conclude that investigation we were presented with additional evidence which undermined the necessity to continue. Following further conversations with the rider and ZADA, the team was left with a hard but simple decision to end the relationship."
Rhys Howell, the Team Manager also added in the statement:
"We are an incredibly close-knit team, so losing a rider is like losing a limb. Personally, I can only describe my feelings as heartbroken. However, I did not hesitate for one second to make the necessary decision to terminate our agreement with the rider in question. Our team is more than any single rider alone and we believe firmly in transparency and a clean sport. There can be no deviations from that belief. Our sport relies on trust and a team like ours is founded upon it. We will now look at how we can avoid such situations in the future and I have reiterated to all our senior and development riders that they can and should always come to me first if they are struggling. I hope this episode will be but a lone footnote in the exciting story of our team."
At this time, the Canyon Esports team doesn't show a replacement for their 6th rider, having removed the image and name from their roster page.
As an interesting side note, the rider posted considerable dual-recording analysis sets of data to ZwiftPower here. What's notable about this is that these dual-recording sets all showed a Wahoo KICKR 18 on them, which is far more easily 'tweaked' to create an incorrect (inflated) power value than a newer KICKR V5/2020, as the newer unit automatically and continuously recalibrates back to known factory calibration values within a minute or two of you trying to do a re-calibration. And while we don't know if the athlete did tweak the calibration value on the KICKR 18, we do know the output values on their baseline Zwift tests were tweaked, but I don't know why you'd do that except to hide other values.
In fact, even more fascinatingly, it appears the athlete actually posted the data sets in question there, and you can see quite clearly that the 2% increase in wattage between these two labeled 'Infocrank' data sets - which appear identical.
In any case, this does continue though to bring up the never-ending question on when on earth Zwift will simply bake dual-recording into the game itself. After all, they're already recording quite a bit of this in log files. And the same goes for simply warning athletes when they're using an incorrect power source (per specific race rules), such as using a power meter instead of a trainer - or if they're missing their heart rate strap. All of these cases would never have happened if so.
Again - there's zero reason why any athlete, pro or amateur weeknight mom or dad racer, should have to deal with uploading multiple files manually to ZwiftPower or elsewhere.
Having asked Zwift this repeatedly in the past, they've said it was a development priority type thing. And given this only impacted a small number of pros, it wasn't high on the list. Which, I fundamentally disagree with. After all, Zwift is spending millions of dollars each month on pro-level racing (inclusive of production costs, staff costs, etc...) - why can't they spend a few more dev hours to record the secondary power meter source? This isn't hard. It's not remotely hard, and it'd benefit far more than just the pros. It'd benefit all the non-pros that also use ZwiftPower to upload dual-recording files to prove their data state.
And it'd benefit all those who want to see the bar for cheating in Zwift considerably raised.
Going Forward:
Now, as interesting as it may be to out people that cheat - my interest here actually lies elsewhere: The technological aspects of it. Specifically, the technological aspects of catching cheaters, and the vast complexities required there (both trying to cheat, and then catching the cheaters). In fact, it's an area I'm going to talk a bit about in some upcoming post or two, covering both what Zwift is doing, and how that might translate beyond that in a UCI world.
Part of this stemmed from a recent Twitter observation I made a few weeks back, that all of the people Zwift had caught via this newer system were female. I noted that statically that was an exceedingly slim likelihood. The resultant of that tweet was swiftly a lot of e-mails from Zwift, but more notably a conversation with their team of data scientists that actually look at these cases, and the processes that they go through that ultimately culminate in sanctions like today's.
However, at the other end, I've also talked with some of those representing athletes that have been accused of cheating by Zwift. And whether or not they're innocent or guilty, I think there are some elements of the picture that Zwift portrays that are fuzzy at best, and conflicting at worst. Aspects that don't seem to align as clearly with well established protocols of the UCI or others for what rights an athlete has in this process if they're being 'charged' with a crime. Because ultimately, like today, that athlete's name (and thus career) is being impacted. As is their ability to monetize that career.
So within that, we'll dive into why there are 160+ case numbers yet only 5 'convictions', as well as how Zwift separates what's 'willful' cheating from 'bad sensor data', both in the data analysis side but also the human accusation follow-up side. And then, to the extent that's viable, I'm going to show just how difficult it is to get away with cheating here at this level - especially using the methods that all five of these individuals have used...which frankly, are the least smart ways to go about cheating on Zwift. The goal is not to show all the things Zwift does to capture cheaters, but rather, to examine whether their methods are both enough, and fair (procedurally and technically) to those being accused.
And finally - why is it that all of us who Zwift with any frequency know there are cheaters everywhere, but none of them are being caught? Either willfully or just due to bad trainers/data. When and how will Zwift start to address more than just the official pro series events? Yup, I'll cover that too.
Until then, thanks for reading!