Route
Route
Key data
- Distance
- 34.4km
- Moving time
- 1:03 h
- total 1:03:00
- Elevation
- 0m
- Avg speed
- 32.8km/h
- max 34.6 km/h
- Avg power
- 199W
- 2.66 W/kg · max 240 W
- Normalized Power
- 206W
- 2.76 W/kg
- Avg heart rate
- 154bpm
- max 164 bpm
- Avg cadence
- 90rpm
- Calories
- 788kcal
- 751 kJ of work
- Training Stress
- 62TSS
- FTP 268 W · IF 0.77
- Relative Effort
- 102
Streams
Power, heart rate, cadence, speed & elevation · one hover for all – the map follows
Time in power zones
FTP on ride date 268 W · raw sampling (gaps >10 s excluded)
- Z1Active recovery · ≤ 147 W13%8 min
- Z2Endurance · 148–201 W16%10 min
- Z3Tempo · 202–241 W71%45 min
- Z4Threshold · 242–281 W0%0 min
- Z5VO2max · 282–322 W0%0 min
- Z6Anaerobic · 323–402 W0%0 min
- Z7Neuromuscular · ≥ 403 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 bpm26%17 min
- Z3Tempo · 147–160 bpm50%32 min
- Z4Threshold · 161–172 bpm22%14 min
- Z5Maximum · ≥ 173 bpm0%0 min
Power curve
This ride vs. bests 2026 and all-time
This ride – 1 min: 222 W · 2.98 W/kg, 5 min: 220 W · 2.95 W/kg, 20 min: 220 W · 2.95 W/kg
Performance analysis
- Intensity Factor
- 0.77
- NP ÷ FTP
- Variability Index
- 1.04
- NP ÷ avg power – 1.0 = very steady
- Efficiency Factor
- 1.34
- NP ÷ avg heart rate – rises with a better base
- Perceived exertion
- –
Aerobic decoupling (Pa:HR)
+3.1 %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
3 laps
| 1 | Warm-up | 4.98 km | 9:59 | 29.9 | 155 | 138 | 144 | 90 | 0 |
| 2 | Tempo | 25.68 km | 44:59 | 34.3 | 220 | 160 | 164 | 90 | 0 |
| 3 | Cool-down | 3.76 km | 7:59 | 28.3 | 134 | 142 | 163 | 90 | 0 |
Notes & raw data
Description
No description on Strava.
All data
Show raw data
{
"id": "demo-0225",
"name": "Tempo 45",
"sport_type": "VirtualRide",
"start_date": "2026-10-04T13:34:09Z",
"start_date_local": "2026-10-04T06:34:09",
"trainer": false,
"distance": 34437.6,
"moving_time": 3780,
"elapsed_time": 3780,
"total_elevation_gain": 0,
"average_watts": 198.6,
"average_heartrate": 153.8,
"metrics": {
"source": "streams",
"power_distribution": {
"version": 1,
"method": "right-sample-dt-0-10s",
"samples": [
[
125,
11
],
[
130,
153
],
[
135,
242
],
[
140,
71
],
[
145,
10
],
[
150,
130
],
[
155,
281
],
[
160,
165
],
[
165,
16
],
[
200,
2
],
[
205,
40
],
[
210,
212
],
[
215,
652
],
[
220,
993
],
[
225,
609
],
[
230,
170
],
[
235,
21
],
[
240,
1
]
]
},
"power_curve": {
"1": 240,
"5": 228,
"10": 227,
"15": 225,
"20": 224,
"30": 223,
"60": 222,
"120": 221,
"180": 221,
"300": 220,
"480": 220,
"600": 220,
"900": 220,
"1200": 220,
"1800": 220,
"2700": 220,
"3600": 202
},
"decoupling_pct": 3.1,
"hr_distribution": {
"version": 1,
"method": "right-sample-dt-0-10s",
"samples": [
[
72,
1
],
[
74,
1
],
[
77,
1
],
[
79,
1
],
[
81,
1
],
[
83,
1
],
[
85,
1
],
[
87,
1
],
[
88,
1
],
[
90,
1
],
[
92,
1
],
[
94,
1
],
[
95,
1
],
[
96,
1
],
[
98,
1
],
[
99,
1
],
[
101,
1
],
[
102,
1
],
[
103,
1
],
[
105,
1
],
[
106,
1
],
[
107,
1
],
[
108,
1
],
[
109,
1
],
[
110,
1
],
[
111,
1
],
[
112,
1
],
[
113,
1
],
[
114,
1
],
[
115,
1
],
[
116,
1
],
[
117,
1
],
[
118,
2
],
[
119,
1
],
[
120,
1
],
[
121,
1
],
[
122,
2
],
[
123,
2
],
[
124,
2
],
[
125,
2
],
[
126,
1
],
[
127,
2
],
[
128,
2
],
[
129,
4
],
[
130,
3
],
[
131,
3
],
[
132,
1
],
[
133,
2
],
[
134,
4
],
[
135,
3
],
[
136,
2
],
[
137,
23
],
[
138,
50
],
[
139,
63
],
[
140,
178
],
[
141,
288
],
[
142,
216
],
[
143,
128
],
[
144,
16
],
[
145,
6
],
[
146,
3
],
[
147,
13
],
[
148,
8
],
[
149,
6
],
[
150,
6
],
[
151,
13
],
[
152,
10
],
[
153,
5
],
[
154,
11
],
[
155,
9
],
[
156,
51
],
[
157,
177
],
[
158,
361
],
[
159,
564
],
[
160,
667
],
[
161,
509
],
[
162,
263
],
[
163,
46
],
[
164,
17
]
]
},
"hr_curve": {
"60": 163,
"300": 162,
"1200": 161,
"3600": 155
},
"metric_sources": {
"np": "streams",
"variability_index": "np+summary",
"efficiency_factor": "np+summary"
},
"np": 206,
"variability_index": 1.037,
"efficiency_factor": 1.339
},
"type": "VirtualRide",
"workout_type": null,
"timezone": "(GMT-07:00) America/Vancouver",
"utc_offset": -25200,
"strava_url": "https://www.strava.com/activities/demo-0225",
"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": 9.11,
"max_speed": 9.61,
"device_watts": true,
"weighted_average_watts": 206,
"max_watts": 240,
"kilojoules": 750.6,
"has_heartrate": true,
"max_heartrate": 164,
"average_cadence": 90,
"average_temp": null,
"suffer_score": 102,
"calories": 788,
"perceived_exertion": null,
"kudos_count": 4,
"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-10-04T06:34:09",
"elapsed_time": 599,
"moving_time": 599,
"distance": 4976.1,
"total_elevation_gain": 0,
"average_speed": 8.307,
"max_speed": 8.39,
"average_cadence": 90.1,
"average_watts": 155.4,
"device_watts": true,
"average_heartrate": 138.2,
"max_heartrate": 144,
"start_index": 0,
"end_index": 599
},
{
"name": "Tempo",
"lap_index": 2,
"split": 2,
"start_date_local": "2026-10-04T06:44:09",
"elapsed_time": 2699,
"moving_time": 2699,
"distance": 25679.6,
"total_elevation_gain": 0,
"average_speed": 9.514,
"max_speed": 9.61,
"average_cadence": 90.1,
"average_watts": 219.7,
"device_watts": true,
"average_heartrate": 159.5,
"max_heartrate": 164,
"start_index": 600,
"end_index": 3299
},
{
"name": "Cool-down",
"lap_index": 3,
"split": 3,
"start_date_local": "2026-10-04T07:29:09",
"elapsed_time": 479,
"moving_time": 479,
"distance": 3764,
"total_elevation_gain": 0,
"average_speed": 7.858,
"max_speed": 9.29,
"average_cadence": 89.8,
"average_watts": 134,
"device_watts": true,
"average_heartrate": 141.5,
"max_heartrate": 163,
"start_index": 3300,
"end_index": 3779
}
],
"splits_metric": [],
"segment_efforts": [],
"best_efforts": [],
"streams": "/streams/demo-0225.json",
"external_id": null,
"synced": {
"summary": "2026-10-04T15:37:09.000Z",
"detail": "2026-10-04T15:37:09.000Z",
"streams": "2026-10-04T15:37:09.000Z"
}
}