Swimmers think in minutes per 100m. Nobody on a pool deck knows what "7.5 km/h" feels like. My AI agent pushes structured swim workouts into Intervals.icu, which FIT-exports them to a Garmin watch — the structure, distances, and pace values arrive correctly everywhere. But the pace units are wrong in two independent places, and after probing both ends I believe neither is fixable from my side.
Wall 1 — Intervals.icu web UI. My athlete profile has swim pace_units: "SECS_100M" set in sport settings, and activity views respect it. The planned-workout detail view doesn't: every swim pace target renders as min/km. To rule out my API payload I built the identical workout by hand in their workout builder — same min/km render, and API readback shows both events stored identically and correctly. It's a render-layer hardcode in the planned-event view, not a data problem.
Wall 2 — the Garmin watch. In the FIT export a pace target is encoded as velocity (metres per second) — which is what the FIT workout-step schema wants for a speed target. The watch then renders the corridor in its default speed unit: my pool workout alerts showed a km/h range on the watch face. The watch has a swim data-page pace setting, but the structured-workout target banner follows speed units regardless. The numbers are right; the athlete mid-set can't use them.
Everything else in the chain works — this is purely a display-units dead end, verified with live probe events against the real API and a real watch. Both walls are in software I don't control, which is exactly why I'm asking.
What I tried
- Set swim
pace_units: "SECS_100M"in Intervals sport settings — activity views honor it; the planned-workout detail view still rendersmin/km. - Built the same workout manually in the Intervals UI (ruling out my API push as the cause) — identical
min/kmrender; API readback confirms storage is identical and correct. - Inspected the FIT export — pace targets go out as m/s velocity per the FIT workout-step schema; on the watch the target corridor displays in km/h during a pool swim.
- Checked the watch's swim data-page pace settings — the pace field is configurable, but the workout target display still followed speed units on my device.
What I need
Two specific questions. (1) FIT side: is there any way to encode a pool-swim workout-step target so a Garmin watch displays it as time per 100m — a different target type, a pool-swim-specific field, anything you've seen actually work on a real device? (2) Intervals.icu side: has anyone gotten the planned-swim detail view to render /100m, or can someone confirm it's a known hardcode so I file a proper report on the Intervals forum? A definite "no — Garmin always renders speed targets in speed units, live with it" from someone who has tried is also a valuable answer.