This year I’ve taken a more systematic approach to running and part of that has been running with a foot pod. Unfortunately, it requires calibration and the calibration factor keeps shifting drastically from run to run. The violin plots show 22 runs; color represents different routes. The median in each plot marks the calibration factor I should have used during that run—calculated after the fact.

Runs 21 and 22 are an extreme case. They are two halves of an out-and-back run: I ran 3 miles out, stopped, and marked the run as finished on the watch. Then I immediately started a new run back home at about the same pace. The needed calibration factor shifted from 0.607 to 0.499. This is huge: since I did not actually change the calibration during that run, this means the watch jumped 22% in reporting my speed. Since the weather, route, and pace was the same, it’s hard to think this is an actual shift in the speed reported by the foot pod to the watch, but much more likely is a bug in the watch software.

I used violin plots to show that they are truly two different populations during the two runs: the variation is not just statistical noise.


It all started with getting a GPS watch and heart rate monitor for tracking my runs and doing heart rate-based training. It didn’t take long to notice how noisy is the instantaneous pace computed from GPS, even if the total distance traveled is very good on runs that aren’t too twisty. I found pace to be especially bad at turnaround points, where I was running at 7:30/mile pace, but the watch reported 12:00/mile.

After reading some very good sites I decided to give a foot pod a try. The only problem is that it requires calibration to adapt to your specific gait pattern. Here is the result of one run: Gray is GPS-based pace (note how noisy it is!). Red is the uncalibrated foot pod pace: much smoother, but awfully biased. Green is the result after multiplying by a single calibration factor, computed for this specific run.

How do we compute it?

The standard way is to integrate the pace into a total distance and to compare that with either a known distance (e.g., a track) or the GPS distance. This makes sense if our goal is to be able to compute total distance just using a foot pod. The method works well. However, I worry that if there are a few very bad outliers, the computation could yield a less-than-useful pace.

My approach is slightly different: at every moment I compute an instantaneous calibration factor equal to (GPS pace)/(foot pod pace) and then I take the median (marked in the violin plots above). The goal is to be insensitive to a few very bad measurements, which I have seen occasionally. In practice, there’s little difference between the two approaches. It’s more the principle: I’m looking for a typically-correct calibration factor.

The frustration

I expected that, after calibrating the foot pod, I would only need to do occasional adjustments. Not so: from one run to the next the calibration factor can change drastically, to the point of being unusable during races. I’m in contact with the watch & foot pod manufacturer, hoping they’ll help me figure out if this is user error, defective hardware, or something else.