Indoor · VirtualRide

Recovery spin

Saturday, 07 February 2026 · 19:47Z1Indoor TrainerSmart trainer

Route

Route

Key data

Distance
18.3km
Moving time
40 min
total 40:00
Elevation
0m
Avg speed
27.5km/h
max 27.7 km/h
Avg power
126W
1.64 W/kg · max 135 W
Normalized Power
126W
1.64 W/kg
Avg heart rate
137bpm
max 142 bpm
Avg cadence
90rpm
Calories
316kcal
301 kJ of work
Training Stress
17TSS
FTP 251 W · IF 0.50
Relative Effort
35

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 W100%40 min
  • Z2Endurance · 139–188 W0%0 min
  • Z3Tempo · 189–226 W0%0 min
  • Z4Threshold · 227–264 W0%0 min
  • Z5VO2max · 265–301 W0%0 min
  • Z6Anaerobic · 302–377 W0%0 min
  • Z7Neuromuscular · ≥ 378 W0%0 min

Time in HR zones

HR zones on ride date · raw sampling (gaps >10 s excluded)
  • Z1Recovery · ≤ 128 bpm3%1 min
  • Z2Endurance · 129–146 bpm97%39 min
  • Z3Tempo · 147–160 bpm0%0 min
  • Z4Threshold · 161–172 bpm0%0 min
  • Z5Maximum · ≥ 173 bpm0%0 min

Power curve

This ride vs. bests 2026 and all-time

This ride – 1 min: 127 W · 1.66 W/kg, 5 min: 126 W · 1.64 W/kg, 20 min: 126 W · 1.64 W/kg

Performance analysis

Intensity Factor
0.50
NP ÷ FTP
Variability Index
1.00
NP ÷ avg power – 1.0 = very steady
Efficiency Factor
0.92
NP ÷ avg heart rate – rises with a better base
Perceived exertion
–

Aerobic decoupling (Pa:HR)

Only for rides ≥ 40 min with power + HR.

Fueling for this ride

During: Water is enough

Drink: 400–600 ml

After: Normal, balanced meal

Notes & raw data

Description

No description on Strava.

All data

Show raw data
{
  "id": "demo-0167",
  "name": "Recovery spin",
  "sport_type": "VirtualRide",
  "start_date": "2026-02-01T00:47:46Z",
  "start_date_local": "2026-01-31T19:47:46",
  "trainer": false,
  "distance": 18306.2,
  "moving_time": 2400,
  "elapsed_time": 2400,
  "total_elevation_gain": 0,
  "average_watts": 125.5,
  "average_heartrate": 137,
  "metrics": {
    "source": "streams",
    "power_distribution": {
      "version": 1,
      "method": "right-sample-dt-0-10s",
      "samples": [
        [
          115,
          14
        ],
        [
          120,
          415
        ],
        [
          125,
          1320
        ],
        [
          130,
          609
        ],
        [
          135,
          41
        ]
      ]
    },
    "power_curve": {
      "1": 135,
      "5": 130,
      "10": 130,
      "15": 128,
      "20": 128,
      "30": 128,
      "60": 127,
      "120": 127,
      "180": 126,
      "300": 126,
      "480": 126,
      "600": 126,
      "900": 126,
      "1200": 126,
      "1800": 126
    },
    "decoupling_pct": null,
    "hr_distribution": {
      "version": 1,
      "method": "right-sample-dt-0-10s",
      "samples": [
        [
          72,
          1
        ],
        [
          74,
          1
        ],
        [
          76,
          1
        ],
        [
          79,
          1
        ],
        [
          81,
          1
        ],
        [
          82,
          1
        ],
        [
          85,
          1
        ],
        [
          87,
          1
        ],
        [
          89,
          1
        ],
        [
          90,
          1
        ],
        [
          92,
          1
        ],
        [
          93,
          1
        ],
        [
          94,
          1
        ],
        [
          96,
          1
        ],
        [
          97,
          1
        ],
        [
          98,
          1
        ],
        [
          99,
          1
        ],
        [
          101,
          1
        ],
        [
          102,
          1
        ],
        [
          103,
          1
        ],
        [
          104,
          1
        ],
        [
          105,
          1
        ],
        [
          106,
          1
        ],
        [
          107,
          1
        ],
        [
          108,
          1
        ],
        [
          109,
          1
        ],
        [
          110,
          1
        ],
        [
          111,
          1
        ],
        [
          112,
          1
        ],
        [
          113,
          1
        ],
        [
          114,
          2
        ],
        [
          115,
          1
        ],
        [
          116,
          1
        ],
        [
          117,
          2
        ],
        [
          118,
          3
        ],
        [
          119,
          2
        ],
        [
          120,
          2
        ],
        [
          121,
          2
        ],
        [
          122,
          3
        ],
        [
          123,
          3
        ],
        [
          124,
          3
        ],
        [
          125,
          2
        ],
        [
          126,
          4
        ],
        [
          127,
          2
        ],
        [
          128,
          1
        ],
        [
          129,
          4
        ],
        [
          130,
          5
        ],
        [
          131,
          13
        ],
        [
          132,
          9
        ],
        [
          133,
          2
        ],
        [
          134,
          51
        ],
        [
          135,
          115
        ],
        [
          136,
          248
        ],
        [
          137,
          483
        ],
        [
          138,
          613
        ],
        [
          139,
          459
        ],
        [
          140,
          227
        ],
        [
          141,
          91
        ],
        [
          142,
          16
        ]
      ]
    },
    "hr_curve": {
      "60": 141,
      "300": 139,
      "1200": 139
    },
    "metric_sources": {
      "np": "streams",
      "variability_index": "np+summary",
      "efficiency_factor": "np+summary"
    },
    "np": 126,
    "variability_index": 1.004,
    "efficiency_factor": 0.92
  },
  "type": "VirtualRide",
  "workout_type": null,
  "timezone": "(GMT-05:00) America/New_York",
  "utc_offset": -18000,
  "strava_url": "https://www.strava.com/activities/demo-0167",
  "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": 7.628,
  "max_speed": 7.7,
  "device_watts": true,
  "weighted_average_watts": 126,
  "max_watts": 135,
  "kilojoules": 301.3,
  "has_heartrate": true,
  "max_heartrate": 142,
  "average_cadence": 90,
  "average_temp": null,
  "suffer_score": 35,
  "calories": 316,
  "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": "Easy",
      "lap_index": 1,
      "split": 1,
      "start_date_local": "2026-01-31T19:47:46",
      "elapsed_time": 2399,
      "moving_time": 2399,
      "distance": 18306.2,
      "total_elevation_gain": 0,
      "average_speed": 7.631,
      "max_speed": 7.7,
      "average_cadence": 90,
      "average_watts": 125.5,
      "device_watts": true,
      "average_heartrate": 137,
      "max_heartrate": 142,
      "start_index": 0,
      "end_index": 2399
    }
  ],
  "splits_metric": [],
  "segment_efforts": [],
  "best_efforts": [],
  "streams": "/streams/demo-0167.json",
  "external_id": null,
  "synced": {
    "summary": "2026-02-01T02:27:46.000Z",
    "detail": "2026-02-01T02:27:46.000Z",
    "streams": "2026-02-01T02:27:46.000Z"
  }
}