HKQuantityTypeIdentifierOxygenSaturation — reading blood oxygen (SpO₂) from Apple Health
Apple stores blood oxygen under HKQuantityTypeIdentifierOxygenSaturation, and the number inside is not the percentage the Health app draws on screen.
Open your file
Drop your file here
export.zip straight from the Health app — do not unzip it
No account. No upload. The file is read on this device and never leaves it.
Nothing has been sent anywhere. 0 requests to this site, for the page's own code.
It is a fraction, not a percentage
The Health app shows 97%. The export stores 0.97. Apple gives SpO₂ as a fraction between 0 and 1, while almost every other source — Garmin, Oura, a pulse oximeter’s CSV — gives a whole-number percent. Read the file naively and every reading is off by 100×, and it looks almost right (a plausible 0.97) until you plot it against a device that says 97, and the two are a hundredfold apart.
Why the unit attribute is the only safe source
The scale is not something to assume from the identifier — Apple records a unit attribute on every sample, and that attribute is authoritative. Our parser reads it per record rather than hard-coding “fraction”, because a single export can mix units when a user changed region mid-history. This page applies the same rule to your file.
This identifier is one of dozens. The Apple Health data dictionary lists every identifier this parser reads, with its canonical type and unit.