XSS based intervals on Zwift are not correct

My wife and I both did the Closer 140 workout a couple days ago. It has XSS based intervals (in this case 5 mins at 140XSS). In XERT, those intervals have curved negative slope, dropping off quick in the beginning before flattening out at the end.

However in Zwift the ramps are linear negative slopes. That results in a higher average wattage than the curved slope would have. For my fitness signature (kind of a all rounder / breakaway specialist) it wasn’t that big of a deal as the curve is flatter, however for my wife (a sprinter) the workout was impossible. At the 1 min mark the wattage was 12-13% higher in Zwift than it should have been. As a result, she had a breakthrough on her second interval, and had to turn it down for the remainder.

I think the algorithm for creating ramps in Zwift from XSS intervals needs to be tuned. Either the linear nature of Zwift’s ramps needs to be accounted for better, or the ramps need to be broken. Up to more closely resemble XERT.

Thanks!

Yes. We have thought of doing this but then you end up with many intervals. Depending on how many and how long the XSSR interval is, determines how well the linearized intervals track it. A bit of messy thing to do programmatically so we haven’t gone there yet. For lengthy XSSR intervals where you are really wanting the curvature in Zwift, best to make a copy and do the splitting manually … at least for the moment…

Sure, I understand the complex nature of it, but even a half way approach would be nice. As it stands now, its hard for us to guess what a workout is going to be like for my wife, as the MPA and difficulty will end up quite different. I would argue that the flat ramp where starting and ending powers match that of the negative curve is simply not correct. Perhaps a simple compromise approach would be lower the starting value of the ramp down until the average power of the interval is the same as the curved ramped down. Perhaps making the averages the same isn’t quite right either, I’m no mathematician, but its definitely not right as it stands now. This is especially true as you look at the harder versions of Closer where the ramps get more and more curved. Those are going diverge more and more, meaning the higher the XSS of an interval, the more incorrect the Zwift version will be…

You can always use one of our other workout players to get the more precise version of the XSSR intervals at the moment. We have thought of making some improvements as you suggest and may do so in the future.
Ideally other platforms should just implement our workout models. :slight_smile: Getting there…

Just had a chance to do Closer 170. Just thought i would share just how much difference there is between the Xert workout and the same workout on Zwift. I set the FTP in Zwift, and i ran it through at 100%.

Here is what its supposed to look like, notice it just makes it to 100 difficulty:
Screen Shot 2018-12-18 at 6

Here is what that workout looked like on Zwift, notice above 100 difficulty after the second interval!:
Screen Shot 2018-12-18 at 6

I would say what i did much more closely ressembles, and in fact was harder than, Closer 300:
Screen Shot 2018-12-18 at 6

So i would argue that is not a feature request as much as a bug report. Pretty much double the effort over what it was supposed to be!

I understand that i could just use the player, but I enjoy using Zwift. I had my eye on Xert for a while, but I only decided to actually start using i t when you added the integration. Id really love it if you could fix this.

On the up side i effectively managed to finish Closer 300 :slight_smile:

Great!! Recognize that this cannot really be fixed only we could re-design the Closer workouts to have shorter intervals. Anything we do, only approximates the real thing and would still be classified as a bug report. :frowning: Notably, the workout players also adjust power with execution, so the curvature changes as it is being executed. This too cannot be implemented in Zwift at this time. Maybe tell Zwift they have a bug? :wink:

I understand you are limited by Zwift’s feature set. However, its a not a bug in Zwift, Zwift is doing what its supposed to based on the workout its given. I also understand that there is no way to do a 1:1 implementation, however you must agree that a workout that ends up almost twice as hard when exported to Zwift is not exactly what one would expect. Obviously you have to make a compromise when exporting to Zwift, i disagree with the comprismise you are making. That being taking the start and end power and drawing a straight line between them rather than trying to approximate the same strain over the given interval time. Xert’s software is clearly able to figure out what the XSS is for the ramps that come out of Zwift as it applies the logic to my completed workouts.

Right now on closer 170, the amount of strain during the intervals is well over 300 per hour when done in Zwift, I’m sorry, but no matter how you slice it that is a problem, and the problem is with what is being exported to Zwift. So perhaps instead of just passing the blame to Zwift for not implementin g your models, you could instead figure out a model for linear strain per hour, i get that it wont be perfect, but I’m sure you can come up with a better solution than the current one.

Perhaps i should also mention, I’ve been a software engineer for 20 years so I’m not exactly naive when it comes to writing code :slight_smile:

I was only joking when I said to pass it on to Zwift and merely referenced that saying this is a bug is a relative term. We’ll definitely consider it and see if we can improve the final workout that gets exported. Thanks for your persistence. Notably however, whatever approximation we use will only ever be an approximation and one can infinitely argue that it should be improved.

Thanks a lot!! Of note, I’m only so persistent because you are responsive in this forum, and more importantly because i otherwise really like this product and it seems to have great potential :slight_smile:

Happy holidays :slight_smile: