Guide ·
Apple Health is not a backup of your wearables
As of 2026-09-08. Claims below track vendor Apple Health write lists and FAQs — not a lab re-measure of every sample rate.
I keep meeting the same assumption: if your ring, watch, or band “syncs to Apple Health,” then Health is a backup of that wearable. It isn’t. Health is a bridge. Bridges drop cargo.
If you treat Health as a full mirror of Oura, Garmin, or WHOOP, you’ll eventually notice holes — HRV that never appears, GPS that stops at the brand app, recovery scores that live only in one cloud. This piece is the mental model I use while building Correlate, so those holes stop being surprises.
Each hop can throw data away
The pipeline is simple. The condensation is not optional — it’s how the stack is designed.

Wearable → brand App → Apple Health → other Apps. Every hop may thin the data.
- Wearable senses and firmware-packages.
- Brand App holds the full native database (and the brand’s algorithms).
- Apple Health receives a standardized subset the brand chooses to write.
- Other Apps (including mine) can only read what Health already has — unless you also import official exports.
So “I synced to Health” means “I wrote the whitelist types.” It does not mean “I cloned the brand database.”
That distinction matters the moment you leave the brand app. Sleep stages you see in Oura are not automatically the same object another app will chart from Health. Workout GPS you see on Garmin Connect is not automatically sitting in HealthKit for a third-party route view. Recovery you live inside WHOOP is not a Health sample waiting to be read.
Three levels of “raw”
People say “raw data” for three different things. Mixing them is how you get fake comparisons.

L1 locked in · L2 worth archiving · L3 brand opinion on top of L2.
| Level | What it is | Example | Travels well? |
|---|---|---|---|
| L1 | Sensor raw | PPG waveform, IMU samples | Almost never — stays on device / firmware |
| L2 | Measurements | HR, HRV, SpO₂, sleep stages, RHR, GPS | Yes — units you can keep and compare |
| L3 | Brand scores | Oura Readiness, Garmin Body Battery, WHOOP Recovery, Apple Training Load | No — L2 + your baseline + their algo |
Body Battery ≠ WHOOP Recovery ≠ Oura Readiness. Same job title on the UI, different math underneath. If another app only syncs L3, it imported an opinion, not a measurement.
For long-term health-as-database, L2 is what you want to keep. L3 is useful inside one ecosystem; it is not a cross-brand currency.
Five platforms, five jobs
I don’t treat every app as a “health database.” They have different jobs.

Pick a master per job. Don’t expect one app to hold everything.
- Apple Watch — Health-native sensor. For long-term Health-as-database, Watch is usually the most complete writer into Health.
- Oura — sleep / recovery database. Strong native store; Health gets a useful but incomplete slice.
- Garmin — sports-science database. Very rich natively; incomplete when you look only at Health.
- WHOOP — recovery / strain engine. Health gets workouts, energy, HR, sleep, RHR, respiratory rate, SpO₂, steps — not the proprietary stack.
- Strava — workout social graph. Not a health sensing DB. It can write route, activity type, distance, time, calories for Strava-recorded activities. Third-party routes (e.g. Garmin → Strava) do not re-export into Health.
Oura and WHOOP sit next after Watch for what they do write. Garmin stays the “rich at home, thin on the bridge” case. Strava is social training, not your vitals vault.
What Health gets vs what stays proprietary
This is the part people screenshot. It’s also the part that ages — so treat it as as of 2026-09-08, from official write/export lists and FAQs.

Hero gaps: Oura HRV ✗ · WHOOP HRV ✗ · Garmin GPS / full workout HR ✗
Health write completeness (summary)
| Source | Writes to Apple Health (examples) | Does not write (stays brand / cloud) |
|---|---|---|
| Oura | Active Energy; HR (1-min); Sleep + stages; Steps; Workouts; night avg Respiratory Rate; … | HRV; Skin Temp; SpO₂; Readiness / Sleep / Activity scores; Resilience |
| Garmin | Active Energy; Body Fat; BMI; Flights; HR; Resting Energy; Sleep Analysis; Steps; Walking+Running Distance; Water; Weight; Workout | HRV; Pulse Ox; Respiration; Skin Temp; Body Battery; Stress; Training Readiness/Status; Recovery Time; GPS track; full workout HR series (Health gets high/low for workouts, not the full series) |
| WHOOP | Workouts; Active Energy; HR; Sleep; RHR; Respiratory Rate; SpO₂; Steps | HRV (WHOOP RMSSD vs Apple SDNN — by design / FAQ); Skin Temp; Recovery; Strain; Sleep Performance; WHOOP Age; ECG/BP Insights (MG) |
| Strava | Route, activity type, distance, time, calories for Strava-recorded activities | Third-party (e.g. Garmin) routes do not re-export to Health |
| Apple Watch | Most complete into Health among the set above (daily HR, steps, and the rest of Apple’s own types) | — |
Three gaps I care about as a builder:
- Oura HRV (and temp / scores) never land in Health → if you only read Health, you never see Oura’s HRV history.
- WHOOP HRV doesn’t write to Health (RMSSD vs Apple’s SDNN is a documented mismatch, not a sync bug) → Recovery / Strain stay in WHOOP.
- Garmin GPS track and full workout HR series don’t make the bridge the way people assume → Body Battery / Stress / Training Readiness stay native too.
None of that means the brands are “wrong.” It means the bridge is a subset by design. Native databases remain the high-resolution source of truth for what they invented.
I’m not asking Oura to dump Readiness into Health, or WHOOP to redefine HRV as SDNN, or Garmin to flatten Body Battery into a generic sample. Those products earn their keep inside their own models. The critique is narrower: don’t advertise Health sync as a full backup, and don’t build “cross-brand recovery” charts on L3 scores that never shared a formula.
Duplicate sources
When the same type arrives from multiple writers, Apple’s Data Source Priority applies: manual > Apple devices > third party. That’s why “which HR am I looking at?” is a product question, not just a chart question.
When you use all five, nothing holds the full picture
If you wear Watch + Oura + Garmin + WHOOP and post to Strava, you do not have one health database. You have five, loosely bridged.

Apple Health holds a shared subset. Each silo keeps what the bridge drops.
Watch contributes the most into Health. Oura / WHOOP contribute subsets. Garmin contributes a partial slice while the sports-science depth stays native. Strava contributes activities it recorded itself. The center is useful. It is not complete.
So what do you actually keep?
I used to assume “turn on Health sync” was the archive strategy. It isn’t. Sync is the interoperability strategy. Archive is a separate decision.
Practical rules I use:
- Treat Apple Health as the standardized L2 record across devices — great for interoperability, bad as a sole archive of brand-proprietary series.
- Treat brand apps / clouds as the high-res proprietary store (HRV definitions, recovery scores, full GPS, full workout HR).
- When Health will never get a type, use the official export: WHOOP
.zip, Oura CSV, and whatever the vendor documents — not scraped screenshots. - Don’t cross-rank L3 scores across brands. Compare L2, or stay inside one ecosystem’s score.
- When two devices write the same L2 type, decide which source you trust for that type (or accept Apple’s priority order) before you build trends on top.
The goal isn’t to hate the bridge. The goal is to stop mistaking the bridge for the warehouse.
Soft close: where Correlate sits
I built Correlate because I wanted Health as the daily standardized layer plus a migration path for the series Health never receives — without standing up another account cloud.

On-device. Health + official exports. Ask Your Data on your own series.
- Reads Apple Health on-device
- USD 4.99 once, no account
- Official WHOOP
.zipand Oura CSV import for the gaps Health never gets - Ask Your Data: r / lag / n / p on your series
Site: correlate.bluehat.tw
App Store: Correlate — Health Insights
Recent write-up: the5krunner — Correlate / Apple Watch recovery
If this model is wrong in a place you’ve measured, tell me — the bridge lists change, and the article should change with them.