This tool replays a Zwift race second-by-second. Enter any participant's activity ID and it fetches the entire field's telemetry — position, power, heart rate, speed, and distance — then lets you play back the race with an interactive elevation chart, an overhead map, a live rider table, and automatic peloton detection. You can watch groups form, attacks develop, and sprints unfold from a bird's-eye perspective.
All data comes directly from the Zwift API. When you provide an activity ID, the tool fetches the activity details to find the event, pulls the race results for every participant, and downloads each rider's second-by-second telemetry. Riders who have set their activities to private won't have data available and will be missing from the replay.
Route geometry (the line drawn on the map and the elevation profile) comes from ZwiftMap's route database rather than rider GPS data, so it's always accurate regardless of individual telemetry quality.
Because it uses the Zwift API, you need to be logged in with your Zwift account. The tool only reads data — it doesn't modify anything on your account.
Your activity ID is in the URL when you view a ride on
zwift.com.
Go to your activity feed, click on a ride, and the long number in the URL is your activity ID
(e.g. zwift.com/activity/1234567890).
You can use any participant's activity ID — the tool will find the full race from it.
The table shows live stats at the current playback time: race position, gap to the leader, current power, rolling 1-minute average power, Normalized Power, weight, heart rate, speed, and distance covered. Click a row to follow that rider on the chart and map. Use the checkboxes to highlight specific riders on the elevation chart. Click any column header to sort. Use the W / W/kg toggle to switch power columns between watts and watts per kilogram.
The chart has two modes, toggled with the Riders and Peloton buttons:
The map panel shows an overhead view of the Zwift world with the race route drawn as a line and rider positions as dots. Each world uses its official in-game map image. You can zoom in and out with the +/− buttons or scroll wheel, and drag to pan. When following a rider, the map automatically pans to keep them in view.
Use the play/pause button (or press Spacebar) to start and stop playback. The speed selector lets you run the replay at 1×, 2×, 5×, 10×, or 20× real time. Drag the time slider to jump to any point in the race.
The zoom slider below the map controls how much of the course the elevation chart shows at once — zoom in to see small gaps more clearly. The "Follow" dropdown selects a rider to track: the chart and map will automatically pan to keep that rider centered as the race progresses.
If any rider in the race is a known Zwift streamer, the tool checks whether they were live-streaming during the race and shows a link to the YouTube VOD. Clicking the link opens the video at the timestamp matching the current playback position, so you can watch the race from a rider's perspective alongside the data replay. If the streamer trimmed their VOD after the broadcast, the tool automatically detects the trim and adjusts the timestamp accordingly.
After loading a race, the URL updates to include an ?activity_id=
parameter. Copy that URL and share it — anyone who opens it (and is logged in) will automatically load the same race.
The tool downloads full telemetry for every rider in the race individually from the Zwift API. A race with 30 riders means 30 separate API calls. The data is cached on the server, so loading the same race a second time is much faster.