HelpMetrics3 min read

Stress score, sleep stress and waking stress

How Titan turns HRV and heart rate into a 0 to 100 Stress score, why sleep, waking and daily values differ, and how Stress alerts fire.

Published September 24, 2026
This content is for informational purposes only and is not a substitute for professional advice.

Stress estimates physiological strain from your HRV and heart rate compared with your own baselines. This article covers the formula, the five periods Titan scores, why those numbers disagree, what a gap in the timeline means, and how the Stress alert threshold works.

01How the score is calculated

Stress runs from 0 to 100. Higher means more estimated strain.

Titan builds the score from two ratios. The first is your baseline HRV divided by the HRV it observed. The second is the heart rate it observed divided by your baseline resting heart rate. Titan averages the two ratios, subtracts 1, multiplies by 100, and rounds. Anything below 0 becomes 0 and anything above 100 becomes 100.

Say your baseline HRV is 50 ms and today's HRV is 40 ms, a ratio of 1.25. Your baseline resting heart rate is 50 bpm and today's is 55 bpm, a ratio of 1.10. The average is 1.175, which gives a Stress score of 18. If your HRV is at or above baseline and your heart rate is at or below it, the score is 0.

For the history and the timeline, Titan uses whichever ratio it has when one signal is missing for that window. The headline needs both.

The Stress screen labels the score with four bands.

ScoreLabel
0 to 25Low
26 to 50Moderate
51 to 75Elevated
76 to 100High

02The periods Titan scores

Tap the Stress card on Today to open the Stress screen. It shows the headline, a day timeline, and a history chart with Daily, Sleep and Waking tabs over 7, 30 or 60 days. Each one covers a different stretch of time.

ValuePeriodInputs
HeadlineThe current dayYour recovery HRV and resting heart rate against the median of your recovery baseline window, 60 days by default
Day timelineMidnight to nowHRV and heart rate in each interval against 60-day baselines
Daily historyMidnight to midnightThe whole day's HRV and heart rate against 60-day baselines
Sleep stressStart to end of your sleep sessionHRV and heart rate during sleep
Waking stressFrom waking to midnight, or to now for todayHRV and heart rate after you wake

Today's Daily bar keeps the headline value so the history matches the card. Past days are recalculated from the full day.

The headline is the same number as the Today card and the value Stress alerts check. A baseline needs at least 7 days of readings, with readings on at least 60% of the days in the window. Until Titan has that, the headline falls back to 100 minus your Recovery score. See baselines for how the baseline window works.

03Why the numbers differ

Each value averages a different window. Heart rate is the biggest source of the gap. For any window, Titan first looks for resting heart rate samples from Apple Health. Sleep and waking windows often have none, so Titan falls back to your average heart rate over that window. Average heart rate while you move around sits above your resting baseline, which pushes the heart rate ratio up. On an active day, waking stress can read well above sleep stress for that reason.

The timeline and the headline also use different HRV. The headline uses the single recovery HRV that drives your Recovery score. The timeline uses every HRV reading recorded during each interval.

Sleep stress also feeds the Sleep Quality score as one of six inputs. Lower sleep stress raises Sleep Quality. It does not change the headline Sleep score.

04What gaps mean

Titan reads HRV and heart rate in 30-minute blocks. It then picks the finest timeline that has enough coverage, trying 30, 60, 120, 240 and 360-minute intervals in that order. A 30-minute timeline needs 75% of intervals covered. A 360-minute timeline needs 34%.

An interval with no usable HRV or heart rate stays blank. Titan does not estimate a value for it. A gap means no observation. It does not mean zero stress. Tapping a blank interval shows "No observation".

Sleep and Waking history need a detected sleep session for that day. On a day with no sleep session, both bars are empty. See recovery score for how HRV is chosen, and keep Titan's Health access on and your watch on your wrist to fill the timeline.

05Stress alerts

Titan can send a notification when your headline Stress reaches a level you choose. Open You from the avatar on Today, then tap the bell, or go to You > Settings > Notifications.

  1. Turn on Allow Notifications.
  2. Turn on Stress Alert. It is off by default.
  3. Set Stress Alert Level with the minus and plus buttons. It moves in steps of 1 from 0 to 100 and defaults to 75.

The alert fires when your Stress is at or above the level. Titan skips it for 30 minutes after a workout ends and sends at most one Stress alert per hour. The message reads "Stress is elevated at" followed by your score. Lower the level for earlier warnings. For a routine to act on those alerts, see managing recovery and stress and notifications.

Keep readingAll guides