What the Henderson-Hasselbalch equation is for
The Henderson-Hasselbalch equation relates the pH of a buffer solution to the ratio of its conjugate base and weak acid concentrations. Buffers resist pH change when small amounts of acid or base are added, which makes them essential in biochemistry (blood pH regulation), molecular biology (keeping enzymes and reactions at a stable pH), and analytical chemistry (preparing solutions at a known, stable pH for lab work). This calculator handles the equation in both directions and a few practical variations: finding pH from known concentrations, finding the required ratio for a target pH, back-calculating an unknown pKa, splitting a total concentration into acid/base amounts, and estimating a buffer's effective range.
Use the buffer system dropdown to auto-fill the pKa for common lab buffers (acetate, phosphate, carbonate, Tris, HEPES, MOPS, ammonia, and citrate at various pKa values) instead of looking them up separately. Switch the "Calculate" dropdown to match what you're solving for — the calculator enables only the input fields relevant to that mode.
The formula and what each variable means
pH = pKa + log₁₀([A⁻] / [HA])
Where pKa is the acid dissociation constant of the weak acid (a fixed property of the acid, indicating its strength), [A⁻] is the molar concentration of the conjugate base (the deprotonated form), and [HA] is the molar concentration of the weak acid (the protonated form). When [A⁻] equals [HA], the ratio is 1 and log₁₀(1) = 0, so pH = pKa exactly — this is the buffer's most resistant point. The calculator also applies the "pKa ± 1" rule of thumb for effective buffering range: a buffer meaningfully resists pH change only within about one pH unit of its pKa, because outside that range one component becomes too scarce to neutralize added acid or base.
Worked example
An acetate buffer (pKa = 4.76) with [HA] = 0.1 M acetic acid and [A⁻] = 0.2 M acetate: ratio = 0.2 ÷ 0.1 = 2.0. pH = 4.76 + log₁₀(2.0) = 4.76 + 0.301 = 5.061. Selecting "Buffer pH" mode, choosing the Acetate preset (auto-filling pKa = 4.76), and entering [HA]=0.1 and [A⁻]=0.2 reproduces this exactly: "pH = 5.0610, [A⁻]/[HA] = 2.0000, Buffer capacity: 0.1535 M". Switching to "Effective Buffer Range" mode with the same pKa gives a usable range of pH 3.76 to 5.76 (pKa ± 1).
Common mistakes and how to interpret the result
- Using pKa when you meant Ka, or vice versa. pKa = −log₁₀(Ka); a small Ka (weak acid, little dissociation) corresponds to a larger pKa. Double-check which value a reference table is giving you before entering it.
- Ignoring the pKa ± 1 effective range. A buffer calculated to hit an exact target pH far from its pKa (say, more than 1-1.5 units away) will have very little actual buffering capacity, even though the math still produces a valid-looking answer.
- Assuming ideal behavior at high concentrations. The Henderson-Hasselbalch equation assumes ideal dilute solutions; at high ionic strength, activity coefficients diverge from concentration, and real measured pH can differ from the calculated value.
- Mixing up [A⁻] and [HA] in the ratio. Swapping which concentration is the acid and which is the base flips the sign of the log term, shifting the calculated pH away from pKa in the wrong direction — label your two solutions carefully before entering concentrations.