HRV calculator: RMSSD, SDNN, pNN50 from RR intervals

Paste the beat-to-beat (RR) intervals from a chest strap or app, or open an exported file, and get the standard HRV measures worked out from them.

One per line, or separated by commas, spaces or tabs. Milliseconds or seconds; a header line is fine.

Read here in your browser, never uploaded.

Your intervals are read and worked out in this browser. Nothing is uploaded or saved. Privacy

How to use it

  1. Export the RR intervals from your recording app. Most strap apps can: Polar Sensor Logger, Elite HRV and HRV Logger save a CSV or TXT file, and Kubios exports a text file of intervals.
  2. Paste the numbers into the box, or open the file. A header line, a time column and notes after the numbers are fine.
  3. Press Calculate HRV. Check the line under the result: it says which column was read and whether the values were taken as milliseconds or seconds. If that is wrong, pick the unit yourself and calculate again.

Formats it reads

  • A plain list, one interval per line or separated by commas, spaces or tabs.
  • A table split by commas, semicolons or tabs. The RR column is found by a header such as RR, RRI, rr_ms, RR-interval [ms], IBI or interval. Without a header it takes the one column whose values look like heartbeat intervals and do not keep rising, so a time column is never read as intervals.
  • Milliseconds or seconds. A unit in the header, such as [ms] or (s), is used; otherwise values under 10 are read as seconds. Decimal commas (0,812) work too.
  • Up to 50,000 intervals, about 14 hours at 60 beats a minute, from a file of up to 5 MB.

What the numbers mean

Before anything is worked out, intervals outside 300 to 2000 ms and intervals more than 25% away from their neighbours are removed as artifacts: missed or extra beats, not real changes. Differences are never taken across a removed beat.

RMSSD
How much each interval differs from the next, in milliseconds. At rest it mostly reflects the calming (parasympathetic) side of the nervous system. It is the number most apps show as HRV.
lnRMSSD
The natural log of RMSSD, which spreads low values out and is easier to average over weeks.
SDNN
The standard deviation of all the clean intervals: overall variability, fast and slow together.
pNN50
The share of neighbouring intervals that differ by more than 50 ms.
SD1 and SD2
The width and length of the cloud in the Poincaré plot. SD1 is RMSSD divided by √2, so it carries the same information. SD2 is worked out from SDNN and SD1, as √(2 × SDNN² − SD1²) (Brennan and colleagues, 2001).
Baevsky stress index
How tightly the intervals bunch together. It is shown only for at least 2 minutes of beats, because the histogram behind it needs a long series.

Recording length and conditions change the numbers

HRV measures depend on how long you recorded and on what you were doing. The 1996 Task Force standard sets 5 minutes as the short-term recording and warns that SDNN from recordings of different lengths should not be compared, because SDNN grows as a recording gets longer. RMSSD is steadier over short recordings, but posture, breathing, talking, coffee and the time of day all move it.

So compare like with like: the same length, the same position and the same time of day. For a fair comparison with published data, use a 5-minute resting recording, then check the RMSSD in the HRV checker. To record one, use the chest-strap HRV test.

Sources

  • Task Force of the European Society of Cardiology and the North American Society of Pacing and Electrophysiology. Heart rate variability: standards of measurement, physiological interpretation and clinical use. Circulation 1996;93(5):1043–1065. doi:10.1161/01.CIR.93.5.1043
  • Brennan M, Palaniswami M, Kamen P. Do existing measures of Poincaré plot geometry reflect nonlinear features of heart rate variability? IEEE Transactions on Biomedical Engineering 2001;48(11):1342–1347. doi:10.1109/10.959330