HRV Score

Your daily number: ln(RMSSD) scaled to 0–100

What is the HRV Score?

The HRV Score is the number you see prominently displayed at the top of the app. It takes the raw RMSSD value and transforms it into a simple 0–100 scale that's easy to read at a glance.

Under the hood, it's based on the natural logarithm of RMSSD — a well-established approach used in HRV research (often written as ln(RMSSD)).

Why Use ln(RMSSD)?

Raw RMSSD values are not normally distributed — they're right-skewed, meaning most people cluster at lower values while a few have very high RMSSD. Taking the natural logarithm solves this:

Raw RMSSD (skewed) 10 50 120 RMSSD (ms) ln( ) ln(RMSSD) (normal) 2.3 3.7 4.8 ln(RMSSD)
Benefits of the log transform: Symmetric distribution • Stabilizes variance • Better for tracking changes
The log transform makes the skewed RMSSD distribution approximately normal

From ln(RMSSD) to a 0–100 Score

The raw ln(RMSSD) value typically ranges from about 1.5 to 5.5 for most people. To make this more intuitive, it is linearly scaled to a 0–100 range:

HRV Score = (ln(RMSSD) − ln_min) / (ln_max − ln_min) × 100

Where ln_min and ln_max define the expected range (e.g., 1.5 and 5.5). The score is technically clamped at 100, but in practice nobody ever reaches it — you'd need an RMSSD of ~245 ms, which is physiologically unrealistic. So the 0–100 scale is effectively open-ended at the top.

Mapping ln(RMSSD) → HRV Score 1.5 2.5 3.5 4.5 5.5 ln(RMSSD) 0 25 50 75 100 HRV Score e.g. ln(40) = 3.69 → Score ≈ 55
ln(RMSSD) is linearly mapped to a 0–100 score

Worked Example

Suppose your measured RMSSD is 40 ms, and we use ln_min = 1.5, ln_max = 5.5:

Step 1: Take the natural log:
ln(40) = 3.69

Step 2: Scale to 0–100:
HRV Score = (3.69 − 1.5) / (5.5 − 1.5) × 100
= 2.19 / 4.0 × 100 = 54.7

Step 3: Round: HRV Score ≈ 55

Quick mental model: An RMSSD of ~10 ms gives a score near 20. An RMSSD of ~40 ms gives a score near 55. An RMSSD of ~100 ms gives a score near 78. In practice, scores above 90 are extremely rare — a perfect 100 would require an RMSSD of ~245 ms, which essentially never happens.

Reference Table

RMSSD (ms)ln(RMSSD)≈ HRV Score
51.613
102.3020
203.0037
403.6955
604.0965
804.3872
1004.6178
1505.0188

Notice how the log compresses the upper range — going from RMSSD 40→80 (doubling) only adds ~17 points, not 50. This reflects that the physiological difference between 40 and 80 is more meaningful than between 140 and 180.

What Your Score Means

0 – 25 Low 25 – 50 Below average 50 – 75 Good 75 – 100 Excellent These are general guidelines. Your personal baseline matters more than the absolute number. Track trends, not single readings!
General interpretation zones for the HRV Score

Why Not Just Show RMSSD?

Key Points