Route
Route
Key data
- Distance
- 33.7km
- Moving time
- 1:05 h
- total 1:05:00
- Elevation
- 0m
- Avg speed
- 31.1km/h
- max 38.3 km/h
- Avg power
- 180W
- 2.36 W/kg · max 310 W
- Normalized Power
- 219W
- 2.86 W/kg
- Avg heart rate
- 153bpm
- max 186 bpm
- Avg cadence
- 90rpm
- Calories
- 739kcal
- 704 kJ of work
- Training Stress
- 82TSS
- FTP 251 W · IF 0.87
- Relative Effort
- 110
Streams
Power, heart rate, cadence, speed & elevation · one hover for all – the map follows
Time in power zones
FTP on ride date 251 W · raw sampling (gaps >10 s excluded)
- Z1Active recovery · ≤ 138 W46%30 min
- Z2Endurance · 139–188 W23%15 min
- Z3Tempo · 189–226 W0%0 min
- Z4Threshold · 227–264 W0%0 min
- Z5VO2max · 265–301 W30%20 min
- Z6Anaerobic · 302–377 W1%1 min
- Z7Neuromuscular · ≥ 378 W0%0 min
Time in HR zones
HR zones on ride date · raw sampling (gaps >10 s excluded)
- Z1Recovery · ≤ 128 bpm1%1 min
- Z2Endurance · 129–146 bpm62%40 min
- Z3Tempo · 147–160 bpm6%4 min
- Z4Threshold · 161–172 bpm5%3 min
- Z5Maximum · ≥ 173 bpm26%17 min
Power curve
This ride vs. bests 2026 and all-time
This ride – 1 min: 291 W · 3.80 W/kg, 5 min: 260 W · 3.39 W/kg, 20 min: 224 W · 2.92 W/kg
Performance analysis
- Intensity Factor
- 0.87
- NP ÷ FTP
- Variability Index
- 1.21
- NP ÷ avg power – 1.0 = very steady
- Efficiency Factor
- 1.43
- NP ÷ avg heart rate – rises with a better base
- Perceived exertion
- –
Aerobic decoupling (Pa:HR)
+4.3 %Stable – strong aerobic base
Fueling for this ride
During: 30–45 g carbs/h – banana, bar, sports drink
Drink: 500–750 ml/h
After: Normal, balanced meal
Laps
12 laps
| 1 | Warm-up | 7.28 km | 14:59 | 29.1 | 146 | 140 | 145 | 90 | 0 |
| 2 | Interval 1 | 2.51 km | 3:59 | 37.8 | 289 | 176 | 182 | 90 | 0 |
| 3 | Recovery | 1.84 km | 3:59 | 27.8 | 126 | 143 | 178 | 90 | 0 |
| 4 | Interval 2 | 2.51 km | 3:59 | 37.8 | 289 | 178 | 185 | 90 | 0 |
| 5 | Recovery | 1.84 km | 3:59 | 27.7 | 126 | 143 | 182 | 90 | 0 |
| 6 | Interval 3 | 2.51 km | 3:59 | 37.7 | 289 | 177 | 185 | 90 | 0 |
| 7 | Recovery | 1.84 km | 3:59 | 27.7 | 126 | 146 | 180 | 90 | 0 |
| 8 | Interval 4 | 2.51 km | 3:59 | 37.7 | 289 | 177 | 184 | 90 | 0 |
| 9 | Recovery | 1.84 km | 3:59 | 27.7 | 125 | 144 | 182 | 90 | 0 |
| 10 | Interval 5 | 2.51 km | 3:59 | 37.7 | 289 | 179 | 186 | 90 | 0 |
| 11 | Recovery | 1.84 km | 3:59 | 27.7 | 126 | 145 | 181 | 90 | 0 |
| 12 | Cool-down | 4.57 km | 9:59 | 27.5 | 126 | 140 | 142 | 90 | 0 |
Notes & raw data
Description
No description on Strava.
All data
Show raw data
{
"id": "demo-0169",
"name": "VO2max 5×4",
"sport_type": "VirtualRide",
"start_date": "2026-02-21T17:56:14Z",
"start_date_local": "2026-02-21T18:56:14",
"trainer": false,
"distance": 33691.3,
"moving_time": 3900,
"elapsed_time": 3900,
"total_elevation_gain": 0,
"average_watts": 180.4,
"average_heartrate": 152.8,
"metrics": {
"source": "streams",
"power_distribution": {
"version": 1,
"method": "right-sample-dt-0-10s",
"samples": [
[
115,
11
],
[
120,
286
],
[
125,
1011
],
[
130,
464
],
[
135,
37
],
[
140,
158
],
[
145,
474
],
[
150,
235
],
[
155,
23
],
[
265,
3
],
[
270,
6
],
[
275,
53
],
[
280,
172
],
[
285,
281
],
[
290,
320
],
[
295,
217
],
[
300,
118
],
[
305,
25
],
[
310,
5
]
]
},
"power_curve": {
"1": 310,
"5": 299,
"10": 297,
"15": 295,
"20": 294,
"30": 293,
"60": 291,
"120": 290,
"180": 290,
"300": 260,
"480": 217,
"600": 224,
"900": 217,
"1200": 224,
"1800": 214,
"2700": 202,
"3600": 185
},
"decoupling_pct": 4.3,
"hr_distribution": {
"version": 1,
"method": "right-sample-dt-0-10s",
"samples": [
[
73,
1
],
[
75,
1
],
[
77,
1
],
[
79,
1
],
[
81,
1
],
[
83,
1
],
[
85,
1
],
[
87,
1
],
[
89,
1
],
[
91,
1
],
[
93,
1
],
[
94,
1
],
[
96,
1
],
[
98,
1
],
[
100,
1
],
[
101,
1
],
[
103,
1
],
[
104,
1
],
[
105,
1
],
[
106,
1
],
[
107,
1
],
[
108,
1
],
[
109,
1
],
[
110,
1
],
[
111,
1
],
[
112,
1
],
[
113,
1
],
[
115,
2
],
[
117,
2
],
[
118,
1
],
[
119,
1
],
[
120,
1
],
[
121,
1
],
[
122,
1
],
[
123,
1
],
[
124,
2
],
[
125,
1
],
[
126,
1
],
[
127,
2
],
[
128,
5
],
[
129,
2
],
[
130,
1
],
[
131,
4
],
[
132,
3
],
[
133,
3
],
[
134,
2
],
[
135,
4
],
[
136,
11
],
[
137,
111
],
[
138,
193
],
[
139,
301
],
[
140,
528
],
[
141,
342
],
[
142,
374
],
[
143,
298
],
[
144,
181
],
[
145,
25
],
[
146,
21
],
[
147,
28
],
[
148,
27
],
[
149,
18
],
[
150,
19
],
[
151,
19
],
[
152,
17
],
[
153,
15
],
[
154,
16
],
[
155,
13
],
[
156,
17
],
[
157,
15
],
[
158,
13
],
[
159,
12
],
[
160,
13
],
[
161,
15
],
[
162,
14
],
[
163,
14
],
[
164,
11
],
[
165,
21
],
[
166,
12
],
[
167,
12
],
[
168,
15
],
[
169,
17
],
[
170,
15
],
[
171,
16
],
[
172,
19
],
[
173,
21
],
[
174,
22
],
[
175,
31
],
[
176,
24
],
[
177,
31
],
[
178,
40
],
[
179,
73
],
[
180,
145
],
[
181,
136
],
[
182,
201
],
[
183,
163
],
[
184,
74
],
[
185,
59
],
[
186,
4
]
]
},
"hr_curve": {
"60": 185,
"300": 174,
"1200": 165,
"3600": 154
},
"metric_sources": {
"np": "streams",
"variability_index": "np+summary",
"efficiency_factor": "np+summary"
},
"np": 219,
"variability_index": 1.214,
"efficiency_factor": 1.433
},
"type": "VirtualRide",
"workout_type": null,
"timezone": "(GMT+01:00) Europe/Berlin",
"utc_offset": 3600,
"strava_url": "https://www.strava.com/activities/demo-0169",
"commute": false,
"manual": false,
"private": false,
"visibility": "everyone",
"flagged": false,
"gear_id": "bdemo4",
"gear_name": "Indoor Trainer",
"device_name": "Smart trainer",
"elev_high": null,
"elev_low": null,
"average_speed": 8.639,
"max_speed": 10.64,
"device_watts": true,
"weighted_average_watts": 219,
"max_watts": 310,
"kilojoules": 703.7,
"has_heartrate": true,
"max_heartrate": 186,
"average_cadence": 89.9,
"average_temp": null,
"suffer_score": 110,
"calories": 739,
"perceived_exertion": null,
"kudos_count": 3,
"comment_count": 0,
"athlete_count": 1,
"photo_count": 0,
"achievement_count": 0,
"pr_count": 0,
"start_latlng": null,
"end_latlng": null,
"location_city": null,
"location_country": null,
"geo": null,
"summary_polyline": null,
"laps": [
{
"name": "Warm-up",
"lap_index": 1,
"split": 1,
"start_date_local": "2026-02-21T18:56:14",
"elapsed_time": 899,
"moving_time": 899,
"distance": 7278.8,
"total_elevation_gain": 0,
"average_speed": 8.097,
"max_speed": 8.17,
"average_cadence": 89.9,
"average_watts": 145.6,
"device_watts": true,
"average_heartrate": 140.2,
"max_heartrate": 145,
"start_index": 0,
"end_index": 899
},
{
"name": "Interval 1",
"lap_index": 2,
"split": 2,
"start_date_local": "2026-02-21T19:11:14",
"elapsed_time": 239,
"moving_time": 239,
"distance": 2508.2,
"total_elevation_gain": 0,
"average_speed": 10.495,
"max_speed": 10.63,
"average_cadence": 89.9,
"average_watts": 288.6,
"device_watts": true,
"average_heartrate": 176.4,
"max_heartrate": 182,
"start_index": 900,
"end_index": 1139
},
{
"name": "Recovery",
"lap_index": 3,
"split": 3,
"start_date_local": "2026-02-21T19:15:14",
"elapsed_time": 239,
"moving_time": 239,
"distance": 1842.5,
"total_elevation_gain": 0,
"average_speed": 7.709,
"max_speed": 10.09,
"average_cadence": 90.1,
"average_watts": 125.8,
"device_watts": true,
"average_heartrate": 143,
"max_heartrate": 178,
"start_index": 1140,
"end_index": 1379
},
{
"name": "Interval 2",
"lap_index": 4,
"split": 4,
"start_date_local": "2026-02-21T19:19:14",
"elapsed_time": 239,
"moving_time": 239,
"distance": 2507.8,
"total_elevation_gain": 0,
"average_speed": 10.493,
"max_speed": 10.61,
"average_cadence": 90.1,
"average_watts": 289.4,
"device_watts": true,
"average_heartrate": 177.5,
"max_heartrate": 185,
"start_index": 1380,
"end_index": 1619
},
{
"name": "Recovery",
"lap_index": 5,
"split": 5,
"start_date_local": "2026-02-21T19:23:14",
"elapsed_time": 239,
"moving_time": 239,
"distance": 1840.8,
"total_elevation_gain": 0,
"average_speed": 7.702,
"max_speed": 10.13,
"average_cadence": 89.9,
"average_watts": 125.5,
"device_watts": true,
"average_heartrate": 143,
"max_heartrate": 182,
"start_index": 1620,
"end_index": 1859
},
{
"name": "Interval 3",
"lap_index": 6,
"split": 6,
"start_date_local": "2026-02-21T19:27:14",
"elapsed_time": 239,
"moving_time": 239,
"distance": 2505,
"total_elevation_gain": 0,
"average_speed": 10.481,
"max_speed": 10.64,
"average_cadence": 89.9,
"average_watts": 288.7,
"device_watts": true,
"average_heartrate": 177.1,
"max_heartrate": 185,
"start_index": 1860,
"end_index": 2099
},
{
"name": "Recovery",
"lap_index": 7,
"split": 7,
"start_date_local": "2026-02-21T19:31:14",
"elapsed_time": 239,
"moving_time": 239,
"distance": 1841.6,
"total_elevation_gain": 0,
"average_speed": 7.705,
"max_speed": 10.15,
"average_cadence": 90,
"average_watts": 125.7,
"device_watts": true,
"average_heartrate": 145.5,
"max_heartrate": 180,
"start_index": 2100,
"end_index": 2339
},
{
"name": "Interval 4",
"lap_index": 8,
"split": 8,
"start_date_local": "2026-02-21T19:35:14",
"elapsed_time": 239,
"moving_time": 239,
"distance": 2505.8,
"total_elevation_gain": 0,
"average_speed": 10.485,
"max_speed": 10.62,
"average_cadence": 89.7,
"average_watts": 288.7,
"device_watts": true,
"average_heartrate": 177,
"max_heartrate": 184,
"start_index": 2340,
"end_index": 2579
},
{
"name": "Recovery",
"lap_index": 9,
"split": 9,
"start_date_local": "2026-02-21T19:39:14",
"elapsed_time": 239,
"moving_time": 239,
"distance": 1839.9,
"total_elevation_gain": 0,
"average_speed": 7.698,
"max_speed": 10.09,
"average_cadence": 90.3,
"average_watts": 125.4,
"device_watts": true,
"average_heartrate": 144.1,
"max_heartrate": 182,
"start_index": 2580,
"end_index": 2819
},
{
"name": "Interval 5",
"lap_index": 10,
"split": 10,
"start_date_local": "2026-02-21T19:43:14",
"elapsed_time": 239,
"moving_time": 239,
"distance": 2505.8,
"total_elevation_gain": 0,
"average_speed": 10.485,
"max_speed": 10.62,
"average_cadence": 90.1,
"average_watts": 288.8,
"device_watts": true,
"average_heartrate": 178.5,
"max_heartrate": 186,
"start_index": 2820,
"end_index": 3059
},
{
"name": "Recovery",
"lap_index": 11,
"split": 11,
"start_date_local": "2026-02-21T19:47:14",
"elapsed_time": 239,
"moving_time": 239,
"distance": 1842.1,
"total_elevation_gain": 0,
"average_speed": 7.708,
"max_speed": 10.15,
"average_cadence": 89.9,
"average_watts": 125.6,
"device_watts": true,
"average_heartrate": 145.2,
"max_heartrate": 181,
"start_index": 3060,
"end_index": 3299
},
{
"name": "Cool-down",
"lap_index": 12,
"split": 12,
"start_date_local": "2026-02-21T19:51:14",
"elapsed_time": 599,
"moving_time": 599,
"distance": 4574,
"total_elevation_gain": 0,
"average_speed": 7.636,
"max_speed": 7.71,
"average_cadence": 89.9,
"average_watts": 125.6,
"device_watts": true,
"average_heartrate": 139.9,
"max_heartrate": 142,
"start_index": 3300,
"end_index": 3899
}
],
"splits_metric": [],
"segment_efforts": [],
"best_efforts": [],
"streams": "/streams/demo-0169.json",
"external_id": null,
"synced": {
"summary": "2026-02-21T20:01:14.000Z",
"detail": "2026-02-21T20:01:14.000Z",
"streams": "2026-02-21T20:01:14.000Z"
}
}