The Short Version
Most wearables lose data on the way into Apple Health. WHOOP and Oura write no HRV at all to Apple Health, WHOOP writes no sleep stages (only asleep and awake), and Apple Watch records only SDNN, not the overnight RMSSD that recovery apps actually use. Only Apple Watch is truly first-party, so nothing is lost in passthrough. Every ring and strap gives up at least one metric on the way in.
If a recovery or readiness app reads only Apple Health, it never sees your Oura or WHOOP HRV. That is not a bug in the app. The data was never written.
Why HRV Disappears: SDNN vs RMSSD
Apple Health stores heart rate variability as SDNN. Oura and WHOOP compute HRV as RMSSD, the overnight metric used for recovery. Because the two are different measurements, the RMSSD value is simply not exported into Apple Health. It is a type mismatch, not a sync delay, so no amount of waiting or re-syncing will surface it. Oura and WHOOP both expose that RMSSD through their own apps and direct connections. Only the Apple Health path drops it.
Apple Watch has the opposite version of the same problem: it does produce a native HRV number, but only SDNN, sampled opportunistically over roughly 60-second windows (often during Breathe sessions), which is the wrong metric and the wrong sampling window for overnight recovery.
What Each Wearable Writes to Apple Health
| Wearable | HRV (overnight RMSSD) | Sleep stages | Resting HR | Blood oxygen | All-day activity |
|---|---|---|---|---|---|
| Apple Watch | SDNN only, never RMSSD | Yes, 4-stage (native) | Yes | Yes | Yes (first-party, no loss) |
| Oura | No, not written | Yes, 4-stage (can be coarsened) | Yes | Sometimes (down-sampled) | Yes |
| WHOOP | No, not written | No, only asleep/awake | Yes | Yes (1 avg/night) | Workout energy only; no all-day steps |
| Fitbit (incl. Fitbit Air) | Nightly value, lower fidelity | Yes, lower fidelity | Yes | Largely stripped | Steps can aggregate; VO2 max needs a bridge app |
| Garmin | Yes, nightly | Yes, 4-stage | Yes (window ambiguous) | Yes | Yes (motion gating can drop slow steps) |
| Samsung Galaxy Watch | Sleep-window value (limited on iOS) | Yes | Yes | Not written to Apple Health | Limited (Android to iOS) |
| Ultrahuman | Yes (via app) | Yes | Yes | Yes | Yes |
WHOOP
WHOOP writes heart rate, resting heart rate, sleep and wake, blood oxygen (one overnight average) and respiratory rate to Apple Health, plus energy attached to logged workouts. It does not write HRV (the RMSSD reason above), it does not write Light, Deep, or REM stages (only asleep and awake), and it does not export an all-day step or all-day energy stream. If you rely on Apple Health for steps, a WHOOP will look like it tracks almost nothing during the day.
Oura
Oura passes a full 4-stage sleep hypnogram, a clean nightly resting heart rate, respiratory rate, steps and energy into Apple Health. Stage fidelity can be coarsened versus Oura's own feed, and the overnight blood oxygen average is sometimes down-sampled or dropped. The important gap is HRV: Oura writes none to Apple Health. Its elite overnight RMSSD only exists on Oura's direct connection.
Fitbit and Fitbit Air
Fitbit devices route to Google Health first, and the Apple Health passthrough is a strictly-smaller copy. Sleep and steps arrive at lower fidelity, overnight blood oxygen is largely stripped, and the Cardio Fitness Score (VO2 max) does not write to Apple Health natively at all: it needs a separate third-party bridge app. So a Fitbit, including the Fitbit Air, is one of the weaker sources if Apple Health is your hub.
Apple Watch, Garmin, Samsung, Ultrahuman
Apple Watch is first-party, so there is no passthrough loss on sleep, steps, energy, resting heart rate, blood oxygen, respiratory rate, VO2 max or wrist temperature. Its only real limit is HRV being SDNN, not RMSSD. Garmin passes almost everything, including a nightly RMSSD and VO2 max, though its resting-heart-rate window is harder to pin down and conservative motion gating can drop slow or intermittent steps. Samsung Galaxy Watch is Android-first, so on iPhone it does not write blood oxygen to Apple Health and its overall pipeline into an iOS app is limited. Ultrahuman passes its metrics through cleanly; its weakness is a lack of independent validation, not a missing data type.
What This Means If You Use an AI Coach
Any app that reads only Apple Health inherits every gap above. That is why a recovery score can sit blank or look wrong on an Oura or WHOOP: the HRV it needs was never written. Vora reads Oura, WHOOP, Garmin and Fitbit through their direct connections where possible, not just Apple Health, so the overnight RMSSD and full sleep stages survive and feed your recovery and readiness. See how each source is used on the integrations page.