Why your running cadence shows half what it should
You look at a run’s data and the cadence reads 86. You know you run at about 170 steps per minute. The sensor is fine, and so is your stride. The number is counting one foot.
What the FIT file stores
A FIT file records your run as a stream of record messages, usually one per second. Each one has a field called cadence. The FIT format defines its unit as rpm, revolutions per minute, because the same field holds pedalling cadence on a bike, where one revolution is one turn of the cranks.
Running has no cranks, so watches count one revolution as one full stride cycle: a left step and a right step. That’s strides per minute, and it’s half your steps per minute. A record from a run at 172 steps per minute looks like this:
record
timestamp: 2026-10-04 07:31:15
distance: 2481.36 m
heart_rate: 151 bpm
cadence: 86 rpm Lap and session summaries are clearer about it. Their average cadence field is the same field number for every sport, but the FIT format renames it avg_running_cadence with the unit “strides/min” when the activity is a run.
There’s also a fractional_cadence field, which carries the fraction of a stride per minute in 128ths. Not every device writes it.
Why apps show different numbers
Running cadence is usually quoted in steps per minute, counting both feet. So an app reading a FIT file has to decide whether to double the value, and for which sports. If an app shows your raw per-foot figure, or doubles it in one place but not another, you see half your real cadence.
What FitKeep does
For runs and walks, FitKeep doubles the per-second cadence when it reads the file, so the cadence chart is in steps per minute. Cycling cadence stays in rpm, as recorded. Other sports are shown as the device recorded them.
Lap averages are stored as the device reported them, per foot, and doubled when they’re shown. We got this wrong at first. Until September 2026 the chart showed steps per minute while the lap table showed the per-foot figure, so the same run could show 172 in one place and 86 in another. The lap table now goes through the same conversion as the chart, and so do the lap figures FitKeep gives to AI assistants.
FitKeep doesn’t read fractional_cadence. Every per-second value on a run’s cadence chart is a whole number of strides doubled, so it’s always even.
Check your own file
If you want to see the raw values, Garmin’s FIT SDK includes FitCSVTool, which converts a FIT file to a CSV you can open in a spreadsheet. Look for the record rows and the cadence column. On a run, it’ll be roughly half the steps per minute your watch shows.
FitKeep shows cadence in steps per minute for runs and walks and in rpm for rides, in the charts and in every lap. See Read Your Activity Details for the cadence chart.