Does your GPS watch report bizarre, dramatic spikes in heart rate in the middle of your run? I received a text message from a friend recently with this screenshot of his heart rate and elevation data from an easy run:

This was from a typical run on pretty mild to moderate hills. At first glance, you might think that running uphill triggered an abrupt increase in heart rate, but unless this coincided with an abrupt surge in speed, such a big spike in heart rate seems very strange.
Looking at this plot, it seems like one of two things is happening: either (a) my friend’s watch is seriously mistaken about his heart rate, or (b) my friend should see a cardiologist.
Even though companies like Garmin or Apple or Fitbit keep their data processing algorithms pretty close to the chest, my PhD research involves a lot of work with wearable technology, so I have a pretty solid understanding of what’s going on under the hood when a GPS watch is estimating things like running speed or heart rate. What could be going wrong here?
I immediately noticed that the supposed “heart rate” being reported by the GPS watch in the screenshot above looked suspiciously similar to the range of values you’d see for cadence—around 165 to 185 steps per minute. So, I asked him to send me an overlay of his heart rate and his cadence (which is also measured by the watch). An, lo and behold—at halfway through the run, a near-perfect match!

This phenomenon is something that’s been dubbed cadence lock in the running scene—sometimes, your watch seems to “lock onto” your cadence, confusing it with your heart rate. Why does this happen, and how can you fix it? To answer these questions, we’ll need a bit of background on wearable tech.
How do GPS watches measure your heart rate when you run?
Heart rate sensors on GPS watches are a relatively new innovation, but they rely on techniques that date to the mid-20th century. If you have one of these watches, you know they have a bright green LED on the wrist-facing side, like this:

The watch above has three green LEDs, and one photosensor (the black square in the middle). This approach is called photoplethysmography, or PPG, and is the same technology used in pulse oximetry (which is used in hospital “finger clips” to track blood oxygenation.
Here’s the basic idea: the way the hemoglobin proteins in red blood cells absorb light is affected by whether or not they are currently carrying oxygen. Further, because blood vessels contract and expand along with the beating of your heart, the way certain wavelengths of light (such as green light!) are absorbed, or not, varies predictably as your heart beats.
Because each beat of your heart sends a wave of freshly oxygenated red blood cells rushing through your lungs and into your blood vessels, there is an ebb and flow to the amount of light absorbed by the tissue close to the surface of your wrist.
So, in theory, it should be possible to look at the rise and fall of the light absorption at the wrist to detect the heart rate. And indeed, most of the time this works just fine! The only problem is, in running, things get a bit messy.
Why is wrist-based heart rate so inaccurate during running?
Running causes problems for wrist-based optical heart rate monitors because it creates strong acceleration signals that interfere with the optical data coming into the watch. There’s a nice open-source dataset at PhysioNet that beautifully illustrates the problem. Check out the following plot:

We’ve got three sources of data: a chest electrocardiogram (also known as an ECG) measuring the true contraction of the heart via electrical activity, an optical sensor at the wrist measuring the optical signal on the back of the wrist, and a wrist-worn accelerometer, which measures the motion of the wrist. The person in this plot is running at a pretty easy pace on a treadmill. A few things to notice:
- On the chest ECG (top panel), heart rate jumps out plain as day. This runner’s heart beats nine times in five seconds, meaning his or her heart rate is about 108 beats per minute during this five-second window.
- In the acceleration data at the wrist (middle panel), cadence jumps out pretty clearly as well. It’s a bit harder to see if (unlike me) you don’t look at this stuff all day long, but based on the repeating pattern of acceleration (which comes from the forward-backward swinging of the wrist and the up-down bouncing of the body), it’s pretty clear this runner takes about 11 steps in ten seconds, meaning his or her cadence is about 132 steps per minute.
- The optical data from the wrist (bottom panel) is pretty messy!
You can probably start seeing where we’re going here. The problem that a GPS watch faces is trying to extract the heart rate signal from all the noise generated from your cadence. One way to get a handle on the difficulty of this problem is to take a look at the different frequencies present in each signal. That’s what the plot below is doing:
You can probably start seeing where we’re going here. The problem that a GPS watch faces is trying to extract the heart rate signal from all the noise generated from your cadence. One way to get a handle on the difficulty of this problem is to take a look at the different frequencies present in each signal. That’s what the plot below is doing:

For the engineers out there, this comes from a Fourier transform; if this means nothing to you, don’t worry about it. Notice the problem? The heart rate signal at the wrist is tiny compared to the noise from the motion of your wrist! Thus, it’s easy to see where “cadence lock” comes from: the watch locks onto the noise generated by the motion of your wrist, instead of the true signal generated by your heart.
As you might imagine, the problem of tracking your heart rate amid all this noise gets even nastier in two situations:
- When the wrist acceleration signal is very strong—which is what happens when you are running fast
- When your cadence gets close to your heart rate—which also happens when you are running fast
This, of course, is quite annoying for people who do heart rate-based training, since you’d normally be especially concerned with your heart rate during your workouts.
We might imagine some ways to attack this problem: use multiple optical sensors, try to somehow subtract the acceleration signal out of the optical signal, and so on. You can bet this is what companies like Apple, Garmin, and Fitbit try to do. But, given what we’ve seen above, it’s likely that even the best tricks won’t always work.
How to improve the accuracy of wrist heart rate measurements during running
First off, if knowing your heart rate is absolutely critical to your training, use a chest strap instead. That’s the best way to guarantee accurate readings. That being said, there are a few strategies you might use to improve the quality of wrist-based heart rate measurements.
For starters, strap your watch on tightly and make sure the sensor is clean. When the optical sensor is pressed against your skin, it will move around less when you run, and have a better chance at reading your heart rate accurately.
Another trick you can try is holding your arm out in front of you for several seconds before checking your heart rate. The idea here is to reduce the acceleration on the wrist from the swinging motion of your arms. I suspect this will work less well than you’d think, because even when you don’t swing your arms when you run, they are still bouncing up and down quite a lot with respect to the ground (because your arm is attached to your torso).
An optical heart rate monitor that experiences less acceleration—for example, the kind that goes on your forearm or upper arm—will likely have an easier time detecting your true heart rate and not falling prey to cadence lock.
Still, as I mentioned above, even the upper arm experiences quite strong accelerations during fast running, so even an arm-based optical heart rate sensor is not likely to be a perfect solution for everyone.
Lastly, if your watch supports it, change the settings on your watch face to display your cadence on the same screen as your heart rate. If you check your heart rate and see it closely tracking your cadence, you’ll know that you’re experiencing cadence lock, and you should disregard what your watch says.
Recap
There’s a lot more to say about whether heart rate training for runners is even a good idea in the first place (I for one am skeptical), and there’s also more to say about a range of other factors that can affect the accuracy of a wrist-worn heart rate monitor.
The bottom line is that you should keep your sensor clean, make sure your watch isn’t loose, and compare your recorded heart rate against your cadence. If they’re suddenly changing in lock-step, you know something is off, and you shouldn’t trust your wrist-based heart rate data.
Hi John, great article.
Just found your blog on a search for "cadence lock" and it has a bookmark now 🙂
I would love to see an article with your thoughts on heart rate training, and why it might not be as good as generally advertised in running forums.
Thanks!