Few smartwatch features have had a stranger life than blood oxygen. Apple launched it in 2020, switched it off for US buyers in 2024 because of a patent dispute, brought it back in August 2025 with the iPhone doing the calculation, and was then ordered by a jury to pay Masimo $634 million [1][2]. All for a number that most owners glance at once and never think about again.
That number is better than its reputation in one way and worse in another. On average, the best watches land close to a medical pulse oximeter. For any single reading, they can miss by several points, which is the difference between normal and worrying [3][4]. The useful question is not whether watch SpO2 is accurate, but what it is accurate enough for.
How does a watch measure blood oxygen?
A finger pulse oximeter shines red and infrared light through the fingertip and measures how much each is absorbed; oxygenated and deoxygenated hemoglobin absorb them differently. A watch has to work by reflection from the wrist, where there is more bone, tendon and movement and less blood near the surface. That makes the signal weaker and more sensitive to everything around it: how tight the band is, cold skin, motion and low blood flow [4].
That is why watches either ask you to stay still for a spot check or take repeated readings while you sleep, when you are not moving. Several brands report a nightly average or a count of dips rather than a single daytime number.
How accurate is it?
Two studies give the clearest picture:
- Apple Watch, systematic review. Five studies with 973 patients found no strong systematic bias for the Apple Watch Series 6 against medical pulse oximeters, but 95% limits of agreement of about ±2.7 to ±5.9 percentage points, and outliers of up to 15 points [3].
- Four watches, head to head. Duke researchers compared the Apple Watch Series 7, Garmin Venu 2s, Garmin Fenix 6 Pro and Withings ScanWatch with a finger oximeter in 49 patients, most with lung disease, at rest. The Apple Watch had a mean absolute error of 2.2 points and almost no average bias. The Venu 2s had 5.8, reading about 5.5 points low on average. The Fenix 6 Pro and ScanWatch failed to produce a reading 28% and 31% of the time [4].
For scale, the FDA’s 2013 guidance expects medical pulse oximeters to show an accuracy root mean square error of about 3 percentage points or less against arterial blood samples, with slightly more allowed for reflectance sensors [5]. A watch that averages within 2 points can still give a single reading 5 or 6 points away from the truth. Working from the Duke figures, an Apple Watch reading of 95% is consistent with a true saturation anywhere from about 89% to 100%, and a Venu 2s reading of 90% with about 88% to 100%. The readings that matter most clinically, below 90%, are also the least studied.
Does skin tone change the reading?
For medical pulse oximeters, yes: they overestimate oxygen more in people with darker skin, which can hide low oxygen. A 2024 meta-analysis of 23 studies found pooled overestimates of 0.70 points for light, 0.27 for medium and 1.27 for dark pigmentation [6]. We covered the history and the FDA’s draft guidance in wearable accuracy on darker skin.
For watches the evidence is thin. The Duke study found no significant difference in average error by skin type, but a possible relationship between skin type and the direction of the error, and it used a finger oximeter rather than arterial blood as the reference [4]. Few watch studies include enough people with the darkest skin tones to settle it.
What is watch SpO2 actually good for?
Overnight patterns. Repeated readings during sleep can show nights with frequent oxygen drops. That is the basis of Samsung’s FDA-authorized sleep apnea feature, which uses blood oxygen over two nights [7]. Apple’s apnea feature uses the accelerometer instead. We compared both in can a smartwatch detect sleep apnea?
Trends against your own baseline. A sustained drop compared with your usual nightly average, at altitude or during a respiratory illness, is more meaningful than any absolute number.
Not a spot medical reading. Motion, cold hands, a loose band, tattoos and low blood flow all degrade the signal, and some watches simply fail to return a value much of the time [4].
Why did Apple’s feature disappear and come back?
After Masimo won a US import ban on Apple Watches with blood oxygen enabled, Apple sold US watches with the feature switched off from January 2024. On 14 August 2025, iOS 18.6.1 and watchOS 11.6.1 brought it back in redesigned form: the watch takes the measurement, the paired iPhone calculates it, and the result appears in the Health app [1]. US Customs accepted the redesign; Masimo is contesting it [2]. Separately, in November 2025 a jury awarded Masimo $634 million for infringement of a single patent, which Apple said it would appeal [2].
For developers, the important part is that the readings still land in Apple Health as oxygen saturation samples, wherever they were calculated.
What should product teams do with SpO2 data?
- Convert units. HealthKit stores oxygen saturation as a fraction with a percent unit, so 97% arrives as 0.97; Health Connect’s
OxygenSaturationRecordstores 97 [8][9]. Mixing them without conversion is a common bug. - Expect gaps. Some watches fail to return a value a quarter of the time or more [4], and Google Health does not write Fitbit SpO2 to Health Connect at all [10].
- Prefer nightly aggregates. Use averages, minimums and the number of dips across a night, compared with the user’s own baseline, rather than single readings.
- Label it as wellness. Do not present watch SpO2 as a medical measurement or use it to tell users they are fine.
- Report error by group if you build anything on it, including skin tone, as we argued in the darker skin post.
The short version
Smartwatch blood oxygen is close to a medical pulse oximeter on average, but a single reading can be several points off, with outliers up to 15 points and some watches failing to read at all [3][4]. Skin tone affects medical oximeters and may affect watches [4][6]. The data is most useful as an overnight pattern against your own baseline, which is how Samsung’s apnea feature uses it [7]. Apple’s version is back in the US, calculated on the iPhone, after a patent fight that cost Apple $634 million [1][2].
References
- MedTech Dive. Apple fends off Masimo challenge to Apple Watch redesign. 2025. https://www.medtechdive.com/news/apple-fends-off-masimo-challenge-to-apple-watch-redesign/818158/
- MacTrast. Apple to Pay $634 Million to Masimo in Apple Watch Blood Oxygen Patent Lawsuit. November 2025. https://www.mactrast.com/2025/11/apple-to-pay-634-million-to-masimo-in-apple-watch-blood-oxygen-patent-lawsuit/
- Accuracy of the Apple Watch Oxygen Saturation Measurement in Adults: A Systematic Review. Cureus, 2023. https://pmc.ncbi.nlm.nih.gov/articles/PMC10039641/
- Jiang, Y., Spies, C., Magin, J., Bhosai, S. J., Snyder, L., & Dunn, J. (2023). Investigating the accuracy of blood oxygen saturation measurements in common consumer smartwatches. PLOS Digital Health, 2(7), e0000296. https://pmc.ncbi.nlm.nih.gov/articles/PMC10337940/
- US Food and Drug Administration. Pulse Oximeters, including the 2013 premarket guidance and the January 2025 draft guidance. https://www.fda.gov/medical-devices/products-and-medical-procedures/pulse-oximeters
- Effect of skin pigmentation on the accuracy of pulse oximetry and pulse rate: systematic review and meta-analysis. Journal of Medical Internet Research, 2024, 26, e62769. https://www.jmir.org/2024/1/e62769
- US Food and Drug Administration. De Novo DEN230041, Samsung Sleep Apnea Feature. February 2024. https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/denovo.cfm?ID=DEN230041
- Apple Developer. HKQuantityTypeIdentifier.oxygenSaturation. https://developer.apple.com/documentation/healthkit/hkquantitytypeidentifier/oxygensaturation
- Android Developers. OxygenSaturationRecord. https://developer.android.com/reference/kotlin/androidx/health/connect/client/records/OxygenSaturationRecord
- Google Health Help Center. Sync Google Health with Health Connect. Oxygen saturation is listed as read-only. https://support.google.com/fitbit/answer/14506680