Home / Learn / Biology / Oxygen dissociation curveTool #L64 (formerly #1130)

Oxygen dissociation curve: haemoglobin, the Bohr shift with CO₂, pH and temperature, and lung volumes

Slide the oxygen level and watch haemoglobin load and unload along the S-shaped curve. Change pH, carbon dioxide and temperature to see the Bohr shift, compare fetal haemoglobin, and draw a spirogram of tidal volume, vital capacity and total lung capacity.

Keep it one tap away for everyday use.

Bookmark Oxygen dissociation curve?

Press Ctrl + D now. Your browser opens its own bookmark box, where you choose the name and folder.

  1. PO₂
  2. Curve
  3. Lungs
  4. Check
Nothing is uploadedWorks offline once open

A teaching model from a standard published equation: real blood differs between people. Not for judging anyone's health.

Haemoglobin and oxygen

Conditions

Lung volumes (spirogram)

Typical round adult values. Tidal: one quiet breath. Reserves: the extra you can breathe in or out by trying hard. Residual: what always stays in the lungs.

Download

Try this

  • Slide PO₂ from 100 (lungs) down to 40 (resting tissues). Why does haemoglobin give up only about a quarter of its oxygen at rest?
  • Press Working muscle. Which way does the curve move, and how much more oxygen is unloaded at 40 mmHg?
  • Tick fetal haemoglobin. Why does it help a baby take oxygen from its mother's blood?
  • Work out your vital capacity from the volumes, then check it.

Check yourself

Fresh questions every time. Nothing is saved.

    What it does

    Red blood cells carry oxygen bound to haemoglobin. Each haemoglobin has four places for oxygen. How full it is (its saturation) depends on how much oxygen is around it, measured as the partial pressure PO₂. Plotting saturation against PO₂ gives an S-shaped oxygen dissociation curve: haemoglobin fills up easily in the lungs (about 100 mmHg) and lets oxygen go quickly once PO₂ drops in the tissues (about 40 mmHg at rest, lower in working muscle).

    • Slide PO₂ and see the saturation and a picture of one haemoglobin with its four sites.
    • Change the conditions. More carbon dioxide, more acid (lower pH) and warmth, as in working muscle, move the curve right: haemoglobin holds oxygen less tightly and gives more to the tissues. This is the Bohr effect. Cool, alkaline blood with little CO₂ moves it left.
    • Fetal haemoglobin holds oxygen more tightly than an adult’s, so a baby can take oxygen from its mother’s blood.
    • Lung volumes: type tidal volume, the reserves and the residual volume to draw a spirogram and work out the vital capacity, total lung capacity and the air breathed each minute.

    It fits Class 11 Biology: breathing and exchange of gases (respiratory volumes and capacities, transport of oxygen, the dissociation curve and the factors that shift it). It is a teaching model. The heart that moves this blood is in cardiac cycle; blood pH and CO₂ are read in blood gas interpreter; oxygen use is measured with respirometry calculator and VO2max estimator.

    How to use it

    1. Slide PO₂ from 0 to 120 mmHg. The label says when you are near lung or tissue values.
    2. Pick conditions: Normal blood, Working muscle (pH 7.2, CO₂ 60 mmHg, 39 °C) or Cold, low CO₂, or move the pH, CO₂ and temperature sliders yourself. The dashed line keeps the normal curve for comparison.
    3. Read the facts: P50 (the PO₂ where haemoglobin is half full), saturation in the lungs and tissues, and how much oxygen is given up per 100 mL of blood.
    4. Lung volumes: change any value; the spirogram shows two quiet breaths, the deepest breath in and out, then quiet breathing.
    5. Download both graphs and the numbers as an image, PDF or Word file. Check yourself gives fresh questions every time.

    Worked example

    At normal conditions and PO₂ 40 mmHg the page shows 75 % saturated. In the lungs (100 mmHg) it is 97.7 %, so the blood gives up 22.8 % of its load, about 4.8 mL of oxygen per 100 mL of blood. Press Working muscle: P50 rises from 26.9 to 37.0 mmHg, the curve moves right by 10.1 mmHg, and at 40 mmHg haemoglobin is only 55.3 % full, so it gives up 42.5 % of its load, nearly twice as much. For the lungs, with tidal volume 500 mL, inspiratory reserve 2750 mL and expiratory reserve 1050 mL, the vital capacity is 1050 + 500 + 2750 = 4300 mL, and with 1150 mL residual volume the total lung capacity is 5450 mL.

    FAQ

    Why is the curve S-shaped? When one oxygen binds, haemoglobin changes shape and the next ones bind more easily (cooperative binding). So the middle of the curve is steep, just where tissue PO₂ lies.

    Why can’t you breathe out the residual volume? The lungs and airways never collapse completely; that air stays to keep gas exchange going between breaths.

    Is this accurate for a real person? It follows a well-known equation for average adult blood, but people differ, and it is not a medical tool.

    Where the numbers come from

    • Standard curve: Severinghaus JW (1979), Simple, accurate equations for human blood O2 dissociation computations, Journal of Applied Physiology 46: 599-602, with his correction for pH, temperature and PCO2. Checked in the tests against a separate Python version.
    • Oxygen content = 1.34 × Hb × saturation + 0.003 × PO2 is a standard physiology formula; Hb 15 g/dL is a typical round value. The fetal P50 of about 19 mmHg is an approximate teaching value.
    • Lung volumes are typical round adult values as quoted in school books; you can type your own. Not for judging anyone's health. Nothing you enter is stored or sent anywhere.

    Standard scientific values, such as constants, atomic weights and melting points, are facts found in every textbook; we name where ours were checked. If you are an author or publisher and want a value, a credit or a table changed or removed, tell us and we will act quickly.

    Last updated 2026-11-09.

    Change log for Oxygen dissociation curve

    1. Add #1130 Oxygen dissociation curve Details on GitHub

    Every change to fibub

    Related tools

    Blood gas interpreter #T331 Interpret an arterial blood gas step by step: acidaemia or alkalaemia, the primary disorder, expected compensation (Winter's formula and the acute and chronic respiratory rules), the anion gap corrected for albumin, the delta ratio, lactate and the osmolar gap, with an acid-base map. VO2max estimator #T338 Estimate VO2max (aerobic fitness) from six field tests: Cooper 12-minute run, 1.5-mile run, Rockport 1-mile walk, 20 m shuttle run (beep test), Queens College step test, and the Uth heart rate ratio. Each formula cited, all tests compared side by side, with CSV. Respirometry calculator #T257 Work out oxygen uptake (V̇O₂), CO₂ output (V̇CO₂), the respiratory quotient and metabolic rate in watts and kJ per day from flow-through gas readings (with the Haldane transformation) or from the fall of O₂ in a closed chamber of air or water. For study and teaching, not for clinical use. Cardiac cycle #L61 Watch a four-chamber heart beat in slow motion: atria and ventricles contract, valves open and shut, and an ECG-like trace and the ventricle volume move with them. Change the heart rate and the filling to see stroke volume and cardiac output. Teaching model, not medical. Double circulation #L182 Watch blood cells flow round the heart, lungs and body, coloured by how much oxygen they carry. Compare a human's four-chambered heart with a frog's three chambers and a fish's single circulation, and see how heart rate sets the time for one lap. For Class 10 and 11. Osmosis lab #L55 Drop a potato piece, a raisin, an onion cell or a red blood cell into sugar or salt water and watch water move in or out. See plasmolysis, a % mass change graph, water potential at Class 11 level, a virtual practical and quick questions.