How the intraday Stress Level is measured | Grio
Grio Get the app
Stress & Physiological Load

How the intraday Stress Level is measured

Stress Level is a 0–100 physiological estimate over five-minute intervals, graded against your own calm baseline. It is not a reading of how you feel.

Overview

Stress Level is a 0–100 estimate of physiological stress during calm wear, read against your own baseline. It is a wellness estimate about your body’s load, and explicitly not a psychological state, a medical condition, or a claim about a life cause such as work, caffeine, illness, or emotion.

It is computed on Grio’s servers at read time from the five-minute heart-rate buckets your phone already uploads. Nothing extra is collected for it, and no stress table is stored. The same buckets are simply read a second way.

How it’s calculated

Inputs

  • Five-minute buckets of aggregate heart rate and HRV, with sample counts, steps, exercise minutes, and workout overlap. Raw HealthKit samples never leave your device.
  • Thirty trailing days of low-activity evidence, which establish reliable heart-rate and HRV centres.
  • Recent sleep, resting heart rate, and HRV, as a sensitivity adjustment.

The algorithm in plain terms

Grio maps your low-activity heart rate onto your own trailing calm baseline, adjusts it with HRV when the HRV evidence is usable, and bounds the result from 0 to 100.

Four details shape what you see:

  • A global calm baseline with weak circadian correction: Time of day can shift the heart-rate centre by at most a few beats per minute, and it gains weight gradually as observed days accumulate. It does not carve your baseline into narrow per-hour comparisons that each have too little evidence.
  • Activity is scored context, not a mask: Intervals with exercise time or workout overlap use the same heart-rate-reserve mapping Session Strain uses, and the app marks them. The 90 minutes after activity are treated as post-activity recovery. Incidental steps alone are neither displayed as activity nor allowed to start that recovery window. Those intervals stay silent so movement-elevated heart rate is not mistaken for calm stress.
  • Daily state changes sensitivity, not meaning: Recent sleep, resting heart rate, and HRV can amplify an interval’s estimate by at most 10%, and the single strongest supported deviation wins rather than stacking correlated penalties.
  • Five minutes is the finest granularity, because that is the native bucket width. A finer or misaligned view would interpolate across bucket edges and present precision the data does not have.

Smoothing and summaries

A displayed level is a causal weighted mean of the current interval’s raw estimate, the previous contiguous one, and the oldest estimate in the 15-minute window (weighted 37.5%, 37.5%, and 25%). A real change leads, and one bucket cannot claim to be an instantaneous autonomic state. Activity, unscored time, a missing bucket, or a local-date boundary resets that window.

  • The “now” headline is the quadratic mean of the scored intervals in the half hour ending at the latest one. Background heart rate lands about once per bucket, so a single sample would otherwise swing the headline from 0 to 100 within an hour.
  • A day summarises its full measured period with a quadratic mean.
  • Thirty-minute, hourly, and grid views show the highest already-stabilised interval they contain.
  • Stress Patterns average each eligible date’s per-hour peaks, over at most the 35-day bucket-retention window. The weekday view averages within each date first, so one extreme interval cannot make every Tuesday look high.

Edge cases and fallbacks

  • Missing watch evidence stays a gap: it is never filled with calm.
  • An immature baseline produces no score rather than a guess.
  • A longer history than 35 days is not available, because the underlying buckets are retained for a bounded window by design.

How to read your score

Four bands divide the scale:

BandLevel
Rest0–25
Low26–50
Medium51–75
High76–100
  • Read shape, not spot values: a morning that climbs from Low to High and stays there is informative. A single High interval usually is not.
  • High is not bad and Rest is not good: the scale describes physiological load during calm wear. A demanding, satisfying afternoon can read High.
  • Compare against yourself only: the baseline is yours; the number is not portable to anyone else.

What to do with it

  • Use the timeline to find the window, then supply the context: Grio can see that 14:00–15:00 was elevated; only you know what it was.
  • Tell the coach when it asks: If you have not described a high window, it will ask one concrete question about it, and your answer is what turns a measurement into something useful.
  • Treat sleep as a hypothesis, not a cause: Notably short or poor sleep may raise physiological load and is a reasonable guess when your records show it, but sleep is not an input to the Stress Level calculation.
  • Your current report still wins: If you say you feel fine, that outranks the wearable evidence.

Troubleshooting & FAQs

My stress showed 90 during a workout. Is that real?
Exercise raises heart rate for reasons that have nothing to do with stress, so intervals carrying exercise time or workout overlap are scored as activity rather than as calm stress, and the client marks them. The 90 minutes after activity are treated as recovery. What you should not see is an ordinary run reported as a stress spike.
Why does my stress chart have gaps?
A gap is missing evidence, not calm. Background heart-rate readings land roughly once per five-minute bucket, and a bucket with nothing in it stays unscored rather than being interpolated. Charging the watch, leaving it off, and an immature baseline all produce real gaps.
Can Grio tell me why my stress was high?
It can separate two things, and it will not merge them. It can say the measured signal was elevated against your same-time baseline. It can offer the strongest life-context hypothesis your records support (as a possibility, not a finding) and ask what was happening in that window. It will not assert a cause.

Was this article helpful?

Still need help?

Email the team with what you were looking at and what you expected to see. A real person reads every message.

Get started with Grio

Scan the QR code with your iPhone to download Grio.

QR code for Grio on the App Store