[H⁺] − [OH⁻] + Σ C~i~ · (f~i~ − n̄~i~(pH)) = 0
Titration curves
Simulate acid–base titration curves exactly for strong, weak, polyprotic, and mixed acids and bases, find equivalence and half-equivalence points and buffer regions, choose an indicator by titration error, and analyse your own pH-meter data by derivative and Gran plots.
Added
How to use it
Set up. Pick the analyte in the flask (concentration and volume), an optional second analyte for a mixture, and the titrant in the burette. Examples cover phosphoric, citric, EDTA, carbonate, ammonia, glycine, and an HCl + acetic acid mixture. A custom species takes its pKa values and how many protons the form you add has already lost (0 for the free acid; 2 for Na₂CO₃ or Na₂H₂Y).
How pH is calculated. No approximations: every point solves the charge (proton) balance
where Ci is each species' diluted concentration, fi the protons its added form has lost (strong acids count −1 per H⁺, strong bases +1 per OH⁻), and n̄i the mean number of protons lost at that pH from the fractions α0…αn. The balance is monotonic in pH, so bisection always converges, through every buffer region and every equivalence point. pKw follows temperature (14.00 at 25 °C, 13.62 at 37 °C). The curve is refined automatically where pH changes quickly.
Reading the curve. Filled dots are equivalence points, from the stoichiometry; hollow dots are half-equivalence points, where pH ≈ pKa for a weak, not-too-dilute acid. Shaded bands are buffer regions (pKa ± 1). The table rates each step by its pH jump across ±1 % of the equivalence volume — under about 0.3 it cannot be seen (the third proton of phosphoric acid, for example). The derivative curves (right axis) peak (first) or cross zero (second) at the end points. Mixtures use the derivative peaks.
Speciation and buffering. The fraction of each protonation state against pH, the concentration of every form at a chosen volume, and the buffer capacity β = ln 10 · ([H⁺] + [OH⁻] + Σ C·var(n)).
Indicators. For each equivalence point, every indicator is ranked by the titration error at the middle of its colour change. Thirteen common indicators; colour ranges from the CRC Handbook.
Measured data. Paste or open a CSV of volume and pH. The end point comes from the maximum of dpH/dV (parabolic interpolation), the zero of d²pH/dV², and a Gran plot (V·10⁻ᵖᴴ against V for a weak acid, whose slope also gives Ka). Overlay the data on the simulated curve to compare.
Full screen. ⛶ Full screen (or F) gives the open tab’s main plot (the titration curve, the speciation plot, the
indicator ranges or your measured data) the whole screen, with the setup moved below it — the browser’s full screen where it
is allowed, otherwise a full-window layer (iPhone). The plot is redrawn as the window changes, and ◫ Panels hides the setup.
Escape leaves.
Data. pKa values at 25 °C and zero ionic strength from the CRC Handbook of Chemistry and Physics and Harris, Quantitative Chemical Analysis. Activity coefficients are not modelled, so real curves sit slightly lower at high ionic strength; dissolved CO₂ from air is ignored. For preparing solutions and buffers use the solutions tool; for formulas and molar masses, the chemistry tool.
| For learning and planning. Standardise titrants and check end points against your lab’s validated methods. |
Feedback is a gift. Something to improve, a feature to add, or a bug? Tell me.
Runs entirely in your browser; nothing you type leaves this page.