Ah, the time gap. It’s a time-honored bike racing tool used to tell riders how far they are from other riders who are up the road or chasing from behind. While the pros have motos zipping by with signs displaying the time gaps, amateur racers often don’t have that luxury.

This can lead to funny situations, like my buddy who was racing an outdoor cat 3 crit where three riders went off the front from the gun. They quickly opened a big enough gap that the chasing peloton lost sight, and soon enough, it was like the peloton had forgotten about the group up the road. It wasn’t until the breakaway caught the peloton from behind that everyone realized the podium had slipped from their grasp!

In Zwift we have a display on the right of nearby Zwifters that includes time gaps from you to each rider. Have you ever wondered how those gaps are calculated?

This past weekend I raced the DADurday Chase Race, where knowing the gap between your group and those ahead and behind is very helpful. While doing some quick time gap estimates based on the minimap I realized I had no idea how Zwift calculates time gaps. So I decided to figure it out!

How It Works

After doing some testing, I’ve discovered that Zwift’s gaps are based purely on distance. Or more accurately: Zwift’s time gap calculation assumes everyone is traveling at 30kmh.

This makes it an easy calculation on Zwift’s side–they just need to know the distance from one Zwifter to the next.

Here’s a simple example: if you are the red rider, traveling at 30kph, and the rider up the road isn’t moving, you would catch them in 60 seconds. In this example, Zwift would show a time gap of 60 seconds between the two riders.

The downside of Zwift’s time gap calculation method is that it’s only accurate when you are traveling at 30kph. Let’s look at more examples.

What about a flat race situation? Most of my flat races on Zwift find me sitting in the pack traveling between 40-50kph.

At this speed, the rider ahead is 40 seconds away–but Zwift will still tell me 60 seconds.

This disparity increases with speed, so on a descent when I’m traveling at 70kph the rider is only ~25 seconds ahead, but Zwift will tell me 60 seconds.

What if we slow down, like on a climb?

At 15kph (not an unreasonable climbing speed, especially on steeper climbs and/or for bigger riders), Zwift now drastically underestimates the time gap, showing 60 seconds when the next rider is really 120 seconds up the road.

This explains why, in a race situation, you might show a gap of 20 seconds to the lead rider on a climb. But when that rider crests the hill and begins to descend, the gap suddenly grows to 60 seconds! Did the leader attack? No. But they’ve increased their distance from you because they’re moving fast while you’re still crawling up the hill. Don’t panic, because you will be making up that distance soon enough!

ZwiftPower to the Rescue

If you want more accurate live time gaps in Zwift events, ZwiftPower has your solution. I chatted with James Hodges, the programming mastermind behind ZwiftPower, and he explained that ZwiftPower estimates time gaps based on 100-meter waypoints scattered throughout Zwift. The system is constantly logging the precise time when each rider passes each waypoint. It can then compare the times of riders for the same waypoint and thus display the gap between those riders.

Here’s one example of what this live event data looks like–note the “Time” column, which displays the number of seconds each rider is behind the leader. (In this particular case there is obviously a sizeable group of riders at the front of the race.)

To access these live time gaps, just find your event in ZwiftPower and click the “Live” link in the menu. Especially handy in chase/handicap races!

Reframing Time Gaps

Armed with this information about how Zwift calculates time gaps, perhaps it’s wise to begin thinking of the gaps not as time, but distance. The math is easy: 60 seconds of a “time gap” means the rider is 500 meters away. That 10-second gap which seems impossible to close? It’s 83 meters and change. You can do it!

Can it be better?

It seems Zwift’s time gap algorithm has room for improvement, but what would that look like? Should they implement a waypoint system like ZwiftPower? Is there something they could implement that would work even better? Or should they not change a thing? Share your thoughts below!