2 SEPTEMBER 2026
A stress score is only as good as the reference it is measured against. If that reference is a population average, the number is close to noise. If it is your own recent history, it becomes something you can actually reason about — provided you know what the arithmetic is doing and where it breaks down.
Calmline's score is deliberately simple enough to print on a web page:
Read it left to right. Divide today's HRV by your baseline HRV. If today equals your
baseline, the ratio is 1, so 1 − 1 = 0 and the score is 0. If today is 30% below
your baseline, the ratio is 0.7, and the score is 30. If today is above your baseline
the result goes negative and clamps to 0 — Calmline does not give you credit for a good day
by calling it a negative stress reading.
So the score is not a measurement of stress. It is a percentage statement of HRV suppression relative to your own normal. That is a narrower claim than "you are stressed", and it is the only claim the data supports. There is no model in the middle, nothing learned, nothing to take on trust — which is the point of showing the formula rather than describing it.
The baseline is the median of your recent daily HRV averages, not the mean. This is the single most consequential decision in the whole design.
A mean absorbs outliers. One night wrecked by a flight, a fever or a late wedding will pull a seven-day average down, and it stays pulled down for the rest of the week. Every subsequent day is then scored against an artificially low reference, so genuinely strained days look normal. The reference has been contaminated by the very event you wanted to detect.
A median mostly shrugs that off. Replace one value in a set of seven with something extreme and the middle value barely moves. The baseline stays a description of your typical week rather than a running record of your worst night. That resilience is exactly what you want from something whose job is to be the stable thing you compare against.
A score near zero means today's HRV is at or above your own recent typical value. A score in the middle means measurable suppression. A high score means today's reading is far below what you have been holding lately.
What it does not tell you is why, and no HRV-based score can. As covered in what HRV actually measures, a suppressed reading is equally consistent with a hard training session, an early flight, a couple of drinks, the start of a cold, or a genuinely difficult week. The score narrows the question to "something is loading your system today". You supply the explanation, because you are the only one with the context.
It is also worth being blunt about what a high score is not. It is not a warning sign, not a risk assessment, and not a reason for alarm. It is one noisy signal about one day.
Not medical advice. Calmline is a consumer wellness app. It does not diagnose, treat, prevent or predict any condition, and a stress score is not a medical finding. If you feel unwell or are worried about your health, speak to a clinician.
Most confusing scores turn out to be measurement artefacts rather than physiology. Before reading anything into a number, check the usual suspects:
Calmline handles the worst version of this by refusing to score at all: with fewer than three days of usable HRV data it displays calibrating rather than manufacturing a baseline from almost nothing. There is more on why readings can be sparse, and what helps, on the support page.
The useful unit of analysis is the week, not the reading. Look at whether your scores are drifting up across several days, whether they return to baseline after a hard session or stay elevated, and whether the days that read high correspond to anything you recognise. That last one is the real payoff: after a few weeks you start to learn your own patterns — which is knowledge the app cannot give you, only help you notice.
Resist the urge to check constantly. A score that you refresh hourly is a source of stress in itself, and the underlying data usually has not updated anyway. This is why Calmline's Smart Stack card stays out of the way below your threshold and only promotes itself when you cross it, and why an alert fires on the crossing rather than repeating while a score stays high. An alert that fires on every reading is noise; only the transition is news.
Nothing dramatic. The reasonable responses are small: take the easier version of tonight's session, get to bed earlier, skip the third coffee, or run a short breathing session — Calmline offers a haptic-guided one you can do without looking at the screen. If a stretch of elevated days lines up with feeling genuinely unwell, that is a conversation for a clinician, not an app.
And if the number contradicts how you feel, trust yourself. HRV is an indirect, noisy proxy. On the days where your own read on your body and a millisecond statistic disagree, you are the better instrument.
All of this — the baseline, the median, the scoring, the thresholds — runs on your watch and iPhone. There is no account, no server and no analytics, because Calmline contains no networking code at all; the privacy policy spells out what is read and where it goes, which is nowhere. Every reading exports as CSV or JSON with units named and the formula included, so if you ever want to check the arithmetic yourself, or keep your history without the app, you can.
If you have not read them yet, the companion pieces are what HRV actually measures — and what it doesn't and why you shouldn't compare your HRV to anyone else's.
The hands-on versions live in the guides: getting a consistent reading, building your baseline, and using a breathing exercise when your score is high.
Calmline is not on the App Store yet. Join the waitlist from the home page and we'll let you know when it is.