HRVDojo
Home / Guides / Polar H10 vs Fitbit

Polar H10 vs Fitbit: HRV accuracy, measured

Both sensors on one body, streaming at the same time, for three minutes. The heart rate agreed better than you might expect. The heart-rate variability did not survive the comparison at all — and the reason is more interesting than a bad number.

The short version

HR bias
−0.69 bpm
Fitbit reads fractionally low
HR error (MAE)
1.92 bpm
Typical disagreement
Limits of agreement
±5 bpm
−5.79 to +4.41 bpm
Lag
2.25 s
Fitbit trails the strap
RMSSD · H10
67.3 ms
From true RR intervals
RMSSD · Fitbit
6.9 ms
Rounding artefact, not a measurement

Heart rate: good enough for training. The Fitbit sat within 5 bpm of the Polar H10 for 94% of the run and never missed by more than 9 bpm, with essentially no systematic offset.

Heart-rate variability: not measurable at all. Over Bluetooth the Fitbit broadcasts a rounded BPM number and nothing else. It never sends a single beat-to-beat interval, so there is no HRV in its stream for any app to read — and the 6.9 ms figure above is what integer rounding looks like when you run RMSSD over it.

Heart rate: closer than expected

Here is the whole run. Both traces are each device's own reported BPM, time-aligned by the measured 2.25-second offset so they can be compared fairly rather than penalising the Fitbit twice for its lag.

Reported heart rate over 180 seconds
Polar H10 (reference) and Fitbit (device under test), time-aligned · 4 Hz
Heart rate over 180 seconds from both sensors Two heart-rate traces between 75 and 96 bpm. They rise and fall together, with the Fitbit trace slightly smoother and consistently a little behind the Polar H10 trace. Mean absolute difference is 1.92 bpm. 75 80 85 90 95 0s 30 60 90 120 150 180 0s H10 Fitbit
Polar H10 · reference Fitbit · device under test
710 paired samples over 180 s. Heart rate ranged 75–96 bpm on the H10 and 78–93 bpm on the Fitbit — the narrower range is the smoothing showing up as clipped peaks and troughs.

The shapes match. Both sensors saw the same rises and falls, and the Fitbit's errors were symmetric rather than one-sided — a bias of just −0.69 bpm over three minutes is a well-behaved sensor.

How often the two agreed
Share of the 710 paired samples within each threshold
The largest single disagreement in the whole run was 9 bpm. For zone training — where the zones are 10 to 20 bpm wide — that is entirely workable.

One caveat worth stating plainly: the correlation between the two traces was r = 0.78, which is moderate rather than excellent. At rest the heart-rate swings are small, so a couple of bpm of noise eats a lot of correlation. The absolute error figures are the more meaningful read here.

The 2.25-second lag

The analysis recovers the offset between the two streams by cross-correlation, and it found the Fitbit running 2.25 seconds behind the H10, with an alignment confidence of r = 0.81.

This is not a fault so much as a design choice. An optical sensor reads blood volume through skin — a much noisier signal than a strap's electrical one — so it applies heavy temporal smoothing to produce a stable number. The lag is that smoothing, made visible. You can see its other fingerprint in the chart: the Fitbit's range is 78–93 bpm where the H10's is 75–96. The peaks and troughs have been rounded off.

When 2.25 seconds matters. Interval training, where you want to see the response to an effort as it happens. Breathing biofeedback, where the whole point is watching heart rate follow the breath within a single cycle. When it doesn't: average heart rate over a run, daily trends, step counting, sleep staging.

HRV: 67.3 ms vs 6.9 ms

This is the part that isn't close, and the gap is not a matter of degree.

RMSSD over the same three minutes, same body
The standard short-term HRV measure, in milliseconds
The Fitbit bar is not a low HRV reading. It is what RMSSD returns when you feed it a rounded BPM value converted into intervals — an artefact of arithmetic, printed to one decimal place.

Over the run, the Polar H10 delivered 251 genuine beat-to-beat intervals, every one of them valid, with zero artefacts and zero dropouts. The Fitbit delivered 178 heart-rate notifications — roughly one per second, which is a broadcast cadence, not a heartbeat. It never sent an RR interval.

When a device only sends BPM, an interval can be reconstructed as 60000 / bpm. That reconstruction is a step function. At 84 bpm, one BPM of rounding is about 8 ms of entirely fictional "variability", and every real beat-to-beat fluctuation smaller than that was destroyed inside the device before transmission. So bench mode refuses to compute RR or HRV agreement when either device fails this test, and says why, rather than printing a plausible-looking number next to a real one.

The general rule. If a device does not broadcast RR intervals over Bluetooth, no third-party app reading it can give you real HRV — regardless of what that app's dashboard displays. This is a property of the data stream, not of the app.

Fitbit's own application does report an overnight HRV estimate, computed from internal data during sleep. That number is not exposed to other apps, and it is not what was measured here.

Which one should you use?

Based on this run and on what each device transmits
What you want to doUseWhy
HRV biofeedback / coherence breathing Polar H10 Needs true beat-to-beat intervals and near-zero lag. The wrist device supplies neither.
Morning readiness / RMSSD trend Polar H10 RMSSD from reconstructed intervals is not a measurement of anything.
Interval training, live pacing Polar H10 2.25 s of lag on a 30 s interval is most of what you were watching for.
Steady-state zone training Either 94% of samples inside 5 bpm is comfortably within a zone's width.
All-day heart rate, sleep, steps Fitbit Nobody wears a chest strap for 24 hours. Continuous wear beats per-sample precision.
ECG waveform capture Polar H10 Streams raw single-lead ECG at 130 Hz. The wrist device has no equivalent.

The honest summary is that these are not competing products. One is a measurement instrument you put on for a session; the other is a wearable you never take off. The mistake is using the second for the first job and believing the HRV number it shows you.

Method and limits

Both sensors were connected simultaneously over Web Bluetooth to a single browser tab and streamed onto one shared clock. The Polar H10 was slot A (reference), the Fitbit slot B (device under test). All errors are signed device under test − reference, and the reference is treated as correct by definition — this measures agreement, not truth.

Each device's reported BPM was resampled onto a common 4 Hz grid by zero-order hold, with gaps left empty rather than interpolated. The lag was recovered by normalised cross-correlation over a ±8 s search. Agreement statistics are standard Bland–Altman: bias, SD, and limits of agreement at bias ± 1.96 SD.

Full run summary
MeasurePolar H10Fitbit
Beats / notifications received251178
Valid251178
Artefacts00
Dropouts00
Sends true RR intervalsyesno
Mean HR (bpm)84.283.5
HR range (bpm)75–9678–93
RMSSD (ms)67.276.90
Agreement — Fitbit against Polar H10
Duration180.0 s
Paired samples710
Bias−0.69 bpm
Mean absolute error1.92 bpm
RMSE2.69 bpm
Limits of agreement−5.79 to +4.41 bpm
Correlation (r)0.783
Largest single error9 bpm
Measured lag2250 ms
Alignment confidencer = 0.805
RR / HRV agreementnot computable

What this run does not show

  • n = 1. One device, one wrist, one person, one session. Optical accuracy varies enormously with skin tone, wrist size, strap tightness, temperature and tattoos.
  • Rest only. Three minutes seated. Optical sensors degrade most under movement, and none of that is captured here.
  • Moderate alignment confidence. At r = 0.81 the lag estimate is usable but not tight — a run with deliberate heart-rate swings would pin it down harder.
  • Not a product review. This is a demonstration of a method plus one unambiguous structural result: the device does not transmit RR intervals. That part does not depend on sample size.

The way to settle it for your own hardware is to run the same test yourself — it takes about fifteen minutes. The full method is here, including how to read every number and the five mistakes that will invalidate your run.

FAQ

Is Fitbit heart rate accurate compared to a Polar H10?

In this three-minute resting run, reasonably: MAE 1.92 bpm, bias −0.69 bpm, 94% of samples within 5 bpm, and nothing worse than 9 bpm. That is a usable training signal. It was also 2.25 s behind the strap, so it reacts late to changes.

Can a Fitbit measure HRV like a Polar H10?

Not over Bluetooth. It broadcast only a rounded BPM value and never sent beat-to-beat intervals, so no third-party app can compute genuine HRV from its stream. The 6.9 ms RMSSD is a rounding artefact against the H10's 67.3 ms on the same body at the same time. Fitbit's own app does report an overnight HRV estimate from internal data — that figure is not exposed to other apps and is not what was measured here.

Why is the Fitbit 2.25 seconds behind the chest strap?

Optical wrist sensors read a noisy blood-volume signal and smooth it heavily to keep the output stable. The lag is that smoothing. It means the device can be accurate in steady state while arriving late at every change — which matters for intervals and biofeedback, and not at all for an average over a walk.

Which sensor should I use for HRV biofeedback?

A chest strap that transmits RR intervals — Polar H10, Wahoo TICKR, Garmin HRM. Beat-to-beat biofeedback needs beat-to-beat data and near-zero lag; an optical wrist device supplies neither.

Does this prove Fitbit devices are bad?

No. One device, one wrist, three minutes at rest, alignment confidence r = 0.81. It demonstrates a method and one structural fact about what the device transmits. Run the bench on your own body before drawing conclusions about your own hardware.

Can I see the raw data?

The chart above is drawn directly from the exported CSV — the same file Bench mode produces, containing the commented summary header and the full 4 Hz aligned series. Every figure quoted on this page comes from it.

Bench your own sensors

Connect a strap and a watch at the same time and see the disagreement for yourself. Runs in the browser, no account, nothing uploaded.

Open HRV Dojo Read the method