Unlocking Garmin Running Dynamics in IcuSync

By Toby Pattullo
Australian Deaflympic marathon and ultra runner, and the solo developer behind IcuSync.
IcuSync can analyse your Garmin running dynamics directly through Claude: ground contact time, vertical oscillation, step length, vertical ratio, and ground contact time balance (left/right).
This guide walks through the one-time setup in Intervals.icu that unlocks Garmin running dynamics data.
How it works
When your watch records a run with a compatible Garmin accessory, the running dynamics metrics are embedded in the FIT file alongside your standard data. Intervals.icu stores this file but doesn't automatically expose those fields. You need to tell it which fields to extract as named streams. Once set up, IcuSync can read those streams and Claude can analyse them like any other metric.
Prerequisites
- A compatible Garmin device with running dynamics support (see hardware note below)
- An Intervals.icu account with your runs syncing directly from your Garmin (not via Strava: Strava strips extended metrics from FIT files before passing them on)
- IcuSync connected to Intervals.icu
Hardware note
Garmin running dynamics require one of the following:
- HRM-Pro or HRM-Pro Plus (chest strap, full metrics including left/right balance)
- HRM-Run (chest strap, full metrics)
- Running Dynamics Pod (clips to waistband, full metrics)
- Some Garmin watches (Forerunner 965, Fenix 7 Pro and later) record a basic subset natively without an accessory
If you're unsure what your setup captures, just proceed with the setup below. The Record field dropdown will only show fields your device actually recorded.
One-time setup in Intervals.icu
Step 1: Open any recent run activity
Open a run recorded with your Garmin accessory attached.
Step 2: Open Custom Streams
Under the activity chart, click Charts, then Custom Streams. Click Add Stream.
Step 3: Add each stream
You'll see a dialog with a Name field and a Record field dropdown. Add one stream for each metric below. Use the Name exactly as shown.
| Name | Record field | Units |
|---|---|---|
GarminGCT | stance_time | ms |
GarminVO | vertical_oscillation | mm |
GarminStepLength | step_length | mm |
GarminVerticalRatio | vertical_ratio | percent |
GarminGCTBalance | stance_time_balance | percent |
Note: The Record field dropdown is populated from your FIT file. If a field doesn't appear, your device or accessory may not record that metric.
Note on units: Vertical oscillation is recorded in millimetres (mm) here, unlike Stryd which uses centimetres. Keep this in mind when comparing values between the two.
Step 4: Reprocess the activity
After adding all streams, click Actions on the activity and select Reprocess File. This tells Intervals.icu to re-read the original FIT file and extract the data.
Applying to past runs
The custom streams you just created apply automatically to all future runs: no further action needed.
For past runs, you can bulk reprocess:
- Go to the Activities list view (the table, not the calendar)
- Filter by Run sport
- Select the activities you want using the checkboxes
- Click Edit at the top and choose Reprocess File
- In the confirmation dialog, tick Keep existing intervals to preserve your interval detection, then click OK
What you can ask Claude
Once set up, you can ask Claude things like:
- "How was my running form on yesterday's long run?"
- "How did my ground contact time change through my intervals?"
- "Is my left/right balance consistent when I get tired?"
- "Compare my vertical oscillation between easy runs and tempo runs this month"
Claude will use the get_extended_metrics tool automatically and break down the data per interval.
Available metrics reference
| Metric | What it measures |
|---|---|
| Ground Contact Time | Time each foot spends on the ground per step (ms). Lower = more efficient at higher speeds. |
| Vertical Oscillation | How much you bounce up and down per step (mm). Lower is generally more efficient. Note: recorded in mm by Garmin, unlike Stryd which uses cm. |
| Step Length | Distance covered per step (mm). Useful for tracking cadence and economy changes. |
| Vertical Ratio | Vertical oscillation as a percentage of step length (%). Lower = better use of forward energy. |
| GCT Balance | Left/right difference in ground contact time (%). Asymmetry can indicate fatigue or injury risk. |
What about Step Speed Loss, Running Power, and Hill Score?
Garmin lists nine metrics under its Running Dynamics umbrella. Three of them don't require custom streams in Intervals.icu:
- Cadence — captured natively by Intervals.icu on every run, no setup needed
- Running Power — available as a standard power field in Intervals.icu if your watch records it
- Hill Score — a fitness estimate, not a per-activity stream
Step Speed Loss is a newer metric that measures how much your forward speed drops at each foot strike. It requires the HRM-600 chest strap and is only available on the Forerunner 970 (launched May 2025). We haven't been able to confirm the FIT file field name for this metric in Intervals.icu custom streams. If you have an HRM-600, check the Record field dropdown on one of your activities and let us know — we'll update this guide.
Troubleshooting
Fields don't appear in the Record field dropdown The dropdown is populated from the currently open activity. Make sure the run was recorded with your Garmin accessory active. Try opening a different recent run.
Streams set up but Claude still can't see the data Make sure you clicked Reprocess File after adding the streams. Also confirm your runs are syncing directly from your Garmin to Intervals.icu. If they're coming through Strava, the extended metrics are stripped before they reach Intervals.icu.
I also use a Stryd pod: which takes priority? If you have both Garmin running dynamics and Stryd, IcuSync uses the Garmin data for ground contact time and vertical oscillation and shows the Stryd data separately. There is no conflict. See Unlocking Stryd Data in IcuSync if you want to set up both.