I’ve been testing a set of Favero Assioma pedals as well as Garmin Vector 3 pedals for several months, and while I’m impressed with their performance both on Zwift on IRL, there’s one Zwifty niggle that bugs me. I call it “sticky watts”, and it’s what this post is all about.
Ready to head down the rabbit hole with me? Let’s go!
Sticky Watts: an Introduction
Zwift processes the data for certain power meters in such a way that the wattage reading in-game gets “stuck” on a particular wattage for 3+ seconds whenever a rider stops pedaling quickly.
To illustrate, here are two quick test rides I did yesterday.
The first shows how power data should look. It compares Vector data from my Wahoo ELEMNT computer with Tacx NEO1 trainer data from Zwift’s .fit file:
Chart 1: Vector (via ELEMNT) vs NEO (via Zwift):
The second shows sticky watts. It compares Vector data from my Wahoo ELEMNT computer with data from the same Vector pedals from Zwift’s .fit file:
Chart 2: Vector (via ELEMNT) vs Vector (via Zwift):
Notice how, in chart 1, the power reading is changing every second, for both lines. This is how power data should look – when we’re pedaling, our power output is constantly changing. (True, there are two times I see where the NEO had the same reading for two seconds in a row, but those occurrences aren’t consistent, or very long.)
Now look at chart 2. Note how, whenever I stop pedaling, the blue line (remember this is the Vector power data from Zwift) “hangs” for three seconds (and sometimes as much as 6 seconds!)
Pointing Fingers
I’ve replicated the sticky watts issue using Assioma pedals as well as Vector 2 and Vector 3s. You may ask: are sticky watts created by the power meter pedals themselves? Or is it due to Zwift’s recording of their power?
Chart 2 above shows that it’s not the pedals. That chart shows data recorded from the same set of pedals, on the same ride, but recorded on two different sources. The purple line is my bike computer, and the light blue line is Zwift. You can see my bike computer recorded the data properly, while Zwift’s data (and only Zwift’s data) displays the sticky watts issue.
The astute observer may say, “But sticky watts didn’t happen in chart 1!” And you would be correct. Sticky watts on Zwift only happen with certain power meters. It doesn’t happen with the smart trainers I’ve tested. Let’s look at why this is…
Event-Based vs Time-Based Power Meters
Power meters come in all shapes and sizes, but if you look at the way they calculate and transmit data, there are two types: event-based and time-based. Here are the definitions straight from the excellent “Power Meter 101” article on Slowtwitch:
- Event-based. This type calculates and transmits power information based on ‘events’. For example, with a crank-based power meter, each cadence revolution is an event. That finite piece of time is the starting and ending point for our time in the power equation. Data will not transmit to the head unit if events aren’t happening (i.e. if you stop pedaling).
- Time-based. This type is identical to the above, but with a caveat. Events happen and power is calculated the same – but this information is stored first, and then transmitted at a specific time interval. The CycleOps Powertap hub uses this. Why? Generally speaking, your wheels spin faster than your cranks – and when you stop pedaling, your bike keeps moving. Events happen much faster and for more of your ride, so they essentially bottle them up and shoot data to the head unit at regular intervals of one second.
As I understand it, pedal and crank power meters are generally event-based. Smart trainers are generally time-based. And that, my friends, is why Zwift appears to process their data in two different ways.
Full transparency: I’m no power meter/electronics expert. And I’m certainly not privy to the details of how Zwift’s code processes power data. But my guess is, this is what happens when I stop pedaling:
- My pedals stop sending data. If they’re paired as the power source in Zwift, that means no power data is coming in. Zwift doesn’t know if this is a data dropout, or me just not pedaling! So it does what Zwift is programmed to do in the event of a data dropout – it holds onto the last power reading it received, for a few seconds. Then it drops to 0, because it is still paired with the pedals, even though it isn’t receiving power data from them.
- My smart trainer keeps transmitting a power reading at regular time intervals, even when I’m not pedaling. So if I’m reading power from my smart trainer, Zwift gets a zero watt reading when I stop pedaling.
Can Zwift Fix It?
Comparing bike computer data to Zwift data might lead a person to think that sticky watts is a Zwift bug – but I don’t think that’s the case. Rather, it’s simply how Zwift has to work given the realities of data dropouts and event-based power meters. Let me explain my theory (and again, I’ll remind you that I’m not an expert here).
My ELEMNT head unit is receiving the same data as Zwift. So when I stop pedaling, it stops receiving data from my pedals (because they aren’t sending anything). So why doesn’t my bike computer show/record sticky watts? Well, the truth is, it does. Sort of. My Wahoo ELEMNT does, at least. if I stop pedaling, it will get stuck on a particular wattage for a few seconds. But it doesn’t record those sticky watts. That’s the crucial difference.
We have to remember that immediate power data on Zwift is much more integral to the experience when compared with power data on a head unit. If Zwift wants to keep its users from seeing a zero watt number (and slowing down!) whenever even a short data dropout occurs, it has to allow for sticky watts. And those sticky watts directly affect the motion of our avatars in game.
In contrast, my ELEMNT can display those sticky watts, but it doesn’t write them to my .fit file. My guess is, the ELEMNT’s data processing code detects a lack of signal and keeps displaying the last wattage read for a few seconds – just like Zwift. But the ELEMNT has the luxury (and Zwift does not) of being able to buffer its data and effectively go back in time and write a different value to its .fit file than it was displaying on the screen. And that’s why we see data like chart 2 above.
Implications for Riding/Racing
Now we get to what I think is the important part of this article: how do sticky watts affect our Zwift experience, if at all?
My guess is, most Zwifters using a “sticky” power source haven’t even noticed the extra watts. This could just be me projecting my own lack of awareness, though! While I’ve ridden probably 20,000 miles on Zwift with power pedals as my primary power source, it wasn’t until I started testing these pedals around April 2020 that I noticed the stickiness. But a look back at my early dual recordings on ZwiftPower (such as Sprintapalooza back in September 2019) shows the issue existed back then.
The good news is, sticky watts don’t matter, most of the time. As long as you’re pedaling, sticky watts aren’t an issue – and we all know that it’s rare to stop pedaling in a Zwift race.
There are a few situations, though, where it can have a significant effect on your race.
Situation #1: Going Into the Supertuck
The supertuck is one of my favorite moves in a Zwift race, since it allows me to hang with the pack on a descent while resting. But timing is crucial when supertucking – you want your watts to hit zero only when the road gradient is -3% or more, and only when your rider is going fast enough to drop into the tuck.
Sticky watts can wreak havoc on a well-timed supertuck, or they can actually make your supertuck an even more effective move. They wreak havoc when you stop pedaling, but Zwift sticks your watts at some low number (say, 100W), which means your dropping into the supertuck is delayed and your power is low while you wait. This can cause you to drop from the group you’re trying to hang with.
But if you hit the wattage hard then stop pedaling immediately, your watts will typically get stuck at a really high number – perhaps 500-600 watts! This speeds you up, then drops you into the supertuck as soon as the stickiness ends.
Is it cheating to use sticky watts to your advantage when entering a supertuck? I’d say so, if you’re doing it on purpose. But here’s the sucky part – event-based power meter users are stuck between a rock and a hard place here. Because the only way to avoid sticky watts getting stuck at a low number and possibly messing up your supertuck is to 1) go hard then stop immediately (cheating) or 2) slow decrease your watts, so your pedals send power readings all the way down to zero. Neither of those approaches is a good one.
Situation #2: TTT Sink and Sprint
The “sink and sprint” move is used by TTT riders to move from the front of the pack to the back of the pack (learn more about it on TTT Secrets from Matt Gardiner). Sticky watts making timing your sink a real challenge, since your watts get stuck at a particular wattage for a few seconds before going to zero. That means you have to stop pedaling before you really need to.
Situation #3: Mini Microintervals
I know for a fact that racers have attempted to exploit the sticky watts bug in events by doing super short intervals – that is, pedaling hard to spike power, then stopping the pedals so the power gets stuck at that high wattage for a few seconds. Then do it again, and again!
Here’s a power file of a short microinterval test ride I did using my Assioma pedals (the purple line is the power data from Zwift (notice the sticky watts) and the blue line is the power data from the same pedals from my bike computer):
Look at the difference in average wattage between the two readings: Zwift’s power is 20% higher!
Would this approach work over an entire race? Not for me – I couldn’t continue doing microintervals for 40+ minutes. But perhaps some riders could. More likely, a cheater could use this technique for a short (1-2 minute) attack at a key point in the race, or in the final sprint.
As I understand it, ZwiftPower has some detection built in for this sort of repeated sticky watts behavior.
Situation #4: Shortened Sprint Finishes
If a rider’s setup consistently produces sticky watts at or near their peak power, they can use this to “coast” across the finish line at full power. Hit the sprint hard, put in a few final pedal strokes at maximum effort, then stop pedaling for the final 3 seconds over the line.
You may laugh – but riders do it already in Zwift races.
Conclusions
Armed with the knowledge of sticky watts, event-based power meter users find ourselves in a bit of a predicament. Do I keep using my pedals as my primary power source (because I want consistent readings between indoors and outdoors) even though it can affect my race data? Or do I switch to my smart trainer – which may be less accurate and will generally not match my outdoor power meter?
The best answer will vary from rider to rider due multiple factors. But I think it’s safe to say this is a concern that will continue to simmer in the Zwift racing community for the foreseeable future.
Your Thoughts
Have you noticed sticky watts with your Zwift setup? Do they affect the Zwift experience in ways that I missed? Share your thoughts below!