Science Journaling Club Founded 2024

INTERACTIVE COMPANION · METHODS · EQUILIBRIUM CHEMISTRY

The Titration Bench

A live model accompanying “Where the Textbook Titration Shortcuts Actually Fail”

← Read the full article

The same solver that produced the article runs below, in your browser, one point at a time instead of three and a half million. It takes charge balance and mass balance, throws nothing away, and finds the pH by bisection. Everything it draws is exact to the last bit a double can hold. Everything drawn over it is a shortcut, and the shaded distance between them is the thing this whole study is about.

Model 1. One titration at a time

Set the acid and watch what the approximation does to it. With \(h = [\mathrm{H}^+]\), \(C_A\) the diluted total acid and \(C_B\) the added base, the solver finds the single positive root of

$$C_B + h \;=\; \frac{K_w}{h} \;+\; C_A\,\bar n(h)$$

where \(\bar n(h)\) is the mean number of protons removed per acid molecule. The Henderson-Hasselbalch line is \(\mathrm{p}K_a + \log_{10}\!\big(\varphi/(1-\varphi)\big)\) with nothing else in it. The titrant is at the same concentration as the analyte, so the solution really does dilute as base goes in, exactly as in the article.

worst |error|: occurring at: error at φ = 0.5: exact pH at φ = 0.5:
Worst error is taken over the working buffer window, 0.1 ≤ φ ≤ 0.9, which is the same window the article uses. The solver runs 70 bisection halvings on pH in [−3, 17] for every point it draws.

Model 2. The whole parameter space at once

One titration is an anecdote. The map below is every titration: acid strength up the side, concentration across the bottom, and each cell shaded by how badly the chosen approximation misses somewhere in the buffer window. The pale wedge is the region inside your tolerance. The cross-hairs are wherever you left the sliders in Model 1.

band at this concentration: band width: cells inside tolerance: your cell:
Grid: 57 pKa values by 41 concentrations, each scanned over the buffer window. Shading is by value, in five steps, from just inside tolerance to more than a whole pH unit out.
Default settings
acetic acid, pKa 4.756, 0.1 M, monoprotic
Worst HH error
0.0082 pH, at φ = 0.10
Safe band at 0.1 M
pKa 3.922 to 9.840, width 5.918
Band closes at
about 1.1 × 10−4 M
Half-equivalence pH
4.75646, which is not 4.756

Four things to try

Take the concentration slider down slowly and watch the wedge close from both ends. It meets itself near 10−4 M at a pKa just under 6.9, and the band readout goes to empty. There is no acid below that dilution for which the buffer equation holds across the window, which is a sentence no textbook contains.

Switch the approximation to the square-root formula. It is a horizontal line, because the formula has no \(\varphi\) in it at all, and the exact curve walks away from it immediately. The error map redraws into a completely different shape: a V lying on its side, one arm for acids too strong and the other for solutions so dilute that water is supplying most of the protons.

Set the proton count to 2 and put the gap at 1.43, which is succinic acid. The worst error jumps from 0.0270 to 0.3943, an acid that passes comfortably as a monoprotic and fails badly as itself. Then slide the gap out to 3.02, oxalic acid's spacing, and the second proton stops mattering to four decimal places.

Last one. Put the pKa at exactly 4.756 and read the exact pH at half equivalence. It is 4.75646 rather than 4.756. Now take the concentration down to 10−3 M and read it again: 4.80121. The rule that pH equals pKa at half equivalence is an approximation like all the others, and this is the only place on the page where you can watch it fail on its own terms.

What this model leaves out

Everything about a real solution. All activity coefficients are 1 here, as they are in the article, so this is the pH of an ideal solution and not a reading from an electrode. At 0.1 M the Davies correction moves a half-equivalence point by 0.073 pH, which is nine times acetic acid's worst approximation error, so the honest order of operations is to worry about activity first and about Henderson-Hasselbalch second.

\(K_w\) is fixed at 1.000 × 10−14, which pins the temperature at 25 °C. The vessel is closed, so no atmospheric carbon dioxide dissolves in and slowly ruins the upper end of the curve, which is what actually happens to a burette left standing. And the stepwise constants for the polyprotic settings are treated as independent, which is convention rather than chemistry.