TL;DR — The equation you learned ignores half the chemistry. That’s why you titrate.
You calculate a 50 mM phosphate buffer for pH 7.4. You make it. The meter reads 7.2. You reach for the acid.
Sound familiar? Usually it’s not your pipetting. It’s your equation.
The shortcut that lies
Henderson–Hasselbalch assumes:
- one buffering species with one pKa
- ionic strength doesn’t matter
Real buffers break both rules.
What actually moves your pH
- Multiple pKas. Phosphate has three. Citrate has three. One pKa can’t describe them.
- Ionic strength. Salt and buffer ions shift the effective pKa. Add 100 mM NaCl and the pH moves — H–H never sees it.
So the textbook number is right for a textbook buffer, and wrong for yours.
The fix: model the whole system
Solve it from first principles — every dissociation step, mass balance, and charge balance, with a Debye–Hückel correction for ionic strength. Now the prediction matches the meter.
(One caveat: that correction holds to ~0.4 M ionic strength. Past that, all bets — and predictions — are off.)
Bottom line
If your calc and your meter disagree, the chemistry isn’t broken. Your equation is just too simple.