Where is Zwift's Calibration White Paper?

I have a lot of questions about trainer calibration that would probably be answered in a white paper authored by Zwift.

I have read through various post in the forum on the subject of calibration and there appears to be a lot of confusion and concern about Zwift ability to accurately reflect one’s performance within the game.

When the term calibration is used I want to know precisely what is being calibrated and why. My simple understanding (guessing) is that the only thing that need to be calibrated/determined is power loss due to friction forces within the fitness equipment being used. It is my understanding (guessing) this required so Zwift can compensate for the difference between a well maintained/optimized and poorly maintained/suboptimal equipment to make the Zwift’ing experience all about the person’s ability and not the fitness equipment.

It appears there is an assumption that ALL power meters report accurate power. I have yet to see a maintenance/test procedure an end user can use to determine the accuracy of the power reading and how to compensate for any error.

What I want to know is how Zwift uses data from the various sensors in play to accurately reflect in- game performance. There must be a huge difference if a power meter is in the mix or not.

With the exception of someone with a dumb trainer and an ad-hoc collection of speed, cadence and possibly a power sensor, “calibration” should be the purview of the smart trainer manufacture. I only see the need for Zwift’s built-in calibration process to support dumb trainers. A smart trainer should have its own procedure (app) to calibrate power and determine fictional power losses and Zwift should just trust the power numbers it receives.

I currently am using a Wahoo Kicker V5 (2020) and it claims to be “calibration free”. Actually, it supposedly (guessing again here) it self-calibrates continuously by monitoring the spin deceleration rate of its flywheel under a 0 power input state. Therefore, there should never be a reason to use Zwift’s built-in calibration procedure. Whether the Kickr V5 adjusts the power number before sending to Zwift, or sends raw power numbers and an occasional compensation factor is unknown to me.

I just like to know how things work so I can have some confidence in the accuracy of the game experience.

This is pretty much the case and Zwift doesn’t really need to offer any calibration feature. It didn’t work at all on my Saris M2. I believe that your new Kickr doesn’t really calibrate - it ignores the result of any calibration process.

If you record your data with more than one device, you can see that Zwift isn’t doing anything with the power numbers.

1 Like

Calibration is just checking the zero offset. Nothing special it can be done in Zwift or with the trainer software. Zwift uses the data it receive from the trainer as is.

Apps like Zwift have control only over initiating those procedures.
What Zwift needs to know and implement is described in common spec documents.
On the bluetooth side of things those are the Cycling Power Service spec and the FTMS spec.

In the FTMS spec look for section Spin Down Control Procedure:

And that is appendix 3:

In the Cycling Power Service look for section Start Enhanced Offset Compensation Procedure:

You can search for and downwoad those and other related documents at: GATT specifications

Full documents are at (downloads a pdf): Cycling Power Service, Fitness Machine Service

1 Like

What do you mean by “zero offset”?

I am guessing zero offset is a compensation value that accounts for frictional losses in the fitness equipment (FE) and is intended to level the playing field for Zwift participates. Does Zwift request this value from the FE and then use it in some way, or does Zwift simply accept the FE power values as gospel.

Isn’t Zwift’s built in Calibration procedure necessary for riders that are not using a smart trainer with a built in power meter, or a separate power meter?

So there is a provision for an app (Zwift) to initiate a “Spin down Procedure” and “Enhanced Offset Compensation” procedure in the BT FMTS spec. Doesn’t seem like it is a good idea for apps like Zwift to manage the calibration process; Zwift should simply query from the FE the last time a calibration was preformed and suggest maybe it is time to recalibrate using the FE manufacture’s calibration procedure/tools.

Really do not need to be concerned about the minutia of industry specs. What Zwift users need is a layman’s understanding of how sensor data from the FE influences the game experience.

So it looks like the “Spin Down Procedure” and “Enhanced Offset Compensation” are intended to be used together. One creates the data for determining an offset compensation value which can be read by Zwift.

So my question is how often does Zwift request this offset compensation value from the FE and how does it use it? Gerrie_Delport_ODZ terse response, “Zwift uses the data it receives from the trainer as is”, implies it just uses the raw power numbers sent by the FE.

With respect to my Wahoo Kickr v5 (continuously self calibrating) the Zwift option to initiate a calibration should be rejected by the Kickr. Actually, Zwift should sense the FE is a Wahoo Kickr v5 and not even have an initiate calibration option. The device app that came with my Kickr doesn’t have a calibration option.

I would be fascinated knowing how Zwift/UCI validated participates’ equipment used in the recent eSports World Championship.

As I understand it, calibration requirements arent determined by time but by a variety of factors such as whether bikes are moved on/off, humidity, temperature etc.

Its good that Zwift provide the capability for the numerous people that cant get the manufacturers apps working properly, but as you will see from all the threads here on sandbaggers, Cat cheats etc, Zwift have other priorities for their developments. And quite rightly so, the manufacturers should be making high quality products like the Kickr5 and Neo’s so they are very accurate all the time.

They all used Neo’s provided by Zwift.

I think that your expectations are off regarding Zwift “levelling the playing field” for different equipment. Zwift does nothing of the sort.

Zwift simply takes the power numbers reported by the trainer and uses them as a primary part of its calculation as to how how fast it moves your avatar in-game.

Trainers and smart bikes vary wildly as to how accurate they are. Some are very accurate but some are way off. Standalone power meters are usually very accurate.

There is no compensation for frictional losses. A crank power meter measures the power generated at those cranks and doesn’t account for the drivetrain losses (though those will typically be small). A direct drive smart trainer or hub-based power meter measures the power at the hub or trainer flywheel. A wheel-on smart trainer measures the power at the roller and there could be some slippage, especially at higher power/gradients.

Zwift calibration really doesn’t do much. The trainer’s calibration doesn’t do much either, but at least it should be more reliable being from the manufacturer of the trainer.

1 Like

I don’t think that is strictly true (or maybe not the correct term) zero offset, as far as I understand it, is for separate power meters where you get off the bike so the power meter should be reporting zero power and then tell the power meter whatever it thinks the power is now (weight of the pedals etc), that should be zero. A bit like if you have kitchen scales, put something on it and press the reset button and it sets that weight to be zero.

a spin down calculates how much energy/power is lost due to the internals of the trainer by working out how long it takes for the flywheel to slow down. the longer it takes the more resistance caused by the trainer itself.

That is a very simplified view of my understanding of it.

No it just set the trainer to the value as it came out of the factory. Much like your kitchen scale when you turn it on and press zero, it measure what ever is on it and make that value zero.

No you can use the manufacturer app to calibrate, in fact Zwift suggest that you do that.

The trainer will save the date and time when it was last “calibrated” you can find it in the log file.

The word calibration is used very loosely. It is just checking the zero value to compensate for friction and temperature difference. The true calibration is done in the factory and can’t be changed by the user or by Zwift or by the app.
The calibrate a trainer you will need a second power meter that has been calibrated in a lab and have a calibration certificate.

Zwift/UCI send calibrated trainers to every participant to use during the event. They also had to duel record with a second power meter.

1 Like

Well, you’ve asked for the white papers on calibration and those are them.
My point being, there is a standard way for client apps to approach calibration.
Tacx Utility App, Elite App, Zwift etc. they all have to follow the standard.

Since there is great variability of power meter technologies, from classical strain gauges, optical, and magnetic solutions, the details of calibrating a particular device are only known by the device itself.
The Clint apps like Zwift only say: ‘Hey, calibrate yourself, please!’, and the device returns a response ‘Ok, I am ready, let’s roll!’.

From that point on the Client app subscribes for notifications on various readings like power and cadence and waits for the trainer to send data. So yes power numbers aren’t being manipulated
by the Client App.

The calibration feature is there only for convenience, so that users wouldn’t need to open yet another app just to calibrate the trainer.