Teaching model · not a clinical calculator

O₂ dissociation curve

At reference

Hemoglobin oxygen saturation versus PO₂ Dashed grey: reference curve at pH 7.40, PCO₂ 40 mmHg, 37 °C. Solid: curve under the current conditions.

Teaching model · not a clinical calculator

The BohrEffect

Acid and CO₂ loosen hemoglobin's grip on O₂ — so it lets go where tissues need it.

Conditions

7.40
40
37.0
Presets ILLUSTRATIVE

Tab to a slider. Arrow keys change it. Shift plus an arrow key takes a larger step.

O₂ unloaded between lung and tissue
22.5 saturation points 0.0 vs reference Lung PO₂ 100 minus tissue PO₂ 40. Share of binding sites, not millilitres of oxygen.
What is moving P50
  • pH ×1.00 — Bohr, proton term
  • PCO₂ ×1.00 — Bohr, direct CO₂ term
  • Temperature ×1.00 — thermal, not Bohr
SO₂ from the teaching model APPROX
SiteReferenceCurrentΔ
Tissue · PO₂ 40–––
Lung · PO₂ 100–––
P50 (mmHg)–––
HCO₃⁻ 24.0 mM APPROX

When on, moving PCO₂ recalculates pH at fixed HCO₃⁻ (24.0 mM). Moving pH is treated as a metabolic (fixed-acid) change. APPROX

Lungs vs tissue

Inside the capillary

A red blood cell carrying 16 oxygen-binding sites, shown in the current capillary.

Where is the red cell?
Site PO₂100 mmHg
Hb sites holding O₂–
Extra O₂ released by the shift at PO₂ 40–

Cartoon: 4 Hb tetramers × 4 hemes = 16 sites. A real red cell holds roughly 270 million Hb molecules. CARTOON

Keep scrolling

From lung to working muscle

Lung / arterial pH 7.40 · PCO₂ 40 · 37.0 °C Exercising muscle pH 7.20 · PCO₂ 60 · 39.5 °C ILLUSTRATIVE
Alveolus · PO₂ ≈ 100 mmHg
pH
7.40
PCO₂
40
°C
37.0
P50
26.8
SO₂ at tissue PO₂ 40
74.7%
  1. Lung

    CO₂ is breathed off, pH rises → left shift → Hb loads O₂ more readily.

  2. PCO₂

    Higher PCO₂ → mostly acts by lowering pH (plus a small direct carbamino effect) → right shift. Arterial ≈ 40, mixed venous ≈ 46.

  3. Tissue

    Metabolism makes CO₂, H⁺ and heat → right shift → Hb unloads more O₂ at the same PO₂.

  4. Temperature

    Warmer → right shift. A related thermal effect shown alongside Bohr — not the Bohr effect itself. Working muscle runs warm.

  5. Tissue vs lung

    Because the curve is flat near 100 mmHg, a shift barely changes arterial SO₂ but matters a lot on the steep part near 40 mmHg. That is where the Bohr effect pays off.

What it is / what it isn't

Is

  • H⁺ and CO₂ lower hemoglobin's O₂ affinity TEXTBOOK
  • Curve moves right: higher P50, less SO₂ at a given PO₂ TEXTBOOK
  • Mechanism: H⁺/CO₂ stabilize deoxy (T-state) Hb TEXTBOOK

Isn't

  • Not the Haldane effect (O₂ changing Hb's CO₂/H⁺ carriage, the reverse view)
  • Not the temperature effect, though heat also shifts right (shown here alongside)
  • Not 2,3-BPG (another right-shifter, not modeled here)

Tissue vs lung

Tissue

Metabolism makes CO₂, H⁺ and heat → right shift → Hb unloads more O₂ at the same PO₂.

Lung

CO₂ is breathed off, pH rises → left shift → Hb loads O₂ more readily.

Because the curve is flat near 100 mmHg, a shift barely changes arterial SO₂ but matters a lot on the steep part near 40 mmHg. That is where the Bohr effect pays off.

Textbook vs approximation vs guess

  • TEXTBOOK Directions of every shift; P50 ≈ 26–27 mmHg at pH 7.40 / PCO₂ 40 / 37 °C; SO₂ ≈ 97% at 100 and ≈ 75% at 40 mmHg; Hill n ≈ 2.7 for adult Hb.
  • APPROX Using a single Hill equation for the whole curve (poor below ~20% SO₂). Bohr factor Δlog P50/ΔpH = −0.40 and temperature factor +0.024 log/°C are commonly quoted values. HCO₃⁻ held constant.
  • GUESS The size of the direct CO₂ term (+0.06·log PCO₂/40), the preset values, treating the effects as simply additive, and the 16-site cartoon.
Model notes open

APPROX −0.40 is a commonly quoted fixed-acid Bohr coefficient, for a pH change at a stated PCO₂. A single factor near −0.48 is the other number classes quote, for when carbon dioxide itself caused the pH change and no separate PCO₂ term is added. This bench does not also apply −0.48. That would count carbon dioxide twice. 0.024 per °C is the commonly quoted temperature coefficient, about a 5.7% change in P50 per degree, because 10^0.024 is about 1.057. Far from ordinary blood, constant coefficients and a fixed Hill n are a poor description.

APPROX Some published formulas use the pH inside the red cell, near 7.24 when plasma pH is 7.40, with the same 0.40, 0.06, and 0.024. Moving the zero point from 7.24 to plasma 7.40 is fair only while the plasma-to-red-cell gap stays constant. It does not, exactly. This slider is plasma pH, the number on a blood-gas report. Do not type 7.24 into it as the reference.

TEXTBOOK Not oxygen content in millilitres per decilitre. The readouts are percent saturation from a Hill curve. Content needs a hemoglobin concentration. Dissolved oxygen, the usual classroom figure of about 0.003 mL per dL per mmHg, is left out. Next to ordinary hemoglobin it is a small slice of content.

TEXTBOOK Warming also shifts the curve right, because oxygen binding releases heat. Cooling shifts it left. That thermal effect is drawn here beside the Bohr effect. It is not the Bohr effect.

Model: SO₂ = PO₂ⁿ / (PO₂ⁿ + P50ⁿ), n = 2.7, P50ref = 26.8 mmHg; log P50 = log 26.8 − 0.40·(pH − 7.40) + 0.06·log(PCO₂/40) + 0.024·(T − 37). See README for details.

Ray Peat lens PEAT

How the bioenergetic writer Ray Peat framed CO₂ and the Bohr–Haldane effect. This is a labeled lens set beside the textbook physiology. It does not change the model, sliders or numbers above. Quotes are verbatim from a Ray Peat archive and attributed to their archive file. Each card notes where the textbook agrees, where it differs, and what the live curve can and cannot show.

What the live curve is doing now APPROX

ILLUSTRATIVE
P50
–
SO₂ at tissue PO₂ 40
–
SO₂ at lung PO₂ 100
–

Same sliders, same model as above. “CO₂ retained” = tissue, pH 7.30, PCO₂ 50, 37 °C (consistent with HCO₃⁻ ≈ 24 mM). Quote cards that match the current shift are highlighted. ↑ See the curve

In brief PEAT PARAPHRASE · not a quote

In Peat’s view, CO₂ is what makes hemoglobin let go of oxygen where tissues need it. Too much oxygen, or overbreathing, strips CO₂ away. Hemoglobin then holds its oxygen more tightly, vessels constrict, and lactate rises, so a fully saturated blood sample can sit next to poorly oxygenated tissue. Beyond hemoglobin, he treated CO₂ as a protector of proteins, binding amino groups so that glycation and oxidized fats can't, and as a sign of good oxidative metabolism. To him it was a product of healthy energy production, not just exhaust.

Only the hemoglobin part (CO₂/acid → right shift → more unloading) is in the model. Vessel tone, lactate, tissue PO₂ and protein protection are not simulated.

Read this first

  • TRANSCRIPT Interview lines come from a machine-made transcript. Check them against the audio before publishing. “Borre” in the transcript means Bohr.
  • This is a research library, not a protocol. Nothing here is a breathing, oxygen or treatment recommendation. Not medical advice.
  • A capillary line that the transcript tags as the interviewer’s is left out on purpose until someone confirms who said it.
  • Tags: PEAT his words or view · TEXTBOOK standard physiology · APPROX model simplification · GUESS illustrative choice.

Bohr and Haldane, in his words

Haldane effect: Oxygen displaces carbon dioxide from hemoglobin, in proportion to its partial (specific) pressure.
PEAT chadnet/altitude-and-mortality.md (2006)

TEXTBOOK Agrees: oxygenated Hb carries less CO₂ and H⁺ (the Haldane effect). The model above shows only the Bohr direction, not Haldane.

Bohr effect: Carbon dioxide (or acidity) displaces oxygen from hemoglobin.
PEAT chadnet/altitude-and-mortality.md (2006)

TEXTBOOK Same direction as the sliders: raise PCO₂ or lower pH and the curve shifts right.

The Haldane-Bohr effect describes the fact that oxygen and carbon dioxide destabilize each other’s binding to hemoglobin. When oxygen pressure is high, the blood releases its carbon dioxide more easily. In stormy weather, or at high altitude, the lower oxygen pressure allows the body to retain more carbon dioxide.
PEAT chadnet/altitude-and-mortality.md (2006)

TEXTBOOK The two-way coupling is standard. Contrast on altitude: the standard account is that on arrival, hypoxic drive increases breathing and lowers arterial PCO₂ (left-shifting). Over days, 2,3-BPG rises and the kidneys excrete HCO₃⁻, partly correcting pH. “Retaining more CO₂ at altitude” is Peat’s reading. Compare it with the textbook before relying on it.

The Bohr-Haldane effect describes the fact that hemoglobin releases oxygen in the presence of carbon dioxide, and releases carbon dioxide in the presence of oxygen. When oxygen is too abundant, it makes breathing more difficult, and one of its effects is to cause carbon dioxide to be lost rapidly. At high altitude, more carbon dioxide is retained, and this makes cellular respiration more efficient.
PEAT chadnet/the-transparency-of-life-cataracts-as-a-model-of-age-related-disease.md

TEXTBOOK The first sentence matches the textbook. The claims about oxygen excess, altitude and efficiency are PEAT interpretation. See the altitude contrast above. They are not modeled.

CO₂ and oxygen unloading

Carbon dioxide, produced in the cells, releases oxygen into the tissues, relaxes blood vessels, prevents edema, eliminates ammonia, and increases the efficiency of oxidative metabolism.
PEAT chadnet/altitude-and-mortality.md (2006)

TEXTBOOK Releasing O₂ in tissue (Bohr) is textbook, and CO₂ dilates vessels in most systemic beds, notably the brain. The model shows only the O₂-release part. The claims about edema, ammonia and efficiency are PEAT and are not modeled.

At high altitude, the slight tendency toward carbon dioxide-retention acidosis decreases the blood’s affinity for oxygen, making it more available to the tissues.
PEAT chadnet/altitude-and-mortality.md (2006)

TEXTBOOK The mechanism (acidosis → lower affinity → more unloading) is exactly what the pH slider does. The premise that altitude causes CO₂ retention differs from the textbook; see the altitude contrast in the “Bohr and Haldane” card.

The loss of carbon dioxide from the lungs in the presence of high oxygen pressure, the shift toward alkalosis, by the Bohr-Haldane effect increases the blood’s affinity for oxygen, and restricts its delivery to the tissues, but because of the abundance of oxygen in the lungs, the blood is almost completely saturated with oxygen.
PEAT chadnet/altitude-and-mortality.md (2006)

TEXTBOOK The model shows this directly. Press Overbreathing: SO₂ at PO₂ 100 barely moves because the curve is flat there, but at PO₂ 40 Hb keeps noticeably more O₂.

Breathing pure oxygen lowers the oxygen content of tissues; breathing rarefied air, or air with carbon dioxide, oxygenates and energizes the tissues; if this seems upside down, it's because medical physiology has been taught upside down.
PEAT chadnet/altitude-and-mortality.md (2006) · article headline

TEXTBOOK contrast: mainstream physiology holds that breathing O₂ usually raises tissue PO₂, while noting that hyperoxia and hypocapnia can constrict some vessels. The blanket claim is Peat’s and goes against the consensus. The model cannot test it, because it has no tissue PO₂ or blood flow.

If you're not using the oxygen, it doesn't do you any good to have your hemoglobin saturated if you're not using it.
PEAT TRANSCRIPT · check audio interviews/kmud-100716-altitude.md [Dr. Peat], on oximeters

TEXTBOOK A pulse oximeter reports arterial SO₂ only. It does not measure O₂ delivery to tissue or O₂ use.

Overbreathing and lactate

Hyperventilation, breathing excessively and causing too much carbon dioxide to be lost, is similar to being in the presence of too much oxygen…
PEAT chadnet/altitude-and-mortality.md (2006)

TEXTBOOK Hyperventilation → low PCO₂ → alkalosis → left shift. Try Overbreathing (pH 7.60, PCO₂ 25). Equating it with “too much oxygen” is PEAT framing.

Carbon dioxide inhibits the production of lactic acid, and lactic acid lowers carbon dioxide's concentration in a variety of ways.
PEAT chadnet/altitude-and-mortality.md (2006)

APPROX Not modeled. Note that in this model any fall in pH, including one from lactic acid, shifts the curve right. With the link on, moving the pH slider is treated as exactly that kind of metabolic acid change.

CO₂ beyond hemoglobin NOT SIMULATED

CO₂ binding to the N-terminal amino groups of hemoglobin (carbamino) is TEXTBOOK. Extending that binding to proteins in general, and its role against glycation, oxidized fats and aging, is PEAT and is not established physiology.

The Haldane-Borre effect applies to proteins in general. When there's a lot of carbon dioxide, it basically changes the pH or the isoelectric point of the protein, making it less accessible to oxygen. And that in itself is a protection against the attack of oxygen against proteins.
PEAT TRANSCRIPT · check audio · “Borre” = Bohr interviews/kmud-100716-altitude.md [Dr. Peat]
any amino group in your body, whether it's on your DNA or your enzymes or the so-called hormone receptors… when there's enough carbon dioxide, it will stick to those groups. And in the absence of carbon dioxide, other stuff will stick to those, such as glycation… So everything in your body is different when it's well saturated with CO2.
PEAT TRANSCRIPT · check audio interviews/kmud-100716-altitude.md [Dr. Peat]

On the heart, CO₂

makes the oxygen go to the right places in the heart… the electrons go directly to the oxygen down the electron transport chain, and the electrons are prevented from deviating and getting off and attacking the polyunsaturated fats.
PEAT TRANSCRIPT · check audio interviews/kmud-100716-altitude.md [Dr. Peat]
very few biologists recognize its role as a fundamental, universal protective factor.
PEAT chadnet/protective-co2-and-aging.md (2012)
Carbon dioxide has antioxidant effects, and many other stabilizing actions, including protection against hypoxia and the excitatory effects of intracellular calcium and inflammation.
PEAT chadnet/protective-co2-and-aging.md (2012)
Carbon dioxide is commonly thought of as a toxin, because an excess can cause unconsciousness and acidosis. But increasing carbon dioxide doesn’t necessarily cause acidosis, and acidosis caused by carbon dioxide isn’t as harmful as lactic acidosis.
PEAT chadnet/protective-co2-and-aging.md (2012)

TEXTBOOK Hypercapnia is dangerous in excess, as the quote itself says. With fixed HCO₃⁻ (link on), raising PCO₂ in this model does lower pH. Renal compensation, which would raise HCO₃⁻ over days, is not modeled.