Estimate blood oxygen saturation at altitude by age, and see the oxygen level in the air at any elevation in feet or meters as a sea-level equivalent %.

Educational room-air model at pH 7.40 and 37 °C. It cannot predict your own SpO₂ or tell you a safe altitude.

Model range −500 to 5,500 m (about −1,640 to 18,045 ft).

Estimates the normal A–a oxygen gap as age ÷ 4 + 4 mmHg. Leave blank if you enter the A–a difference yourself.

About 40 mmHg at sea level; it falls when you breathe faster at altitude. Not inferred from altitude.

Model assumptions
Alveolar minus arterial oxygen tension. Blank uses the age estimate.

Blank uses the usual value 0.8.

Important: This calculator provides an educational estimate and cannot diagnose or rule out hypoxemia, altitude illness, pneumonia, COVID-19, or other conditions. If your SpO2 is unexpectedly low or rapidly falling, or you have severe symptoms (trouble breathing, chest pain, confusion, bluish lips/face), seek urgent medical care/emergency services. Pulse oximeters can be inaccurate in some situations (poor circulation, movement, nail polish, and known accuracy limitations across different skin tones), and carbon monoxide poisoning may show falsely normal SpO2.

Privacy: Successful calculation inputs are saved in this browser so the result can be restored. Other scripts on this site may access saved values. Reset clears this calculator’s saved data.

Oxygen Saturation at Altitude Formula

This calculator is a transparent, forward-only physiology model. It first estimates barometric pressure at the entered altitude, then applies a simplified room-air alveolar gas equation, subtracts the A–a oxygen difference (entered, or estimated from age), and finally converts the modeled arterial oxygen tension to a standard-condition oxyhemoglobin saturation.

PB = 760 × (1 − 2.25577 × 10⁻⁵ × altitude in meters)5.25588 PAO₂ = 0.2095 × (PB − 47) − PaCO₂ ÷ RQ Modeled PaO₂ = PAO₂ − entered A–a oxygen difference Modeled saturation (%) = 100 ÷ [1 + 23,400 ÷ (PaO₂³ + 150 × PaO₂)]

The last equation is the Severinghaus relationship used here at standard blood conditions of 37°C and pH 7.40. The output is therefore labeled modeled standard-condition oxyhemoglobin saturation. It is not a measured pulse-oximeter value, a personal expected SpO₂, a target, or an altitude-safety limit.

Variables and Units

VariableMeaningUnit
PBModeled barometric pressure at the entered altitudemmHg
PAO₂Estimated alveolar oxygen tension on room airmmHg
PaCO₂Measured or assumed arterial carbon-dioxide tensionmmHg or kPa
RQRespiratory quotient; blank uses the disclosed value 0.8Unitless
A–a differenceEntered alveolar-to-arterial oxygen difference assumptionmmHg or kPa
Modeled PaO₂PAO₂ minus the entered A–a differencemmHg

The calculator accepts altitude from −500 through 5,500 meters, with feet converted to meters. It converts kPa to mmHg using 1 kPa = 7.50062 mmHg. PaCO₂ must be greater than zero, the A–a difference cannot be negative, and RQ must be greater than zero and no more than 1.5. If the assumptions produce a nonpositive PAO₂ or modeled PaO₂, the calculator stops instead of forcing a plausible-looking saturation.

What Does This Altitude Oxygen Model Estimate?

Air at altitude still contains about 20.9% oxygen, but total barometric pressure falls as elevation rises. Because oxygen's partial pressure falls with that total pressure, less oxygen pressure is available to move from inhaled gas into the blood. The model makes that pressure chain visible: altitude affects PB, PB affects PAO₂, and the entered gas-exchange assumption affects modeled PaO₂.

A person's actual oxygen saturation cannot be predicted from altitude alone. Ventilation changes PaCO₂, and PaCO₂ strongly affects the alveolar estimate. Acclimatization, exertion, sleep, illness, age, individual ventilatory response, weather, pH, temperature, 2,3-DPG, and gas-exchange efficiency add further variation. That is why the calculator requires PaCO₂ instead of inventing it from altitude, and estimates the A–a difference from age only when you do not enter one.

How to Use the Calculator

  1. Enter the altitude and select meters or feet. Use the elevation for the location being modeled, not cabin altitude or a pressure reading unless it has first been converted appropriately.
  2. Enter an assumed or measured PaCO₂. Do not substitute an SpO₂ value; carbon-dioxide tension is a different measurement.
  3. Enter your age to estimate the A–a difference (age ÷ 4 + 4 mmHg), or enter your own A–a difference under Model assumptions.
  4. Enter RQ if a specific assumption is intended, or leave it blank to use 0.8. Review the disclosed value in the result.
  5. Calculate and read the intermediate PB, PAO₂, and modeled PaO₂ values along with saturation. Preserve the assumptions whenever sharing the result.

Worked Example at 2,000 Meters

Suppose altitude is 2,000 m, PaCO₂ is 35 mmHg, the entered A–a difference is 5 mmHg, and RQ is 0.8. The standard-atmosphere equation gives PB of approximately 596 mmHg. The alveolar calculation is 0.2095 × (596 − 47) − 35 ÷ 0.8, or about 71 mmHg. Subtracting the 5 mmHg A–a assumption gives a modeled PaO₂ near 66 mmHg. The Severinghaus relationship then returns a modeled standard-condition saturation of roughly 92%–93%.

This is an illustration of the equations, not a reference range or forecast for a traveler. Changing PaCO₂ from altered ventilation, changing the A–a assumption, exercising, or sleeping can materially change the physiologic situation. The displayed decimal does not make the underlying assumptions precise.

Interpreting Altitude Oxygen Saturation Carefully

The CDC Yellow Book describes broad observed saturation ranges rather than a single personal prediction. Around 3,050 m, acute exposure can lower arterial oxygen saturation to approximately 88%–91%. The same guidance emphasizes that the impact depends on altitude, ascent rate, exposure duration, sleep, and individual susceptibility. Acclimatization begins over the first several days and can continue longer, so a value soon after arrival and one after adaptation are not interchangeable.

A pulse oximeter and this model measure different things. The model converts assumed pressures under standard conditions. A pulse oximeter estimates SpO₂ optically at a particular moment. FDA guidance notes that poor circulation, skin pigmentation, skin thickness or temperature, tobacco use, and fingernail polish can affect readings. Motion, device quality, dyshemoglobins, and measurement technique can also matter. Do not “correct” a measured reading merely because it differs from the model.

Altitude illness is not diagnosed or excluded by a saturation number alone. Symptoms, timing, rate of ascent, examination, and context matter. Worsening breathlessness at rest, chest congestion or distress, confusion, loss of coordination, cyanosis, marked drowsiness, or rapid deterioration require urgent attention and appropriate local emergency or altitude guidance. People with chronic lung disease, preexisting hypoxemia, obstructive sleep apnea, heart disease, or other relevant conditions should seek individualized advice before high-altitude travel.

Limitations of the Model

  • The standard-atmosphere equation does not capture day-to-day weather or local pressure variation.
  • The simplified alveolar equation assumes room air and requires a PaCO₂ and RQ assumption. It omits the small inspired-oxygen correction in the full alveolar gas equation; supplemental oxygen is outside this calculator's scope.
  • A single A–a difference cannot represent changing ventilation-perfusion matching, diffusion, or shunt across all settings.
  • The saturation relationship is fixed to standard pH and temperature and does not model shifts of the oxyhemoglobin dissociation curve.
  • The model does not determine acclimatization, altitude-illness risk, fitness to fly, oxygen need, or a safe ascent or descent plan.

Below-sea-level elevations are included only so the same pressure equation can be explored across a modest negative-altitude range. At either end of the allowed range, results remain assumption-dependent. The calculator's altitude limit is a scope boundary, not evidence that every location inside it is safe or that locations above it are unsafe.

Frequently Asked Questions

Is modeled saturation the same as SpO₂?

No. SpO₂ is a pulse-oximeter estimate. This calculator produces a standard-condition saturation from entered assumptions and equations. The two may differ for physiologic and device-related reasons.

Why must I enter PaCO₂?

Ventilation and acclimatization affect PaCO₂, which appears directly in the alveolar gas equation. Automatically assigning PaCO₂ from altitude would hide one of the model's most influential assumptions.

Can I solve backward for a safe altitude?

No. A target saturation does not define safe altitude for an individual, so this calculator intentionally has no reverse-altitude mode.

Primary and Current Sources