Oxygen-Hemoglobin Dissociation Calculator

Calculate hemoglobin oxygen saturation at any partial pressure using the Hill equation.
Adjust P50 and cooperativity to model pH, temperature, 2,3-DPG shifts.

Hemoglobin Saturation

Hemoglobin carries oxygen from the lungs to tissues. Unlike a simple carrier molecule, hemoglobin shows cooperative binding: once one oxygen molecule binds, subsequent binding becomes progressively easier. This cooperativity produces the characteristic S-shaped dissociation curve.

The Hill equation:

Y = pO2^n / (P50^n + pO2^n)

where Y is fractional saturation (0 to 1), pO2 is partial pressure of oxygen in mmHg, P50 is the pO2 at 50% saturation (normally about 26-27 mmHg in humans), and n is the Hill coefficient.

The Hill coefficient n measures cooperativity. Pure non-cooperative binding gives n = 1 (a hyperbolic curve). Hemoglobin has n ≈ 2.7 for adult HbA. The theoretical maximum for a 4-subunit protein is n = 4.

P50 shifts. The curve shifts right (higher P50, lower affinity) with:

  • Rising temperature
  • Falling pH (the Bohr effect, driven by acidosis in exercising tissues)
  • Rising CO2
  • Rising 2,3-DPG

These shifts enhance oxygen unloading at active tissues where it is needed most.

The curve shifts left (lower P50, higher affinity) with alkalosis, hypothermia, fetal hemoglobin (HbF), and carbon monoxide poisoning. A left-shifted curve loads oxygen well but releases it poorly to tissues.

At arterial pO2 (~100 mmHg), saturation is about 98%. At venous pO2 (~40 mmHg), it drops to about 75%, delivering roughly 25% of its oxygen load to tissues per pass.

How much oxygen that actually is. Saturation is a percentage, not a quantity, and the two get confused constantly. Each gram of haemoglobin binds 1.34 mL of oxygen when fully saturated, so blood with a normal 15 g/dL of haemoglobin carries about 20 mL of oxygen per 100 mL at 98% saturation. A separate and much smaller amount, 0.003 mL per 100 mL per mmHg, rides dissolved in the plasma: about 0.3 mL at an arterial pO2 of 100.

That dissolved fraction explains something that surprises people. If somebody is already at 98%, putting them on high-flow oxygen adds almost nothing to the bound fraction because there is nowhere left to bind, and only about 1.5 mL per 100 mL to the dissolved fraction even at a pO2 of 500. Oxygen therapy rescues a patient whose saturation is low, not one whose saturation is fine. The exception is carbon monoxide poisoning, where the bound sites are occupied and the dissolved fraction is doing real work.

Why the shift matters more than the saturation. A right shift barely changes arterial loading, because the top of the curve is flat and there is little room to lose. What it changes is the steep part, where venous blood sits. That asymmetry is the design: the lung end of the curve is deliberately insensitive to disturbance while the tissue end is deliberately sensitive to it.


How we build and check this calculator

This calculator runs entirely in your browser, so the numbers you enter stay on your device. The math behind it is written by hand and tested against worked examples and standard references before the page goes live.

SuperGlobalCalculator is independently built and maintained. See how we build and verify our calculators.


Embed This Calculator

Copy the code below and paste it into your website or blog.
The calculator will work directly on your page.