A pulse oximeter measures arterial oxygen saturation. It relies on
The device measures the ratio of the pulsatile absorbances (each normalized by the nonpulsatile part to account for different LED intensities):
$$R = \frac{AC_{660} / DC_{660}}{AC_{940} / DC_{940}}$$
And, by applying Beer-Lambert twice, we can see
$$R = \frac{\Delta L}{\Delta L} \frac{(\epsilon_{\text{oxy}} C_{\text{oxy}} + \epsilon_{\text{deoxy}} C_{\text{deoxy}})_{660}}{(\epsilon_{\text{oxy}} C_{\text{oxy}} + \epsilon_{\text{deoxy}} C_{\text{deoxy}})_{940}}$$
$$R = \frac{(\epsilon_{\text{oxy}} C_{\text{oxy}} + \epsilon_{\text{deoxy}} C_{\text{deoxy}})_{660}}{(\epsilon_{\text{oxy}} C_{\text{oxy}} + \epsilon_{\text{deoxy}} C_{\text{deoxy}})_{940}}$$
If we then assume that there is only OxyHb and DeoxyHb i.e. \(F_{oxy} + F_{deoxy} = 1\) then
$$R = \frac{(\epsilon_{oxy} F_{oxy} [Hb] + \epsilon_{deoxy} (1-F_{oxy}) [Hb])_{660}}{(\epsilon_{oxy} F_{oxy} [Hb] + \epsilon_{deoxy} (1-F_{oxy}) [Hb])_{940}}$$
$$R = \frac{(\epsilon_{oxy} F_{oxy} + \epsilon_{deoxy} (1-F_{oxy}))_{660}}{(\epsilon_{oxy} F_{oxy} + \epsilon_{deoxy} (1-F_{oxy}))_{940}}$$
We could then solve for \(F_{oxy}\) directly; unfortunately, there is a lot of error (due to differential scattering of the different wavelengths, such that \(\Delta L_{660} \neq \Delta L_{940}\)
In practice, R is regressed against SpO2 of healthy subjects breathing gas of varying hypoxic FiO2. R of 1 \(\approx\) SO2 of 85%. Values below 70% are extrapolated.
Issues due to R's calibration
Issues due to abnormal Hb species
Issues due to pulsatility
Cooximeters analyse a blood sample extracorporally and expose it to >4 (usually 128) wavelengths of light.
The total absorbance spectrum is the sum of the absorbance spectra of each species, multiplied by each concentration:
$$A(f) = \sum_{i \in \text{Hb species}} \epsilon^f_i \cdot [i]$$
We can therefore compute the concentration of oxyHb, deoxyHb, COHb, metHb, and sulfHb, and derived quantities:
$$[Hb] = \sum_{i \in \text{Hb species}} [i]$$
$$sO2 = \frac{[oxyHb]}{[Hb]}$$
Cooximetry is not confused by abnormal haemoglobin species, abnormal pulsatility patterns, or a moving patient, and can measure total Hb; but it requires venepuncture (or arterial puncture to get saO2), is not continuous, and does not incidentally measure the heart rate.