Indoor · Ride

FTP test (20 min)

Sunday, 11 January 2026 · 06:22Z2Indoor TrainerSmart trainer

Route

Route

Key data

Distance
34.4km
Moving time
1:05 h
total 1:05:00
Elevation
0m
Avg speed
31.7km/h
max 37.3 km/h
Avg power
187W
2.45 W/kg · max 295 W
Normalized Power
215W
2.81 W/kg
Avg heart rate
154bpm
max 180 bpm
Avg cadence
90rpm
Calories
767kcal
731 kJ of work
Training Stress
79TSS
FTP 251 W · IF 0.86
Relative Effort
122

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 W31%20 min
  • Z2Endurance · 139–188 W31%20 min
  • Z3Tempo · 189–226 W0%0 min
  • Z4Threshold · 227–264 W12%8 min
  • Z5VO2max · 265–301 W26%17 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 bpm1%1 min
  • Z2Endurance · 129–146 bpm58%38 min
  • Z3Tempo · 147–160 bpm3%2 min
  • Z4Threshold · 161–172 bpm3%2 min
  • Z5Maximum · ≥ 173 bpm35%23 min

Power curve

This ride vs. bests 2026 and all-time

This ride – 1 min: 272 W · 3.55 W/kg, 5 min: 271 W · 3.54 W/kg, 20 min: 265 W · 3.46 W/kg

Performance analysis

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

Aerobic decoupling (Pa:HR)

-16.9 %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

5 laps
1Warm-up9.84 km19:5929.5151142147900
2Opener3.07 km4:5936.9271174179900
3Recovery4.59 km9:5927.6126140175900
420 min test12.24 km19:5936.7265176180900
5Cool-down4.59 km9:5927.6126142174900

Notes & raw data

Description

Coffee stop halfway, as always.

All data

Show raw data
{
  "id": "demo-0166",
  "name": "FTP test (20 min)",
  "sport_type": "Ride",
  "start_date": "2026-01-04T11:22:18Z",
  "start_date_local": "2026-01-04T06:22:18",
  "trainer": true,
  "distance": 34362.2,
  "moving_time": 3900,
  "elapsed_time": 3900,
  "total_elevation_gain": 0,
  "average_watts": 187.3,
  "average_heartrate": 154.4,
  "metrics": {
    "source": "streams",
    "power_distribution": {
      "version": 1,
      "method": "right-sample-dt-0-10s",
      "samples": [
        [
          115,
          3
        ],
        [
          120,
          178
        ],
        [
          125,
          674
        ],
        [
          130,
          326
        ],
        [
          135,
          19
        ],
        [
          140,
          13
        ],
        [
          145,
          229
        ],
        [
          150,
          600
        ],
        [
          155,
          313
        ],
        [
          160,
          43
        ],
        [
          165,
          1
        ],
        [
          240,
          1
        ],
        [
          245,
          6
        ],
        [
          250,
          29
        ],
        [
          255,
          133
        ],
        [
          260,
          302
        ],
        [
          265,
          428
        ],
        [
          270,
          339
        ],
        [
          275,
          187
        ],
        [
          280,
          54
        ],
        [
          285,
          19
        ],
        [
          290,
          1
        ],
        [
          295,
          1
        ]
      ]
    },
    "power_curve": {
      "1": 295,
      "5": 278,
      "10": 276,
      "15": 274,
      "20": 274,
      "30": 274,
      "60": 272,
      "120": 271,
      "180": 271,
      "300": 271,
      "480": 265,
      "600": 265,
      "900": 265,
      "1200": 265,
      "1800": 219,
      "2700": 209,
      "3600": 192
    },
    "decoupling_pct": -16.9,
    "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
        ],
        [
          89,
          1
        ],
        [
          91,
          1
        ],
        [
          93,
          1
        ],
        [
          95,
          1
        ],
        [
          97,
          1
        ],
        [
          98,
          1
        ],
        [
          100,
          1
        ],
        [
          101,
          1
        ],
        [
          103,
          1
        ],
        [
          104,
          1
        ],
        [
          105,
          1
        ],
        [
          106,
          1
        ],
        [
          108,
          1
        ],
        [
          109,
          1
        ],
        [
          111,
          1
        ],
        [
          112,
          1
        ],
        [
          113,
          1
        ],
        [
          114,
          1
        ],
        [
          115,
          1
        ],
        [
          116,
          1
        ],
        [
          117,
          1
        ],
        [
          118,
          1
        ],
        [
          119,
          1
        ],
        [
          120,
          2
        ],
        [
          121,
          1
        ],
        [
          122,
          1
        ],
        [
          123,
          2
        ],
        [
          124,
          1
        ],
        [
          125,
          2
        ],
        [
          126,
          1
        ],
        [
          127,
          2
        ],
        [
          128,
          1
        ],
        [
          129,
          3
        ],
        [
          130,
          1
        ],
        [
          131,
          2
        ],
        [
          132,
          2
        ],
        [
          133,
          4
        ],
        [
          134,
          1
        ],
        [
          135,
          6
        ],
        [
          136,
          10
        ],
        [
          137,
          122
        ],
        [
          138,
          242
        ],
        [
          139,
          230
        ],
        [
          140,
          229
        ],
        [
          141,
          195
        ],
        [
          142,
          203
        ],
        [
          143,
          310
        ],
        [
          144,
          369
        ],
        [
          145,
          254
        ],
        [
          146,
          87
        ],
        [
          147,
          11
        ],
        [
          148,
          10
        ],
        [
          149,
          12
        ],
        [
          150,
          5
        ],
        [
          151,
          6
        ],
        [
          152,
          8
        ],
        [
          153,
          4
        ],
        [
          154,
          6
        ],
        [
          155,
          5
        ],
        [
          156,
          5
        ],
        [
          157,
          8
        ],
        [
          158,
          8
        ],
        [
          159,
          5
        ],
        [
          160,
          7
        ],
        [
          161,
          6
        ],
        [
          162,
          5
        ],
        [
          163,
          6
        ],
        [
          164,
          7
        ],
        [
          165,
          9
        ],
        [
          166,
          11
        ],
        [
          167,
          12
        ],
        [
          168,
          8
        ],
        [
          169,
          7
        ],
        [
          170,
          11
        ],
        [
          171,
          9
        ],
        [
          172,
          12
        ],
        [
          173,
          31
        ],
        [
          174,
          67
        ],
        [
          175,
          299
        ],
        [
          176,
          371
        ],
        [
          177,
          309
        ],
        [
          178,
          222
        ],
        [
          179,
          80
        ],
        [
          180,
          3
        ]
      ]
    },
    "hr_curve": {
      "60": 178,
      "300": 178,
      "1200": 176,
      "3600": 156
    },
    "metric_sources": {
      "np": "streams",
      "variability_index": "np+summary",
      "efficiency_factor": "np+summary"
    },
    "np": 215,
    "variability_index": 1.148,
    "efficiency_factor": 1.392
  },
  "type": "Ride",
  "workout_type": null,
  "timezone": "(GMT-05:00) America/New_York",
  "utc_offset": -18000,
  "strava_url": "https://www.strava.com/activities/demo-0166",
  "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.811,
  "max_speed": 10.36,
  "device_watts": true,
  "weighted_average_watts": 215,
  "max_watts": 295,
  "kilojoules": 730.5,
  "has_heartrate": true,
  "max_heartrate": 180,
  "average_cadence": 90.1,
  "average_temp": null,
  "suffer_score": 122,
  "calories": 767,
  "perceived_exertion": null,
  "kudos_count": 0,
  "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-01-04T06:22:18",
      "elapsed_time": 1199,
      "moving_time": 1199,
      "distance": 9841.8,
      "total_elevation_gain": 0,
      "average_speed": 8.208,
      "max_speed": 8.29,
      "average_cadence": 90,
      "average_watts": 150.6,
      "device_watts": true,
      "average_heartrate": 142,
      "max_heartrate": 147,
      "start_index": 0,
      "end_index": 1199
    },
    {
      "name": "Opener",
      "lap_index": 2,
      "split": 2,
      "start_date_local": "2026-01-04T06:42:18",
      "elapsed_time": 299,
      "moving_time": 299,
      "distance": 3067.6,
      "total_elevation_gain": 0,
      "average_speed": 10.26,
      "max_speed": 10.36,
      "average_cadence": 90,
      "average_watts": 270.5,
      "device_watts": true,
      "average_heartrate": 173.5,
      "max_heartrate": 179,
      "start_index": 1200,
      "end_index": 1499
    },
    {
      "name": "Recovery",
      "lap_index": 3,
      "split": 3,
      "start_date_local": "2026-01-04T06:47:18",
      "elapsed_time": 599,
      "moving_time": 599,
      "distance": 4591,
      "total_elevation_gain": 0,
      "average_speed": 7.664,
      "max_speed": 9.93,
      "average_cadence": 89.9,
      "average_watts": 125.7,
      "device_watts": true,
      "average_heartrate": 140.3,
      "max_heartrate": 175,
      "start_index": 1500,
      "end_index": 2099
    },
    {
      "name": "20 min test",
      "lap_index": 4,
      "split": 4,
      "start_date_local": "2026-01-04T06:57:18",
      "elapsed_time": 1199,
      "moving_time": 1199,
      "distance": 12235,
      "total_elevation_gain": 0,
      "average_speed": 10.204,
      "max_speed": 10.29,
      "average_cadence": 90.2,
      "average_watts": 264.8,
      "device_watts": true,
      "average_heartrate": 175.6,
      "max_heartrate": 180,
      "start_index": 2100,
      "end_index": 3299
    },
    {
      "name": "Cool-down",
      "lap_index": 5,
      "split": 5,
      "start_date_local": "2026-01-04T07:17:18",
      "elapsed_time": 599,
      "moving_time": 599,
      "distance": 4590.4,
      "total_elevation_gain": 0,
      "average_speed": 7.663,
      "max_speed": 9.83,
      "average_cadence": 90.1,
      "average_watts": 125.8,
      "device_watts": true,
      "average_heartrate": 141.5,
      "max_heartrate": 174,
      "start_index": 3300,
      "end_index": 3899
    }
  ],
  "splits_metric": [],
  "segment_efforts": [],
  "best_efforts": [],
  "streams": "/streams/demo-0166.json",
  "external_id": null,
  "synced": {
    "summary": "2026-01-04T13:27:18.000Z",
    "detail": "2026-01-04T13:27:18.000Z",
    "streams": "2026-01-04T13:27:18.000Z"
  }
}