Henderson-Hasselbalch Simulator Back
Chemistry Simulator

Henderson-Hasselbalch Simulator — Buffer pH

Visualize the pH of a buffer made of a weak acid and its conjugate base using the Henderson-Hasselbalch equation. Tweak pKa, total concentration, conjugate-base fraction, and added strong acid or base, and watch the buffer capacity and titration curve respond.

Parameters
pKa
Total concentration C
mol/L
Conjugate-base fraction α
Added strong base Δ (negative for acid)
mmol

Buffer volume is fixed at 1 L. Positive Δ adds a strong base such as NaOH; negative Δ adds a strong acid such as HCl.

Results
pH
[A−]/[HA] actual
Buffer capacity β
Effective buffer range
Titration curve (pH vs Δ)

x = added strong base Δ (mmol, negative for acid) / y = pH / solid = pH curve, faint = pKa, dashed = pKa±1 effective range, yellow dot = current Δ

Fraction distribution (HA and A− vs pH)

x = pH / y = fraction (0–1) / blue = HA, orange = A− / yellow vertical = current pH, faint vertical = pKa

Theory & Key Formulas

When a weak acid HA coexists with its conjugate base A−, the pH is set by their concentration ratio and the acid-dissociation pKa. This is the Henderson-Hasselbalch equation.

Buffer pH ($[\mathrm{HA}]$ and $[\mathrm{A}^-]$ are actual concentrations):

$$\mathrm{pH} = \mathrm{p}K_a + \log_{10}\!\frac{[\mathrm{A}^-]}{[\mathrm{HA}]}$$

Mole amounts after adding $\Delta$ mol of strong base (volume 1 L):

$$n_{\mathrm{HA}}' = C(1-\alpha) - \Delta,\qquad n_{\mathrm{A}^-}' = C\alpha + \Delta$$

Van Slyke buffer capacity (simplified):

$$\beta = 2.303\,C\,\alpha(1-\alpha)$$

$\alpha$ is the conjugate-base fraction and $C$ is the total concentration in mol/L. $\beta$ peaks at $0.576\,C$ when $\alpha = 0.5$, and the effective range is $\mathrm{p}K_a \pm 1$. The buffer breaks when either $n_{\mathrm{HA}}'$ or $n_{\mathrm{A}^-}'$ falls to zero.

What is the Henderson-Hasselbalch Simulator

🙋
I keep hearing that a buffer barely changes pH whether you add acid or base. How does that actually work?
🎓
Because both the weak acid HA and its conjugate base A− are present in large amounts. Adding strong acid? A− grabs the extra H⁺ and turns into HA. Adding strong base? HA gives up an H⁺ and becomes A−. Either way the pair "absorbs" the disturbance, so the free H⁺ — and therefore the pH — barely moves. The Henderson-Hasselbalch equation $\mathrm{pH} = \mathrm{p}K_a + \log_{10}([\mathrm{A}^-]/[\mathrm{HA}])$ summarizes this in one line.
🙋
When I set α to 0.5 in the simulator above, the pH lines up exactly with pKa.
🎓
Right. With $[\mathrm{A}^-]/[\mathrm{HA}] = 1$, the log term is zero, so pH equals pKa. The default pKa = 4.76 is acetic acid (CH₃COOH), which corresponds to mixing equal moles of acetic acid and sodium acetate. Standard biochemistry buffers — phosphate, Tris, HEPES — are all designed to be used near their own pKa.
🙋
If I push the Δ slider far enough, the pH suddenly jumps.
🎓
That is the buffer breaking. With α = 0.5 and C = 0.1 mol/L in 1 L, you have 50 mmol each of HA and A−. Adding Δ = +50 mmol of strong base completely consumes HA, so anything beyond that has nothing to absorb. You will see the titration curve turn vertical right around 50 mmol — the equivalence point.
🙋
What is "buffer capacity β" exactly?
🎓
It is the amount of strong acid or base needed to shift the pH by one unit. Van Slyke's expression $\beta = 2.303\,C\,\alpha(1-\alpha)$ peaks at α = 0.5 and falls to nearly zero as α heads toward 0 or 1. That is exactly why "buffer near the pKa" and "pick an acid whose pKa is close to your target pH" are golden rules. On the lower fraction-distribution chart, the band where HA and A− coexist in roughly equal amounts (pKa ± 1) is what we call the effective buffer range.

FAQ

As a rule, pick the acid whose pKa is closest to your target pH. For pH ≈ 7, phosphate (pKa2 = 7.21) and HEPES (pKa = 7.55) work well. For pH ≈ 4 use acetic acid (4.76) or lactic acid (3.86); for pH ≈ 9 use carbonate (pKa2 = 10.33) or Tris (8.07). Stay within ±1 pH unit of the chosen pKa, because buffer capacity falls off rapidly outside that band.
Buffer capacity β scales linearly with C, so a stronger buffer needs a higher concentration. Biochemistry typically uses 50–100 mmol/L; very sensitive assays such as PCR or enzyme kinetics might drop to 10–25 mmol/L. Going too high raises ionic strength and can disturb proteins or cells, so pick the lowest concentration that still gives the capacity you need.
Yes, because pKa depends on temperature. Tris is famously temperature-sensitive — a Tris buffer at pH 8.0 at 25°C drifts to about pH 8.6 at 4°C. Phosphate-buffered saline (PBS) is preferred for cold-room work because its pKa is much less temperature-dependent. Always calibrate the pH meter at the temperature you actually use.
Absolutely — it is fundamental in pharmacology. Most drugs are weak acids or bases, and the ionized-to-neutral ratio is set by pH and pKa. Neutral species are more lipophilic and cross membranes more easily, so the equation predicts where in the body (stomach pH 1.5, small intestine 6.5, blood 7.4) a drug is best absorbed or distributed. Aspirin (pKa = 3.5) being absorbed mainly in the acidic stomach is the classic textbook case.

Real-world applications

Buffers for biochemistry and molecular biology: Almost every biochemistry experiment — enzyme assays, protein purification, PCR, cell culture — relies on a buffer. The "Good buffers" (Tris, HEPES, MES, PIPES) were chosen specifically so that their pKa sits near neutrality and they barely interact with biomolecules. Sliding the pKa control in this simulator effectively translates the buffering range along the pH axis, exactly mirroring how researchers swap reagents to hit a different pH.

pH regulation in blood and body fluids: Blood pH (7.35–7.45) is held tight by phosphate, proteins, and especially the carbonate / bicarbonate system (CO₂/HCO₃⁻, pKa1 ≈ 6.1). Clinical evaluation of acidosis or alkalosis uses an applied form of Henderson-Hasselbalch — pH = 6.1 + log([HCO₃⁻]/(0.03·PCO₂)) — that is built directly into blood-gas analyzers. A literally life-sustaining equation.

Pharmaceuticals and ADME: Solubility, absorption, distribution, metabolism, and excretion of an oral drug all depend on the pH environment of the gut, blood, and intracellular space versus the drug's pKa. Pre-clinical evaluation builds a pH–solubility profile from Henderson-Hasselbalch as the foundation for formulation, controlled release, and enteric coatings.

Water and environmental engineering: The pH stability of rivers, lakes, and oceans is ruled by the carbonate / bicarbonate system (alkalinity). Acid-rain impact studies and wastewater pH control evaluate how much capacity β remains against incoming H⁺ or OH⁻ loads. Even ocean acidification analyses use the same equation to ask how long seawater can keep absorbing CO₂ without a damaging pH shift.

Common misconceptions and caveats

The most common misconception is to treat Henderson-Hasselbalch as a universal equation that always holds for any buffer. In reality it relies on several approximations: (1) the weak acid is only weakly dissociated (pH not too far from pKa), (2) concentrations are not extremely dilute (well above 10⁻³ mol/L), (3) ionic-strength effects are negligible, and (4) water self-ionization (10⁻⁷ M) can be ignored. At extreme pH or in very dilute solutions you must solve the full mass and charge balances numerically. Treat textbook Henderson-Hasselbalch for what it is — a useful simplification.

Another frequent mistake is to assume the buffer still works far from the pKa. Set α to 0.05 or 0.95 in the simulator and nudge the Δ slider just slightly: the pH leaps. That is exactly because Van Slyke's $\beta = 2.303\,C\,\alpha(1-\alpha)$ collapses toward zero as α tends to 0 or 1. In practice the acid/conjugate-base mixing ratio is chosen so that the prepared pH is not too far from the target pH.

Finally, it is dangerous to think a buffer "fixes" the pH absolutely. The equation only says that small additions of strong acid or base produce only small pH changes — it does not promise unlimited capacity. As Δ approaches ±50 mmol the curve goes nearly vertical, and finally one of HA or A− is consumed and the buffer enters a "broken" state. That maximum tolerable load is called buffer capacity (sometimes "buffer reserve") and is distinct from the differential β. In design you size the buffer with several times the worst-case disturbance as a safety margin.