Hi David,
I coach swimmers and triathletes and build all structured workouts in
Intervals, which then push to Garmin. One gap keeps forcing us out of the
platform for swim sessions.
Garmin’s own swim workouts carry three per-step attributes that Intervals
currently has no field for:
- stroke type (freestyle, backstroke, breaststroke, butterfly, IM, drill)
- drill type (e.g. kick)
- equipment (kickboard, paddles, pull buoy, fins, snorkel)
These are standard FIT fields, not Garmin extensions — workout_step.equipment
(field 9) and target_type = swim_stroke (value 11) are both in the FIT
profile, and Garmin devices already read and display them. Garmin’s built-in
Triathlon Coach plans use them extensively, so the watch-side behaviour is
proven.
Today a step like “4x50 catch-up drill with kickboard” reaches the watch as a
distance step with a pace target and a free-text name. The athlete has to
remember what the label means, the watch cannot show the stroke or the
equipment, and the completed activity carries no record of which drill was
prescribed.
The equipment field is the one that matters most to us, and for a concrete
reason: paddles and a pull buoy shift pace by roughly 5-10% by design. Since
the prescription cannot say “this rep is with paddles”, our compliance logic
has to infer equipment from the pace deviation itself — we are reverse-
engineering a number that could simply have been declared.
What would help, in rough order of value:
- equipment on a swim workout step
- stroke type on a swim workout step
- drill as a first-class step attribute rather than only a name
Even just persisting the fields through the workout model and emitting them
on the Garmin push (and in download-workout.fit) would be a big step — the
workout builder UI could follow later. We write workouts through the API, so
we do not need builder support to benefit.
And if typed swim fields don’t fit the workout model, a generic per-step
passthrough would solve our case almost as well: any free-text or key/value
field on a workout step that Intervals stores and carries through to the FIT
on export and on the Garmin push. workout_step.notes (field 8) already exists
in the FIT profile for roughly this purpose and is currently not emitted.
That would let us round-trip the information without you having to model swim
semantics at all — less elegant than typed fields, but it unblocks us.
Happy to test against a real account and share example FIT files from
Garmin’s own swim plans if that helps.
Thanks for the platform.