ETA calculation

I have a question on how the ETA is calculated. I was tempo riding doing the Epic KOM and was paying attention to my ETA. ( I wish there was a way of shutting it off, but that is another story). At about 1.3 km to go there is a downhill for about 300 m. So, I do what I do on a real climb and take a rest. I have a Neo so my coasting speed goes up to about 45 km/h but my ETA goes up about 10 min. When I hit the last 1 km (or so) the incline increases, I start grinding up the the hill at 16 km/h and my ETA drops back by about 10 min. Now from elementary physics, time = distance/velocity so this seems backwards. So, the question is how does Zwift calculate ETA and is it really realistic?

this drives me crazy, too.

i’m pretty sure the calculation is: how much distance left at what avg incline? if you were to hold your current KW/H, how much time to cover that distance with that avg incline?

i blow up a lot on that epic climb because the only way to keep the number “on track” is to pick up the pace on that downhill! i fall for it every time.

It’s definitely a power-based estimate, not a purely velocity-driven thing.

At X W/kg, how long until you arrive at the summit? When you’re coasting and W fall to zero (or nearly so, if you’re soft-pedaling), Zwift’s calc adjusts assuming you’ll be at that low w/kg for the rest of the segment (even though your speed at that moment in time may be high) and your ETA goes way up.

1 Like

Yes. Joe’s post is how it works. Not the best in my opinion.

I’m not sure if my question/comment is the same issue, but I think it’s related, so I’ll pop it into this thread instead of creating a new one, for now. So I guess in the previous Zwift Tour’s I had done, i never noticed this happening, but in the recent “Off the MAAP” tour, I started to see this “anomaly”. Prior to each stage, I’d go in and look at the stage description, including the mileage (sorry, no metric system for this Yank :smiley: ) and elevation gain, just to get an idea of how long it was going to take my fat butt to complete each stage. So i was cognizant of the total distance reported for each stage going into things. Well then as I was riding and just kind of keeping an eye on my distance ridden and remaining distance, I started noticing that the two weren’t adding up to the reported distance of the stage. And as i started paying more attention to those two numbers, I really started to see some odd things going on with the Zwift mileage and the way it was ticking off.

So one time, I watched as my mileage ridden ticked over to another 10th of a mile ridden and while I watched for that to tick over, I kept an eye on the mileage remaining counter. It didn’t change at the same time the mileage ridden changed. Didn’t get an exact count, but I think it was somewhere along the lines of 6 or 8 seconds before the mileage remaining ticked over to a 10th of a mile less remaining.

Just odd…why would those two not change at the same time and why, when you are on the route and riding the even, do those two numbers not add up to the final event mileage?

I meant to take a few screen grabs and videos, but didn’t do so, but I was able to find a youtube video a guy did of stage 4 and sure enough, same thing was happening with him. Stage 4 was reported at 18.4 miles (Road to Ruins Course) and as you’ll see as you either watch the video, or scroll through my screen caps of his video, the cumulative distance (Miles Ridden + Miles remaining) changes pretty significantly over the course of his ride/video. At 9:10 mark, the total is 16.5 miles; at 20:30 mark, it’s 16.9 miles; at 33:18 mark, it’s 17.6 miles and then finally at 47:38 mark, with less than a mile remaining, it adds up to the reported event distance of 18.4. What’s that all about?

Is this the same sort of issue with ETA and also the dynamic others have talked about with XP being greater with metric settings vs. imperial? I mean, it seems like Zwift is more metric biased/based, and that’s fine, but why can’t they seem to get the math right with some of these other features when it comes to the conversion over to imperial?

Off the MAAP Stage 4-Finish Strong Cycling Video

I can’t explain the changing overall distance (which baffles me, also), but I believe that the traveled/remaining ticker ‘disconnect’ is just due to the screen only showing tenths of a mile/km, but the background programming working in hundredths, or more, of a mile/km, and what you’re seeing is just the rounded value. So, if the total course is 18.43 miles your distance traveled could flip over to 17.0 at one point, but the remaining distance won’t change to 1.4 until you’ve traveled 3/100ths of a mile farther.

There used to be a similar issue with the XP awards where the distance traveled would change to a new mile (say going from 17.9 to 18.0), but the XP would not be awarded for some seconds later. This was because the mileage was really just 17.95 when it ticked over to 18, so the rider still had to go 0.05 more miles before getting the XP. At some point this was changed, but I’m not sure how to change the disconnect you are seeing without making each course total to even tenths of a mile.

Jeff, I get that there might be a little bit of error in the conversion or calculations of remaining distance but if you look at those screen cap images, we aren’t talking about a tenth or a mile or so… My first screen cap the cumulative distance added up to 16.6 miles! That’s damn near two miles worth of distance “error” at that point in his ride… That’s a lot more than a small rounding difference.

What it seemed like to me when I was riding and first noticed and started paying attention is that it seems like the distance ridden is correct but the distance remaining is actually only a fraction of the true distance remaining… Almost like a tenth of a mile remaining is actually . 15 or. 2 of a mile… Yiu actually have more distance remaining than is reflected but at some point, that fractional difference seems to decrease… It’s like it’s proportional or something. Very odd.

Yup, I am totally on-board with that you are saying. I was specifically referring to why the ‘have gone’ counter doesn’t increment at the same time the ‘to go’ counter decrements.

Gotcha and you might be right…it could be related to “precision of display” but it seriously seemed like a good 6 to 8 seconds elapsed after the “have gone” ticked over a tenth, before the “to go” counter also ticked over a tenth. That just seems like an inordinate amount of time for those two to sync up, unless there’s some other sort of “scaling” going on in the background.

One thing I may do is go look up videos for MAAP events and see if the same thing happens with a rider that is using metric. If the same thing isn’t happening with folks setup for metric, then it’s GOT to be something to do with the way Zwift emulates the conversion from metric to imperial, with the bias set to metric initially and a conversion over to imperial.

At 20 mph it takes 9 seconds to travel .05 miles, so it’s certainly possible you could see that much of a disconnect, depending on your speed.

It’s doing it in metric too.

Watched this guy’s video for MAAP stage 2, he’s setup metric. That stage was Out and Back Again course, which is 42.1 KM and sure enough, as I scrolled forward in thru his video, total went from 38.5 at one point to 39.1 later on, to 40.5 later still and then he finished with the ride registering 42.7 up at the top, but the event result splash screen that popped up showed 42.2. That in and of itself is weird to me, unless Zwift somehow converted part of his warm up in the pen area to distance traveled (his video didn’t show any warmup so not sure if he went right into the pens, or when he logged in he started riding in the spawned world first and then joined event or what, but still…I guess the point is, even with the metric setting, early in the event, the total of distance ridden + distance remaining is considerably off from the eventual event distance total and as you continue on, that amount of error does decrease.

Ooops…meant to post the video…

it might be that there are variations depending on where your avatar is on the road, too. for example, if you are going around a turn, you travel less distance on the inside of the turn than the outside.

so, you might get more distance “done” on the outside of a turn than you get shaved off “remaining” – especially if “remaining” is an average of riding in the middle of the road for the whole route.

On the ETA calculation: it appears to be based on a simple extrapolation of current power, although even with a surge in power at the end, I often underperform ETA estimates.

I think there are better approaches:

  1. extrapolate based on the average power so far in the segment. This would be less prone to the issue of ETA blowing out when power is reduced to accommodate reductions in grade: it is normal when climbing, especially when trainer difficulty is set relatively high, to reduce power on flatter portions or descents. This is also smart pacing since power has the greatest impact when the grade > 6%.
  2. extrapolate based on the results of prior riders. Zwift has access to massive data and it would be straightforward to produce a look-up table of typical results for time to the finish of riders who reach a certain point with a certain average power.

I prefer the first approach. But assuming the rider will sustain present power is generally a poor prediction. Of course, with all the data, the accuracy of the two algorithms (average versus present power) could be compared.

However, it is ETA not SAETA (super accurately estimated time of arrival). :stuck_out_tongue:

You’re right – as long as you know what it is, it’s fine. It’s not actually estimated arrival time. It’s “arrival time extrapolated from present power”, or whatever it is.

I’ve been wondering about this too. I do intervals when I use Zwift and so I ride at a very steady power value and then drop back to another very steady power value between efforts. What I notice constantly is that the ETA is always aspirational. For example, I’m riding at 340W during a 5 min interval and an ETA appears as I approach a KOM or loop finish, let’s say my ETA is estimated at 2:40. Riding at 340W, I expect to get the finish at 2:40 or very close to it, but what happens in reality is that over those few minutes, the ETA slowly gets later, so after 1 minute, it’s 2:48. Then after 2 minutes, it’s 2:56 and so on and then when I get to the finish, it’s 3:04, despite the fact that I’ve been riding at 340W the whole time. It seems to me to slip about 6-8 seconds per minute. If the calculation was based on current power, which it would appear to be, then I can’t understand why it slips so much unless the calculation includes a ‘rush to the finish’ allowance where Zwift is expecting you to gradually increase your power output in an effort to get a good time. It definitely reacts to your current power coz when I finish an effort and drop back to 220W for example, the ETA updates quickly to that change but the slip continues to happen.

That’s really interesting. It’s possible it IS based on present power, but is buggy, for example the speed estimate is not based on the same physics as riding is, or else it fails to use the detailed profile. Or it’s based on current power, but they add a bit to the power, to motivate you. I’ve also noticed it tends to fade no matter how hard I try.

I’ve noticed ETA time also goes down as I approach and pass slower riders, and back up after passing. I assume this is adding/removing the draft benefit calculation. I find it annoying to see the time go back up after passing - I always seem to be on my own for the final sprint to the finish.