MRH1 is a custom iPhone app that takes the readings from my Google Fitbit Air and turns them into Whoop-style scores, lab-style body panels and plain-language explanations, for a full picture of my health in one place.
The Fitbit Air carries an optical heart-rate sensor, a 3-axis accelerometer and gyroscope, red and infrared SpO2 sensors, and a skin-temperature sensor. The free Google Health app uses a fraction of that: no all-day strain, no stress timeline, no recovery breakdown, and few explanations of what a number means.
Recovery %, all-day Strain 0–21, a sleep score and hourly stress, all computed from the band's raw data.
Each result has a flag, your personal range, the typical adult range and a 7-day trend, grouped by Heart, Lungs, Sleep and Activity.
Tap any number for what it means, the abbreviation spelled out (HRV, SpO2, REM…), and what a higher or lower value usually indicates.
There's no cloud and no API keys. The app reads what Google Health already writes into Apple Health and does all the maths on the iPhone.
Screenshots from the web replica, running on synthetic sample data.









"Normal" means normal for you: personal ranges are built from your own last 30 days.
| Metric | Source | What it tells you |
|---|---|---|
| Recovery | computed | 0–100 %. How ready your body is today, from HRV, resting HR, breathing rate and sleep versus your normal. |
| Strain | computed · HR | 0–21. All-day cardiovascular load (TRIMP-based). |
| Sleep score | computed · stages | Duration versus need, deep + REM share, and efficiency. |
| Stress | computed · HR + steps | 0–3, hourly. Heart rate raised above resting while you're still. |
| Resting heart rate (RHR) | Fitbit Air | Lowest steady heart rate during sleep. |
| Heart rate variability (HRV) | Fitbit Air | Beat-to-beat variation. Higher means more recovered. |
| Breathing rate | Fitbit Air | Breaths per minute asleep. A jump can come before illness. |
| Blood oxygen (SpO2) | Fitbit Air | Oxygen saturation, from red and infrared light. |
| Skin temperature | Fitbit Air | Change versus your usual night. |
| Deep / REM / awake | Fitbit Air | Sleep stages and wake-ups. |
| Steps, energy, workouts | Fitbit Air + iPhone | Daily activity and weekly training time. |
| Sleep debt & consistency | computed | Sleep missed versus 8 h, and how much your bedtime varies. |
| Body age | computed | A rough fitness-age estimate from vitals and habits. |
The app has no networking code: no servers, no analytics, no third-party packages. It only reads from Apple Health, and its notifications are generated on the device.
MRH1 gives wellness estimates from a wrist sensor. It is not a medical device and does not diagnose anything. The demo and screenshots use synthetic sample data.
I designed and built this in a conversation with Claude (Anthropic). We researched the sensors, designed the metrics, storyboarded the UI, wrote the SwiftUI code, and iterated from screen recordings of the real app on my iPhone. Part of my AI portfolio, alongside AI-skills.