Health

2025 · 16 Jun – 31 Dec 2025 · latest data 11 Nov · Garmin

Sleep, heart and training, read live from my watch. In 2025: 118 workouts and 812 km outdoors.

Biological ageas of 8 Nov
124219years, 0 daysReal age 27

+2.0 years since 17 Jun, while I aged 0.5.

Worked out from my VO₂ max: 53.0 ml/kg/min on 30 Dec, −1 since 17 Jun.

Biological age over time

Latest 27.0 y · 30 Dec

Line: 4-week average · dashed: my real age

TrainingGarmin

4h 32m a week on average

Biggest week: 9h 15m, the week of 8 Sept. Moving time, indoor sessions included. 11 workouts synced through Strava are left out, as Strava's terms ask.

Every day

Recent activities

  • 31 Dec 2025Snowboard4h 39m · 108 bpm
  • 30 Dec 2025Running30m · 5.2 km · 148 bpm
  • 29 Dec 2025Strength training1h 3m · 92 bpm
  • 21 Dec 2025Running33m · 6.0 km · 134 bpm
  • 20 Dec 2025Strength training1h 17m · 118 bpm
  • 18 Dec 2025Strength training1h 53m · 93 bpm
  • 16 Dec 2025Strength training2h 4m · 93 bpm
  • 13 Dec 2025Strength training1h 36m · 96 bpm
  • 10 Dec 2025Strength training1h 49m · 113 bpm
  • 9 Dec 2025Strength training1h 52m · 105 bpm
Insights
01Running economy

On steady runs I now cover 4% more ground per heartbeat than in Jun–Sept.

JulDec

Metres per heartbeat, monthly medians.

HeartGarmin

Resting heart rate

Latest 47 bpm · 31 Dec

43 bpmaverage over 198 days with a reading

Line: 7-day average · band: my usual range

HRV, overnight

Latest 75 ms · 31 Dec

74 msaverage over 199 days with a reading

Line: 7-day average · band: my usual range

SleepGarmin

Sleep score

weekly bars

78average over 199 nights with a reading

Sleep duration

weekly bars

7h 18maverage over 199 nights with a reading

Want your product to tell its numbers like this?

I’m a product designer. Tell me what you’re building.

How it's made

Built from my own data, end to end

The data
Workouts from Garmin; daily metrics from my Garmin watch, all through Intervals.icu. The page reads its API on the server and refreshes at most once an hour. Nothing is typed in or downloaded by hand.
Only real numbers
Every figure is computed from the data. Days without a reading stay blank, nothing is estimated except where a section says so, and the animations only ever travel up to the real value.
Privacy
No GPS tracks, places, start times, activity names, notes or body weight reach the page. Workouts synced through Strava are left out, as Strava's terms ask.
The Wrapped
A story you scroll: each step's visual follows the scroll. Runs, walks and rides follow real OpenStreetMap routes, worked out once and stored, so the live page never calls a router. Swims are open-water crossings. Coastlines and borders come from Natural Earth.
Biological age
My fitness age from Garmin's VO₂ max estimate, read against the HUNT3 Fitness Study (NTNU, Norway). It measures aerobic fitness, not health.
Design
Ink and greys, with one accent for each kind of data, and one splash of colour for the Wrapped. Each figure appears once. Things move only as they come into view, and not at all with reduced motion.