At a glance
One number (0–100) that summarizes your day.
Two halves, equal weight: Readiness (50%) + Activity (50%).
Personal to you: every sub-metric is judged against your own rolling 30-day baseline (not against other people).
Live & retroactive: updates on each sync and can backfill up to 7 days if data arrived late.
The formula
Health Score = 0.5 × Readiness + 0.5 × Activity.
Each half is 0–100 before being averaged, so the final range is 0–100. All six underlying metrics are mandatory; if one is missing for a day, that metric’s sub-score is 0 for that day.
Readiness (50%) = average of Sleep, Resting Heart Rate (RHR), HRV (each ~33.3%).
Activity (50%) = average of Steps, Move Hours, Active Points (each ~33.3%).
“Today’s Max”
In the morning, the app computes Today’s Max to show a realistic ceiling for your day based on your current Readiness and the best possible Activity you could still add. As you move and train, you push your Health Score toward that ceiling.
Baseline: the anchor that keeps it fair
Every sub-metric is compared with your last 30 valid days:
Great for you (e.g., 7h 20m sleep) is scored against your history, not a generic rule.
Days without valid data don’t pollute your baseline; they’re excluded.
New users see full scoring once they’ve built 7 valid days; after Day 30, the window rolls forward.
Finalization & streaks
Your Health Score finalizes when all required data for that calendar day is in.
If your finalized score is ≥ 80, your streak increments by 1; dropping below 80 or missing data resets it.
Example day
Morning Readiness: 76
By evening, Activity: 84
Health Score = (76 × 0.5) + (84 × 0.5) = 80 → streak +1.
FAQ
Why did my Health Score change at noon? New data synced (e.g., a workout), so we recalculated.
Why do I sometimes see yesterday change? We support late syncs and will correct the last 7 days when better data arrives.