A workout step message describes one step of a structured workout: how long it lasts (time, distance, calories, heart rate, open…), what to target (pace, heart rate, power, cadence zones or custom ranges), its intensity, and how to repeat previous steps. Strength workouts also specify the exercise and the weight.
messageIndexStringIndex of the message among the messages of the same kind in the file, starting at 0. Other messages use it to reference this one.
wktStepNameStringName of the workout step.
durationTypeEnumWhat ends the step: time, distance, calories, heart rate above or below a value, power, repetitions, lap button (open), or repeat until a condition is met.
timeopendistancehrLessThanhrGreaterThancaloriesrepeatUntilStepsCmpltrepeatUntilTimerepeatUntilDistancerepeatUntilCaloriesrepeatUntilHrLessThanrepeatUntilHrGreaterThanrepeatUntilPowerLessThanrepeatUntilPowerGreaterThanpowerLessThanpowerGreaterThantrainingPeaksTssrepeatUntilPowerLastLapLessThanrepeatUntilMaxPowerLastLapLessThanpower3sLessThanpower10sLessThanpower30sLessThanpower3sGreaterThanpower10sGreaterThanpower30sGreaterThanpowerLapLessThanpowerLapGreaterThanrepeatUntilTrainingPeaksTssrepetitionTimerepstimeOnlydurationValueUint32Raw value of the duration, to interpret according to durationType.
Time to spend before moving to the next step.
Distance to cover before moving to the next step.
Heart rate to reach before moving to the next step. Values up to 100 are a percentage of max heart rate, values above are beats per minute plus 100.
bpmOffsetCalories to burn before moving to the next step.
durationStepUint32messageIndex of the step to loop back to, for repeat steps.
Power to reach before moving to the next step. Values up to 1000 are a percentage of FTP, values above are watts plus 1000.
wattsOffsetdurationRepsUint32Number of repetitions to perform before moving to the next step.
targetTypeEnumWhat the target of the step is about: speed, heart rate, cadence, power, grade, resistance, swim stroke… or open (no target).
openspeedheartRatecadencepowergraderesistancepower3spower10spower30spowerLapswimStrokespeedLapheartRateLaptargetValueUint32Raw value of the target of the step, to interpret according to the target type (zone number, or 0 for a custom range).
targetSpeedZoneUint32Speed zone to stay in (1 to 10), for the target of the step. 0 means a custom range.
targetHrZoneUint32Heart rate zone to stay in (1 to 5), for the target of the step. 0 means a custom range.
targetCadenceZoneUint32Cadence zone to stay in, for the target of the step. 0 means a custom range.
targetPowerZoneUint32Power zone to stay in (1 to 7), for the target of the step. 0 means a custom range.
repeatStepsUint32Number of times to repeat the steps.
Time to spend before stopping the repetitions.
Distance to cover before stopping the repetitions.
Calories to burn before stopping the repetitions.
Heart rate to reach before stopping the repetitions.
bpmOffsetPower to reach before stopping the repetitions.
wattsOffsettargetStrokeTypeEnumSwimming stroke to use, for the target of the step.
freestylebackstrokebreaststrokebutterflydrillmixedimimByRoundrimocustomTargetValueLowUint32Lower bound of the custom range, as a raw value to interpret according to the target type, for the target of the step.
Lower bound of the custom speed range, for the target of the step.
Lower bound of the custom heart rate range, for the target of the step. Values up to 100 are a percentage of max heart rate, values above are beats per minute plus 100.
bpmOffsetLower bound of the custom cadence range, for the target of the step.
Lower bound of the custom power range, for the target of the step. Values up to 1000 are a percentage of FTP, values above are watts plus 1000.
wattsOffsetcustomTargetValueHighUint32Upper bound of the custom range, as a raw value to interpret according to the target type, for the target of the step.
Upper bound of the custom speed range, for the target of the step.
Upper bound of the custom heart rate range, for the target of the step. Values up to 100 are a percentage of max heart rate, values above are beats per minute plus 100.
bpmOffsetUpper bound of the custom cadence range, for the target of the step.
Upper bound of the custom power range, for the target of the step. Values up to 1000 are a percentage of FTP, values above are watts plus 1000.
wattsOffsetintensityEnumIntensity of the period: active, rest, warmup, cooldown, recovery, interval or other.
intervalotheractiverestwarmupcooldownrecoverynotesStringNotes about the step.
equipmentEnumSwimming equipment to use: fins, kickboard, paddles, pull buoy, snorkel.
noneswimFinsswimKickboardswimPaddlesswimPullBuoyswimSnorkelexerciseCategoryEnumCategory of strength exercise: bench press, squat, deadlift, plank, lunge, core…
unknownmoveellipticalwarmUpbenchPresscalfRaisecardiocarrychopcorecrunchcurldeadliftflyehipRaisehipStabilityhipSwinghyperextensionlateralRaiselegCurllegRaiselungeolympicLiftplankplyopullUppushUprowshoulderPressshoulderStabilityshrugsitUpsquattotalBodytricepsExtensionrunbikecardioSensorsposebandedExercisesbattleRopefloorClimbindoorBikeindoorRowladdersandbagsledsledgeHammerstairSteppersuspensiontirerunIndoorbikeOutdoorexerciseNameUint16Exercise within the category. Its meaning depends on exerciseCategory (each category has its own list of exercise names).
Weight to use for the exercise.
Unit the weight should be displayed in: kilograms or pounds.
otherkilogrampoundWhat the secondary target of the step is about: speed, heart rate, cadence, power, grade, resistance, swim stroke… or open (no target).
openspeedheartRatecadencepowergraderesistancepower3spower10spower30spowerLapswimStrokespeedLapheartRateLapsecondaryTargetValueUint32Raw value of the secondary target of the step, to interpret according to the target type (zone number, or 0 for a custom range).
secondaryTargetSpeedZoneUint32Speed zone to stay in (1 to 10), for the secondary target of the step. 0 means a custom range.
secondaryTargetHrZoneUint32Heart rate zone to stay in (1 to 5), for the secondary target of the step. 0 means a custom range.
Cadence zone to stay in, for the secondary target of the step. 0 means a custom range.
secondaryTargetPowerZoneUint32Power zone to stay in (1 to 7), for the secondary target of the step. 0 means a custom range.
Swimming stroke to use, for the secondary target of the step.
freestylebackstrokebreaststrokebutterflydrillmixedimimByRoundrimoLower bound of the custom range, as a raw value to interpret according to the target type, for the secondary target of the step.
Lower bound of the custom speed range, for the secondary target of the step.
Lower bound of the custom heart rate range, for the secondary target of the step. Values up to 100 are a percentage of max heart rate, values above are beats per minute plus 100.
bpmOffsetLower bound of the custom cadence range, for the secondary target of the step.
Lower bound of the custom power range, for the secondary target of the step. Values up to 1000 are a percentage of FTP, values above are watts plus 1000.
wattsOffsetUpper bound of the custom range, as a raw value to interpret according to the target type, for the secondary target of the step.
Upper bound of the custom speed range, for the secondary target of the step.
Upper bound of the custom heart rate range, for the secondary target of the step. Values up to 100 are a percentage of max heart rate, values above are beats per minute plus 100.
bpmOffsetUpper bound of the custom cadence range, for the secondary target of the step.
Upper bound of the custom power range, for the secondary target of the step. Values up to 1000 are a percentage of FTP, values above are watts plus 1000.
wattsOffsetmesgNumStringGlobal message number identifying the kind of message. Decoders use it to know which profile to apply to the data.