Physiological buffers: beyond Henderson-Hasselbalch
Arterial blood pH is 7.40 with a normal range of 7.35-7.45. That is a 30% deviation window on [H⁺] — one of the tightest homeostatic setpoints in the human body, and one of the few where a persistent 0.4-unit deviation is lethal. The system that holds pH inside this window is three buffers working in parallel, coupled to two organs (lungs and kidneys) that continuously adjust the buffer components. This guide extends Henderson-Hasselbalch from a bench-chemistry equation into the physiological engine that keeps you alive.
Before reading further, be comfortable with Henderson-Hasselbalch and pKa. If you are not, reading titration curves is the closest primer, and the buffer calculator drills the arithmetic.
The three buffers, ranked by capacity
Physiological buffering has three main players, each occupying a different niche:
1. Bicarbonate (CO₂ / HCO₃⁻) — the dominant extracellular buffer. pKa of carbonic acid = 6.10 at 37 °C. This looks like a bad match for pH 7.4 (buffers work best within ±1 unit of pKa), but the system compensates by not being at equilibrium — CO₂ is continuously exhaled by the lungs and HCO₃⁻ is continuously reabsorbed by the kidneys. The concentrations are maintained at [HCO₃⁻] = 24 mM and [CO₂] = 1.2 mM (partial pressure 40 mmHg × 0.03 solubility), a ratio of 20:1.
2. Phosphate (H₂PO₄⁻ / HPO₄²⁻) — the intracellular workhorse. pKa = 6.86. Ideal match for cytoplasmic pH ~7.2 (working ratio ≈ 2:1). Bicarbonate buffers most extracellular fluid; phosphate does most of the intracellular work because phosphate esters (ATP, sugar phosphates) are abundant and each carries a titratable proton at that pKa.
3. Proteins (histidine imidazole side chains, hemoglobin especially) — the fast-response buffer. Histidine’s imidazole has pKa ≈ 6.0-7.0 depending on local environment (Lehninger 7e §5.3), making it the only common amino-acid side chain that titrates near physiological pH. Hemoglobin is the largest single reservoir of histidines in the body, and its buffering capacity in red blood cells is comparable to that of plasma bicarbonate. Proteins are also the “instant” buffer — they neutralize proton fluxes on the millisecond timescale before bicarbonate can adjust.
Total buffering capacity of blood is the sum of all three, and the three work in coordinated shifts: proteins buffer transients, bicarbonate handles steady-state loads, and phosphate manages the cytoplasm.
The bicarbonate system, written out
The full bicarbonate equilibrium is a chain of three linked reactions:
Because dissolved CO₂ and H₂CO₃ interconvert rapidly (K ≈ 400 in favor of CO₂), and because H₂CO₃ is a fictional intermediate on physiological timescales, biochemists lump them and use an effective pKa referred to [CO₂]:
where P_CO₂ is in mmHg and 0.03 mM/mmHg is the solubility coefficient at 37 °C (Boron & Boulpaep Ch. 28). At physiological values (P_CO₂ = 40 mmHg, [HCO₃⁻] = 24 mM):
The 20:1 ratio is the setpoint. Any deviation of pH from 7.40 corresponds to a deviation of this ratio from 20, and the body responds by adjusting either the numerator (kidney → change [HCO₃⁻]) or the denominator (lungs → change P_CO₂). This is the “open” nature of the bicarbonate system: unlike a bench buffer, its components are continuously replenished and voided.
Worked example — acute respiratory acidosis
- Normal
- pH 7.40, P_CO2 = 40 mmHg, [HCO3-] = 24 mM
- New P_CO2
- 60 mmHg (retained CO2 from hypoventilation)
- New [HCO3-]
- 26 mM (small acute compensation from RBC buffering)
- pKa effective
- 6.10 (Boron & Boulpaep Ch. 28)
- Formula
- Substitute
- Note
Retained CO2 shifts the equilibrium toward H2CO3 -> H+ + HCO3-. Without any compensation, doubling P_CO2 from 40 to 80 would drop pH by log10(2) = 0.30 units, from 7.40 to 7.10. Here P_CO2 goes to 60, and red blood cell hemoglobin buffering absorbs some protons and produces a little more HCO3- (Hamburger shift), bringing [HCO3-] from 24 to about 26 mM. Applying Henderson-Hasselbalch: pH = 6.10 + log10(26 / (0.03 x 60)) = 6.10 + log10(26/1.8) = 6.10 + log10(14.4) = 6.10 + 1.16 = 7.26. A pH of 7.26 with elevated P_CO2 defines acute respiratory acidosis. Chronic compensation, if the hypoventilation persists, comes from the kidneys retaining bicarbonate over 24-72 hours to restore the 20:1 ratio at the new (higher) P_CO2 - pH returns toward 7.35. This is the clinical distinction between acute and chronic respiratory acidosis, and it is the reason arterial blood gases are read as a pair (pH + P_CO2 + [HCO3-]).
- Result
Buffer capacity β and why 20:1 is not a fluke
Buffer capacity β is the moles of strong acid or base needed to change 1 L of solution by 1 pH unit. For a monoprotic buffer of total concentration C, β is maximal at pH = pKa (where [HA] = [A⁻]) and falls off symmetrically on either side. The formula (Berg 9e §2.4):
At pH = pKa, [HA][A⁻] / ([HA]+[A⁻]) = C/4, so β_max = 2.303 × C × C/4 = 0.576 C. Half a pH unit off (pH = pKa ± 0.5), β drops to about half of β_max. One full pH unit off, it drops to about 12% of β_max.
By that criterion, bicarbonate’s 1.3-unit offset from pKa (6.10 → 7.40) makes it a poor buffer in the closed-system sense. But the bicarbonate system is open — CO₂ escapes and is replenished, HCO₃⁻ is reabsorbed and voided — and its open-system buffer capacity is much larger than the closed-system β because the buffer components are effectively unlimited. Boron & Boulpaep Ch. 28 has the derivation that shows open-system bicarbonate buffers about 6× more effectively than a closed-system calculation predicts.
The three-compartment picture
Biochemists rarely think about pH as a single number. Every compartment has its own pH and its own buffer:
- Arterial blood: pH 7.40, buffered mainly by bicarbonate.
- Venous blood: pH 7.36 (slightly lower — retains more CO₂ from tissue).
- Cytoplasm: pH 7.0-7.4 depending on cell type, buffered mainly by phosphate + proteins.
- Mitochondrial matrix: pH 7.8-8.0, kept high by proton pumping (this is the whole basis of ATP synthesis — the proton gradient across the inner membrane).
- Lysosome: pH 4.5-5.0, kept low by V-type ATPase proton pumps. Only acid-stable enzymes (cathepsins) work there.
- Stomach lumen: pH 1-2, essentially unbuffered.
The stomach illustrates the flip side: sometimes buffering is undesirable. Gastric acid must reach pH 1-2 to activate pepsin and denature bacterial proteins, so parietal cells pump HCl into a compartment specifically excluded from bicarbonate access.
Common clinical shorthand
Arterial blood gas (ABG) values give pH, P_CO₂, and [HCO₃⁻]. The four disturbances and their signatures:
| Disturbance | pH | P_CO₂ | [HCO₃⁻] |
|---|---|---|---|
| Respiratory acidosis | ↓ | ↑ | ↑ (compensation) |
| Respiratory alkalosis | ↑ | ↓ | ↓ (compensation) |
| Metabolic acidosis | ↓ | ↓ (compensation) | ↓ |
| Metabolic alkalosis | ↑ | ↑ (compensation) | ↑ |
The “respiratory vs metabolic” label refers to what changed first: P_CO₂ (respiratory) or [HCO₃⁻] (metabolic). Compensation goes the other way. If both change in the direction that pushes pH one way (e.g., P_CO₂ up AND [HCO₃⁻] down), the disturbance is mixed, and both organ systems are failing to compensate.
Practice problems
Problem 1 Easy Given P_CO2 = 40 mmHg and [HCO3-] = 12 mM, compute arterial pH.
Answer: pH = 6.10 + log10(12 / (0.03 x 40)) = 6.10 + log10(12/1.2) = 6.10 + 1.00 = 7.10. A severe metabolic acidosis — half the normal [HCO3-]. Could be diabetic ketoacidosis, lactic acidosis, or renal failure.
Problem 2 Intermediate A patient with severe pneumonia has pH 7.28, P_CO2 = 55 mmHg, [HCO3-] = 25 mM. Classify.
Answer: pH low (acidosis). P_CO2 high (respiratory cause). [HCO3-] roughly normal or slightly elevated (early acute compensation not yet developed). Classification: acute respiratory acidosis. Consistent with impaired ventilation from pneumonia — CO2 accumulates before the kidney can reabsorb bicarbonate.
Problem 3 Hard A marathon runner at hour 3 has pH 7.30, P_CO2 = 30 mmHg, [HCO3-] = 14 mM. What is happening?
Answer: pH low (acidosis). [HCO3-] low (metabolic cause — lactic acid from anaerobic metabolism consumed bicarbonate). P_CO2 low (respiratory compensation — hyperventilation drives off CO2 to restore the 20:1 ratio). Classification: partially compensated metabolic acidosis. This is the physiological signature of endurance exercise plus anaerobic threshold.
Where to go next
- The pH calculator works for any weak-acid system and can help you sanity-check ABG numbers against Henderson-Hasselbalch.
- The buffer calculator generates buffer recipes for common biological buffers (phosphate, HEPES, TRIS) with real pKa values at 25 C — for 37 C physiology, add a ΔpKa correction from the buffer cheatsheet.
- The buffer cheatsheet has the temperature dependencies and useful pH ranges for the twenty most common biology-lab buffers.
- For the deeper chemistry, reading titration curves covers the general analytical principles that the physiological system inherits.
Physiological buffering is not different chemistry from bench buffering — it is the same chemistry with two adjustable knobs (lungs, kidneys) and a wide margin for how far off pKa the operating point can sit. The 20:1 ratio is not a chemical accident; it is the setpoint the two organs regulate around, and its stability is what “healthy” means for anyone measuring an ABG.
Sources
- Nelson & Cox, Lehninger Principles of Biochemistry, 7th ed. (2017), §2.3 — Buffering against pH changes in biological systems
- Berg, Tymoczko, Gatto & Stryer, Biochemistry, 9th ed. (2019), §2.4
- Boron & Boulpaep, Medical Physiology, 3rd ed. (2016), Ch. 28 — Acid-base physiology
- Guyton & Hall, Textbook of Medical Physiology, 14th ed. (2020), Ch. 31
- West's Respiratory Physiology, 11th ed. (2020), Ch. 6
- L. J. Henderson (1908), Am. J. Physiol. 21, 173 — Original bicarbonate buffer equation