Zwift TT tests Take 2 - CdA relationship to rider weight - does this look right?

My first post on this topic caused some confusion, sorry about that. So here is another take on the same data, forget the fact that it came from Zwift the question is purely about the relationship between weight and CdA given an experienced rider using cutting edge equipment.

I think this is a topic of interest to anyone planning to do a time trial so the discussion could be useful just for that purpose as I always thought that weight was not a significant consideration on flat courses.

The tables below show the results of some TT tests done on Zwift.

All runs were identical except for 4 variables

  • Sector. 2 different sectors were used, one a 1.1% uphill. the other a -1.4% downhill constant gradient

  • Rider weight: this varied from 45kg to 90kg in 5kg increments

  • Power: a rough target of 320W was set but this varied slightly from run to run

  • Entry speed: the laps were flying so the entry speed may have differed slightly between runs which would affect average speed. This had an effect but not a significant one.

Bike was Cervelo P5x, wheels were Zipp 858/Super 9. The rider was 1.70m and rode in an indentical good TT position every time and there was no wind. 2 runs were done of each sector.

Gribble was used to calculate the CdA for each run based on speed/power. Defaults air density and drivetrain loss were used. Crr was 0.004

TT is not my main discipline so I don’t have much practical experience with actual CdA figures. The CdA numbers look quite high given the quality of the kit and the ideal conditions. The scaling with rider weight also looks strange. The chart at the end shows that the relationship between CdA and weight looks to be linear which seems odd for a cutting edge bike and a rider in good position. I would have expected the line to curve as larger riders will not necessarily have proportionately larger frontal areas.

However hopefully there will be some with good working knowledge of actual CdA data gere so my question to them is do these figures look right?

More generally, completely forgetting Zwift, what, with best current gear and an experienced rider would you expect the relationship between rider weight and CdA to be if all other factors were equal?

CdA Sector 1

CdA Sector 2

1 Like

Tbh I would take this to the Zwift forum or fb since people there likely care more and would give input


So, if you want to do this right, you should ignore Gribble’s estimate of CdA and your assumption of Zwift’s Crr and do the calculation yourself. Unfortunately, your data, especially at 90 kg are awfully noisy.

For example, using the data you’ve provided, at 45 kg, I get an estimated Crr of .0033 and an estimated CdA of 0.242 m^2 – however, the estimate for Crr has high standard error.

It’s worse for 90 kg. In that case, using the data you’ve provided, I’m getting Crr < .001 (and essentially indistinguishable from 0) and a CdA of 0.402 m^2 – but since estimated Crr and CdA are linked, if the estimate of Crr is low then the estimate of CdA is likely to be high.

So, the first thing you should do is so at least two more laps of the circuit, one at 45 kg and the other at 90 kg, and vary your power much more. You were trying to hold your power constant for all of these tests at around 325 watts. That’s a common mistake but from an estimation point of view, you don’t want that. You were doing two trials at the same speed and power. That’s wasted effort. You would have been better off doing two (or more) trials at different speed and power. You want your data to cover as much range as reasonable. Do a full lap at 165 watts, both at 45 kg and 90 kg.

Then add the new 165 watt tests to your data for 45 and 90 kg, go back to the power equation, and solve for the new Crr and CdA. If your standard errors are better, then you can go back and redo the tests at 165 watts for masses between 50 and 85 kg, but do the other tests first so you can make sure that the Crr and CdA are well-estimated. In fact, you’d be better off for this if you did one test at each of 100 watts, 150 watts, 200 watts, 250 watts, and then use the data you already collected at 325 watts. And, rather than do tests at 5 kg intervals, I’d probably have done them only at 45, 70, and 90 kg, then looked to see whether the estimated Crr’s were the same and the CdA’s were different.

That all said, you really ought to be keeping track not only of the power and elapsed time, but also the entry and exist velocities.

Does this all sound like a lot of trouble, doing all these tests and then having to do the calculations to get Crr and CdA, and see how they vary with mass? It is. So here’s my alternative suggestion, buried many paragraphs down in my post: Go to Fuego Flats. Set you mass at 45 kg. Do a 5 minute run in one direction, starting at maybe 100 watts and increasing slowly and monotonically up to 325 watts. If you want, you can turnaround and go back to the start, another 5 minutes, ramping up from 100 watts monotonically up to 325 watts. When done, download the data and import it into Golden Cheetah’s Aerolab module. Use it to solve for Crr and CdA. That’s close to what I do.


From my experience using Zwift the TT speeds were ridiculously slow. I’m a tall rider (and heavy even though reasonably lean) and it was 5kph+ slower riding a TT bike on Zwift than I am riding my road bike solo in the real world.

I’m no expert in estimating cda and crr, but Zwift just gets the calculations wrong. Maybe it just gets it wrong for bigger riders but I wouldn’t put much stock in their algorithm.

1 Like

Cool story bro.

Sorry, but I’m lost as to what you’re trying to work out here?


It’s a video game. Are you trying to compare it to real life?


Is flight simulator a good representation of my ability to fly a plane?

With the right sim, inputs and use… YES, it actually is. You can even earn flight hours with some sims.

I’m not claiming that Z or other cycling games are on that level. But we don’t have to ignore the fact with with more proper calculations, modeling and input, we could make indoor cycling a much closer simulation than we have in many cases right now.

My point is that we don’t have to ignore the positive potential or people looking to gain some more knowledge and interaction with these games as they evolve, and some hopefully into the “simulation” realm in the future.

If you don’t care to follow, that’s fine. Just don’t knock people looking to move it to the next level.

Don’t open that can of worms with me :slight_smile:

As @mcneese.chad said, depending on the sim, you can go all the way to a type certificate, so…

This said, I’m also not clear on what the OP is trying to accomplish. Kinda hard to design experiments when you don’t know what’s to be proven or disproven. And running experiments on a model has some important limitations: it can’t do more than show how the model is built, for better or for worse. People who do AI model training against simulation models quickly realize those limitations.

1 Like

Interesting, I didn’t realise you posted here.

I’m familiar with your protocol for real world testing.

So in a nutshell you are saying just do it in Zwift?

If so I’ll give it a go. It will be fun just to see what it comes up with and it will be a useful test of the procedure in a cleaner environment than IRL.

Also since you are far more experienced in this area than me can you answer a couple of questions:

What is a typical value for drag coefficient for time trials using the latest equipment and knowledge about ideal position?

How would you expect frontal area to scale with weight for an experienced TT rider if height remains constant?

Also I’d be interested if you could elaborate on why exactly in this specific case Gribble would not be accurate. I appreciate that IRL there will be lots of other variables at play but I’m not sure how this applies to Zwift. (I’ve no axe to grind here, it really is a surprise to me and I’d like to understand why.)

In this type of investigation DOE comes in handy. You only need three levels per parameter to describe exponential relationship between your variables. For weight that is 45kg, 90kg and a midpoint at 67.5kg. There are Excel spreadsheet templates to download if you want to take that route.

Yup, that’s what I’m suggesting. I’ve done some CdA and Crr testing in Zwift for different bikes and wheels but I haven’t done anything with mass or height. I’ve also done a little bit of CdA/Crr testing with Fulgaz, to see whether their model works in a similar way, though of course you don’t get to pick your bike and wheels as you do in Zwift.

I don’t usually estimate Cd alone; I usually just look at CdA. For a “normal-sized” rider on a modern TT bike in an ideal position, CdA around 0.20 m^2 is pretty attainable. For a small-sized male rider, I’ve seen around ~0.18. I’ve seen some data for a small-sized female rider on a UCI-legal pursuit bike below that, but I don’t know what kind of power meter was being used so I don’t know if the estimate is reliable.

As a rough rule (just to get you into the right ballpark) CdA appears to scale with mass less than linearly. Andy Coggan used to use a rule of thumb of around mass^0.7 for fixed height – but that rule of thumb has a lot of noise in it. Nonetheless it appears that the exponent < 1.0.

1 Like

And I don’t have any issue with Steve Gribble’s work. It’s just that you’re trying to assess the effect of changing mass on CdA, and you don’t know how Zwift is doing it, so it’s better to do the measurement yourself. In addition, Steve’s work assumes constant power and speed (i.e., it doesn’t take into account accelerations/decelerations).

Really interesting. Since Zwift can be “faked” for testing with a power emulator holding precise power, would that be preferred for the question at hand, or is it actually better to have a real rider with the typical power variations, even if they don’t “match” perfectly from one lap to the next?

It would be the goal of the rider to at least match the total average at the end, but some variation there as well as along the course are to be expected. Just wondering if the sterile locked approach would be better or if the real world power is more relevant and practical?

Changes in speed would not have an impact on Crr or CdA - keeping it constant simplifies the equation of motion, taking inertias (translation and rotation) out of the picture, and this makes estimation of Crr and CdA simpler. If you use data from tests at non-steady speed, you have to work the force imbalance out in order to get back to propulsion force = rolling drag + aero drag. More work for the same result.

This gets into the statistical weeds but on a flat road with constant speed and power (and, in Zwift, no head or tail wind) then your entire test looks identical so it doesn’t matter whether the test is 1 minute long or 10 minutes long or 1 second long. In that case, not only are the data collinear, they’re identical. You need at least two independent observations to solve for two unknowns (Crr and CdA) so if you try to solve with these identical data, you don’t get a unique solution. That’s an extreme case, but what many field testers do is to have just a little variation in speed or power. In that case, not all the data are identical but they’re all almost collinear. So in that case, you can solve for unique values of Crr and CdA but your estimates of CdA and Crr are poorly estimated. That’s why I recommend that you ride at a wide range of speed and power. The estimates are far more stable.

This is a long way to say that Zwiftinsider’s constant power test can tell you Equipment set A is faster than set B on the given Fuego Flats or Alpe du Zwift course, but it can’t decompose that difference into Crr and CdA. Alternatively, you could spoof the data feed yourself and vary power from, say, 100 watts up to 400 watts and back down, and do that on a known lap course for a couple of laps.


Wow, very cool, and way over my head :stuck_out_tongue:

Conceptually, the intended variation makes sense when you start looking at more than one variable. Sadly, that level of math exceeds my knowledge, so I will leave that to the experts :+1: