I started looking for an upper-arm heart rate sensor for a pretty simple reason: I like the accuracy of the Polar H10, but I don’t want to wear a tight chest strap for every single bike ride.
There is another reason too, based on years of using chest straps. With my Garmin sensors, the strap itself seems to die every couple of years. A replacement strap is cheap, but that isn’t really what annoys me. The problem is that the device doesn’t tell you, “Hey, your strap is dying.” Instead, at some random point you finish a workout and discover that parts of the HR recording are complete nonsense. Only then do you start troubleshooting and eventually figure out that the strap is done.
So I started looking seriously at optical sensors that I could wear on my bicep. As usual, I went through Reddit, read user experiences, and looked at which devices had actually built a good reputation over years of use.
The obvious established choice was the Polar Verity Sense. It has been around for years, comes from a well-known European sports-tech company, and costs roughly $100.


Then there was the considerably less famous Coospo HW9, made by a Chinese brand and selling for around $50.


That made the comparison much more interesting to me than simply picking the safe option. How close has the cheaper Chinese sensor actually gotten to the established Polar? And is there still a good reason to pay twice as much?
So I bought both.
For this Coospo HW9 vs Polar Verity Sense comparison, I wore both sensors alongside a Polar H10 on the chest, use the H10 as my reference, and see what actually happens on the bike.
After the first comparison, I ended up doing three more tests because the result looked almost too good.
TLDR: If you just want the short version: for cycling, I would pick the HW9. Pretty easily👌
What I actually wanted to test
I wasn’t particularly interested in whether both sensors could show 145 bpm during an hour of steady riding.

If heart rate barely changes, almost any decent modern sensor can produce a nice-looking graph.
What interested me was something else: what happens when heart rate rises and falls quickly?
For all of the tests I used three sensors:
- Polar H10 on the chest as my reference
- Coospo HW9 on the bicep
- Polar Verity Sense on the bicep
During the workouts I deliberately included plenty of sections where HR moved up and down, so I could see not only how close the values were, but also how quickly each optical sensor reacted to changes.
The difference was already pretty obvious in the first test.
The first test surprised me
These were the results from the first comparison:
| Metric | Coospo HW9 | Polar Verity Sense |
|---|---|---|
| Similarity | 99.6% | 99.4% |
| Correlation vs H10 | 0.999 | 0.992 |
| Mean absolute error, MAE | 1.2 bpm | 1.8 bpm |
| RMSE | 1.4 bpm | 2.5 bpm |
| Bias | -1.2 bpm | -0.1 bpm |
| Maximum difference | 4 bpm | 10 bpm |
If you don’t care about MAE and RMSE, the important part for me was simple: the HW9 on my bicep stayed extremely close to the Polar H10 on my chest.
And when I say I was basically giving up nothing in HR accuracy with the HW9, I mean compared with the chest-mounted H10, not compared with the Verity Sense.

The HW9 did have a small systematic offset. It tended to read about one beat per minute low.
For my use, I don’t care.
What I cared about much more was something I noticed with the Verity.
The Verity Sense was lagging
This wasn’t something I only noticed later while staring at graphs. I could see the Verity lag in real time during every test when I looked at the screens while changing the effort.
When HR started climbing, the H10 reacted first, the HW9 followed closely, and the Verity kept showing the older value for a while.
The same thing happened when HR started dropping.
For me, this matters much more than the difference between, say, 169 and 170 bpm.
If my heart rate is already rising quickly, I want the sensor to show me that it is rising now. I don’t need a very accurate answer to the question of what my heart rate was several seconds ago.
That was the part of the Verity performance I didn’t like.
Of course, after one test there was still a very reasonable question: maybe the problem wasn’t the Verity at all.
So I started eliminating other possibilities.
Maybe it was just the different arms?
In the first test, the HW9 was on my left arm and the Verity Sense was on my right.
I even wondered whether the right arm being slightly farther from the heart could somehow contribute to the delay 🤔. There were also more obvious possibilities: slightly different strap pressure, blood flow, arm movement, or sensor position.
So for the second test, I simply swapped the sensors between arms.
The Verity was now where the HW9 had been.
The result stayed the same.

The Verity was still the one lagging.
That made things more interesting.
So I put both sensors on the same bicep 💪
For the third test, I wanted to remove the left-arm versus right-arm question entirely.
I put both optical sensors next to each other on my left bicep.

Now their conditions were about as similar as I could make them.
And again I saw the same pattern: the HW9 followed changes from the H10 much more closely, while the Verity lagged behind.
After three tests, explaining the difference purely by sensor placement was getting difficult.
But there was still one possible flaw in my setup.
Maybe the recording devices were causing it?
I was recording the HW9 and Verity with different devices (Garmin EDGE 1040 and Garmin Venu 4).
That means there was still a theoretical possibility that one recorder had a slightly different clock or handled incoming data differently, and I was mistaking that for sensor latency.
So I did a fourth test specifically to check this.
This time I swapped the recording devices used for the HW9 and the Verity. I kept the H10 on the same recorder as before.

And once again I got the same overall result.
By this point I didn’t even need to wait for the FIT files to confirm it. I was deliberately watching the displays during rising and falling HR, and I could again see that the Verity reacted later.
So across the tests I tried all of the obvious permutations:
- sensors on different arms
- sensors swapped between arms
- both sensors next to each other on the same bicep
- recording devices swapped between the HW9 and Verity
The result stayed consistent:
The Coospo HW9 followed changes from the Polar H10 faster. The Polar Verity Sense noticeably lagged behind.
I’m not trying to turn this into a lab specification for every Verity Sense ever made. These are my sensors, my workouts, and my arm.
But after reproducing the same behavior four times, I’m perfectly comfortable using it to decide which sensor I prefer.
What that means on the bike
During steady riding, the difference may not matter at all.
If I’ve been sitting at around 150 bpm for several minutes, all three devices will show something around 150. In that situation, I barely care which one is on my arm.
But as soon as the workload changes, things become different.
I push harder and HR starts going up. Or I finish an interval and start recovering.
At that point I want my current heart rate.
That is why the HW9 reading about one beat low on average bothers me far less than the clearly visible delay from the Verity.
For cycling, I would take the first trade-off without hesitation.
And the HW9 costs about half as much
This is probably the funniest part of the whole comparison.
If the HW9 and Verity Sense cost the same, I would still choose the HW9 for cycling after these tests.
But the Coospo costs roughly half the price.
Before testing it, I expected the lower price to show up exactly where it matters most.
Maybe I’d see weird spikes.
Maybe it would lag badly.
Maybe the optical sensor would fall apart during intervals.
Instead, I got almost the opposite.
The cheaper sensor is the one I actually prefer using.
Charging the HW9 is better too
This part has nothing to do with HR accuracy. It is just everyday usability.
The HW9 is a single integrated unit. There is no separate sensor puck and holder. Magnetic contacts sit on the back, so you just attach the charging cable directly to the sensor.
With the Verity Sense, you have to remove the sensor from the strap and insert it into a separate USB charging cradle.
And the Polar solution has another little annoyance: the cradle uses old-school USB Type-A, and the cradle itself is fairly wide. On a compact multi-port charger, it can block the neighboring port, so you may need to find it a USB socket with some empty space around it.

The HW9 cable also annoyingly uses old USB on the charger end, and I would much rather have USB-C there.
But the actual charging setup is still much cleaner: small magnetic connector to the sensor, no separate cradle.
And COOSPO, come on. It is 2026. I understand you may already have a warehouse full of these charging cables, but if you want to compete with more serious players in the wearable market, attention to small details matters. You do not even need to replace the bundled cable immediately. At least sell a USB-C version as an optional accessory. I would buy one.
The vibration turned out to be more useful than I expected
The HW9 lets you configure heart rate zones and can vibrate when you move between them.
I don’t need that feature. On the bike I already have a Garmin in front of me, so another vibration on my arm every time I cross a zone is more distracting than useful. I disabled it in the app.
But the vibration motor does something else that I genuinely like.
The HW9 vibrates when you turn it on and off.
That sounds trivial, but it is genuinely useful. Press the button and you immediately get tactile confirmation that the sensor powered on. Finish the workout, turn it off, and you get another confirmation.
No need to stare at a tiny LED and wonder whether the button press actually registered.
That is the kind of vibration I actually want.
The Coospo app is completely fine
At first the Coospo app seemed very basic.
After playing with it a bit more, I realized that for this kind of device, that’s mostly a compliment.
I paired the HW9, checked the settings, configured the zones, and disabled the zone-change vibration.
Done.

I don’t want to open the heart rate sensor manufacturer’s app after every workout. I want to configure the sensor once and then have it work with the devices and apps I actually use.
That is exactly how the HW9 behaved.
Surprisingly, I had more trouble with Polar during the initial pairing process.
Polar Flow could see the Verity Sense, but several pairing attempts failed. I removed the sensor from the phone’s Bluetooth settings and tried again.
Still no luck.

Eventually it paired correctly only when I started the pairing process from the workout start screen in Polar Flow 🤦.
I still don’t know why it worked there but not from the main part of the app, even though Flow could see the sensor the whole time.
Maybe it was just a one-off software bug. But my actual experience was that the cheaper HW9 connected and configured without drama, while the Polar made me troubleshoot.
And the HW9 unexpectedly worked with Wellhero
One other thing pleasantly surprised me: the HW9 immediately showed up as a supported device in Wellhero 💙.
I use external HR sensors for more than cycling. In Wellhero I do short RR-interval measurements to get, among other things, a stress estimate based on the Baevsky Stress Index.
The HW9 worked perfectly fine as a source for those measurements.
For me, that’s a nice bonus. I bought it primarily as an alternative to a chest strap for cycling, but I can also use the same little sensor for these measurements.
Where I would still choose the Verity Sense
There is one use case where this comparison becomes much less relevant: swimming.
The Verity Sense is actually designed to be used in the pool. You can set the pool length in Polar Flow and use it specifically for swim training.
The HW9 has an IP67 rating, but Coospo explicitly states: Not suitable for swimming
So if I wanted one optical sensor for cycling, running, and pool swimming, the Verity has a very clear advantage.
But I tested these primarily as upper-arm heart rate sensors for cycling.
And for that, my choice is very different.
What I would buy
If you skipped straight to the bottom, the answer is simple:
For cycling, I would buy the Coospo HW9.
It is cheaper, easier to charge, easy enough to configure, gives useful tactile confirmation when powering on and off, and in my repeated tests it followed actual HR changes better.
I would consider the Verity Sense mainly if I needed a sensor for swimming.
My Polar H10 isn’t going anywhere either. For really hard indoor interval sessions, I will still wear the H10 because I want TrainerRoad to get the cleanest possible picture of what is happening during those efforts.
But for an easy ride, an endurance session, or a long day outside, I definitely don’t want to tighten a chest strap around myself if I don’t have to.
For that, I now have the HW9 on my bicep.
And after four comparison tests, that’s the one I would buy again.