Titration Curve Calculator: pH, Volume & Indicator Choice
Simulate strong, weak and diprotic acid–base titrations drop by drop. Find equivalence points, compare indicators and infer concentration from an endpoint.
Use this titration curve calculator to follow the pH of an aqueous sample as a strong acid or base is added. It is useful for chemistry students checking calculations, laboratory staff comparing indicators, and engineers exploring neutralization before a bench test. Choose a strong monoprotic acid, a weak monoprotic acid, a strong monobasic base, a weak monobasic base, or a diprotic acid. The titrant always supplies one equivalent of strong acid or base per mole.
Enter the sample volume and concentration, then the titrant concentration. For weak species, enter the appropriate pKa or pKb at 25 °C. The defaults represent 25 mL of 0.100 mol/L acetic acid titrated with 0.100 mol/L sodium hydroxide. The diprotic defaults represent a closed carbonic-acid system; change both dissociation constants for another acid. All concentrations refer to moles of the original sample compound, rather than equivalents.
Set the burette volume to inspect a point, or reset it to zero and press ▶ to add titrant. The flask changes colour and the bold part of the curve grows as drops are delivered. The delivered volume rounds down to complete drops, with a final partial drop at the playback stop. Reduce the drop volume to inspect a narrow pH jump. The liquid level and colour are schematic, and mixing is assumed instantaneous.
The equivalence point calculator uses reaction stoichiometry. A monoprotic sample has one equivalence volume; a diprotic acid has points at one and two equivalents of added base. Their pH values come from equilibrium, so equivalence does not always mean pH 7. The key-points table also gives half-neutralization values. For a well-behaved weak conjugate pair these approach pKa, or 14 − pKb for a base. Green bands mark pKa ± 1, where adjacent conjugate forms have ratios between 1:10 and 10:1; they do not measure buffer capacity.
Select an indicator to see its transition band against the curve. Compare all four indicators in the table. The percentage is the largest deviation from the selected equivalence volume at either end of the published colour range. The 1% and 5% ratings are screening thresholds, not guarantees of experimental accuracy. In the table, V low and V high are volumes at the lower and upper pH limits; their order reverses for base samples. A dash marks an unavailable boundary, and Outside means the full transition is not crossed. A pH meter is preferable when there is no sharp, suitably placed transition.
To use the titration calculator for an unknown concentration, select the measured-endpoint mode and enter the net titrant volume. For a diprotic acid, identify which equivalence the endpoint represents. This inference assumes the endpoint coincides with that equivalence; indicator bias, blanks and burette uncertainty remain experimental considerations.
The model solves charge balance, dissociation equilibria and water autoionization together at 25 °C. Activity coefficients are ignored: results are ideal dilute-solution estimates. Mixed analytes, initially added salts, weak titrants, gas exchange, precipitation and temperature variation are outside its scope.
How it is calculated
The equilibrium formulation below is derived here from mass conservation, electroneutrality and mass action. OpenStax Chemistry 2e §§14.3, 14.5 and 14.7 provide the equilibrium relations and independent worked examples.
Let , , , , and . Dilution gives . The normalized spectator-ion concentration is .
The mean analyte charge is for a strong monoprotic acid, for a strong monobasic base, for HA, and for B, with . For H₂A:
The solver bisects pH on −2…16 for 46 iterations to satisfy
where for base titrant and −1 for acid titrant. Here at 25 °C. Constants and concentrations use the same standard-state normalization. No Henderson–Hasselbalch approximation or excess-reagent shortcut is used for the reported pH.
Stoichiometry gives and . In endpoint mode . These are molecular concentrations, with or 2.
For each indicator boundary, the same charge balance is solved algebraically for . Boundaries outside the run are left blank. The comparison reports . Merck's attached indicator guide supplies the four transition intervals (pp. 6–8). The full curve is cached independently of burette playback.
Assumptions
- Fixed 25 °C; ; equilibrium reached after each drop.
- Activity coefficients are ignored: concentrations replace activities. Volumes add.
- One initially unsalted analyte: HA, B, H₂A, or a fully dissociated monoprotic acid/monobasic base. Strong titrant contributes one H⁺ or OH⁻ per mole.
- Spectator ions are inert. No precipitation, complexes, gas exchange or indicator loading.
- The carbonic-acid defaults use OpenStax's effective constants in a closed system. An open carbonate sample exchanges CO₂ and needs a different model.
- Flask colours and liquid levels are original schematic illustrations, not optical or vessel-volume predictions. Colour stages follow pH across the supplier's range; exact hues are not calibrated.
- The 1% and 5% indicator ratings are author-selected screening thresholds for the whole transition interval.
Where it applies
Inputs cover 0.000001–0.5 mol/L; concentrations above 0.2 mol/L trigger a dilute-model warning. Activity effects can matter even below that threshold, particularly for multivalent ions. For accurate analytical work use suitable activities, standardized titrant, a validated endpoint and measured uncertainty.
Diprotic pKa₂ must exceed pKa₁. The coupled equations also handle overlapping dissociations, but separate stoichiometric points may not produce distinct jumps. Half-neutralization pH need not equal pKa when water, dilution or overlapping equilibria matter. pKa ± 1 bands show species ratios, not absolute buffering strength.
Burette playback stops at twice the final stoichiometric equivalence volume. The selected volume is rounded down to complete drops, except for the final partial drop. Indicator comparisons use continuous equilibrium volumes, so their resolution can exceed the chosen drop size. A blank transition boundary means it is outside this run.
Endpoint concentration assumes the measured endpoint is the selected equivalence. This is a stoichiometric inference, not a correction for indicator bias or a titration-curve fit. No weak titrants, mixtures, triprotic samples, initially added salts, variable temperature or gas-transfer kinetics are modeled.
References
- OpenStax, Chemistry 2e, §14.7 Acid–Base Titrations, Examples 14.21–14.22 and Table 14.2. https://openstax.org/books/chemistry-2e/pages/14-7-acid-base-titrations
- OpenStax, Chemistry 2e, §14.5 Polyprotic Acids, Example 14.19 (carbonic acid constants and concentrations). https://openstax.org/books/chemistry-2e/pages/14-5-polyprotic-acids
- OpenStax, Chemistry 2e, §4.5 Quantitative Chemical Analysis, Example 4.14 (endpoint concentration). https://openstax.org/books/chemistry-2e/pages/4-5-quantitative-chemical-analysis
- OpenStax, Chemistry 2e, §14.3 Relative Strengths of Acids and Bases (weak-base equilibrium and ammonia example). https://openstax.org/books/chemistry-2e/pages/14-3-relative-strengths-of-acids-and-bases
- Merck / MilliporeSigma, Colorize Your Lab: Reliable indicators for analytical titrations, pp. 6–8. https://www.sigmaaldrich.com/deepweb/assets/sigmaaldrich/marketing/global/documents/106/158/11689en-colorize-your-lab-ms.pdf
Inputs
| Input | Symbol | Unit | Default |
|---|---|---|---|
| Calculation Known concentration predicts a titration curve. Measured endpoint infers the sample concentration from titrant delivery at the selected equivalence. | calc_mode | Known concentration | |
| Sample chemistry Acid models are monoprotic except for H₂A; bases accept one proton per molecule. The diprotic sample starts as H₂A, without added salts. Use a strong titrant supplying one H⁺ or OH⁻ per mole. | system | Weak acid + strong base | |
| Sample volume | V_s | mL | 25 |
| Sample concentration | C_known | mol/L | 0.1 |
| Acid pKa Default: acetic acid, Ka = 1.8 × 10⁻⁵ at 25 °C. Enter −log₁₀(Ka). | pKa | 4.744727494896694 | |
| Base pKb Default: ammonia, Kb = 1.8 × 10⁻⁵ at 25 °C. Enter −log₁₀(Kb). | pKb | 4.744727494896694 | |
| Diprotic pKa₁ Default pair: closed carbonic-acid system, Ka₁ = 4.3 × 10⁻⁷ and Ka₂ = 4.7 × 10⁻¹¹. | pKa_d1 | 6.366531544420414 | |
| Diprotic pKa₂ | pKa_d2 | 10.327902142064282 | |
| Strong titrant concentration | C_t | mol/L | 0.1 |
| Equivalence to assess First: 1 mol OH⁻ per mol H₂A. Second: 2 mol OH⁻ per mol H₂A. Used for indicator comparison and endpoint concentration. Two stoichiometric points do not guarantee two distinct pH jumps. | eq_stage | Second equivalence | |
| Measured endpoint volume Enter the net burette delivery after any blank correction. Concentration assumes this endpoint represents the selected equivalence. | V_endpoint | mL | 25 |
| Indicator | indicator | Phenolphthalein | |
| Volume per drop Illustrative drop size. The delivered volume and pH advance by complete drops; choose a smaller drop for finer resolution. | drop_volume | mL | 0.05 |
| Burette volume — ▶ to add drops Set to zero before playing a full run. Playback stops at twice the final equivalence volume. The result uses complete drops, including a final partial drop at the stop. | V_added | mL | 25 |
Results
With the default inputs above, the calc gives:
| Result | Value |
|---|---|
| Flask pH | 8.722 |
| Delivered titrant | 25 mL |
| Selected equivalence volume | 25 mL |
| pH at selected equivalence | 8.722 |
| Sample concentration | 0.1 mol/L |
| pH at selected half-neutralization | 4.745 |
| Indicator assessment | Within 1%: the full colour range lies close to selected equivalence. |
| Current conjugate-pair region | Outside the pKa ± 1 conjugate-pair bands. |
| Selected indicator transition | Full transition: 24.992–25.031 mL |
| Worst indicator volume deviation (%) | 0.1254 |
Checked against sources
Each case below was calculated by this calc and agrees with the value from its source (within the tolerance where one is shown).
HCl / NaOH equivalence
Source: OpenStax Chemistry 2e §14.7 Example 14.21(c): 25.00 mL 0.100 M HCl + 25.00 mL 0.100 M NaOH; pH 7.00. https://openstax.org/books/chemistry-2e/pages/14-7-acid-base-titrations
Inputs: Sample chemistry = Strong acid + strong base; the others as above.
| Result | Source | This calc |
|---|---|---|
| Flask pH | 7 | 7 |
| Selected equivalence volume | 25 mL | 25 mL |
Acetic acid / NaOH equivalence
Source: OpenStax Chemistry 2e §14.7 Example 14.22(b): 25.00 mL 0.100 M acetic acid, Ka = 1.8e-5, and 25.00 mL 0.100 M NaOH; pH 8.72 (rounded, hydrolysis approximation). https://openstax.org/books/chemistry-2e/pages/14-7-acid-base-titrations
Inputs: the default inputs above.
| Result | Source | This calc |
|---|---|---|
| Flask pH | 8.72 ± 0.01 | 8.722 |
Strong acid: start, half, equivalence and excess titrant
Source: OpenStax Chemistry 2e §14.7 Example 14.21: 25.00 mL 0.100 M HCl, 0.100 M NaOH; 0.00, 12.50, 25.00 and 37.50 mL. Half-stage pH is −log₁₀(0.0333) using the example's stated excess concentration (rounded). https://openstax.org/books/chemistry-2e/pages/14-7-acid-base-titrations
Inputs: Sample chemistry = Strong acid + strong base; Burette volume — ▶ to add drops = 37.5 mL; the others as above.
| Result | Source | This calc |
|---|---|---|
| Initial pH | 1 | 1 |
| pH at selected half-neutralization | 1.477 | 1.477 |
| pH at selected equivalence | 7 | 7 |
| Flask pH | 12.3 | 12.301 |
Acetic acid: initial, half and post-equivalence
Source: OpenStax Chemistry 2e §14.7 Example 14.22: 25.00 mL 0.100 M acetic acid, Ka 1.8e-5, with 0.100 M NaOH; reported pH 2.87 initially, 4.74 at 12.50 mL, and 12.30 at 37.50 mL. The 0.01 tolerance admits textbook rounding and small-ionization approximations. https://openstax.org/books/chemistry-2e/pages/14-7-acid-base-titrations
Inputs: Burette volume — ▶ to add drops = 37.5 mL; the others as above.
| Result | Source | This calc |
|---|---|---|
| Initial pH | 2.87 ± 0.01 | 2.875 |
| pH at selected half-neutralization | 4.74 ± 0.01 | 4.745 |
| Flask pH | 12.3 | 12.301 |
Diprotic carbonic acid: independent equilibrium example
Source: OpenStax Chemistry 2e §14.5 Example 14.19: initial H₂CO₃ = 0.033 M; Ka₁ = 4.3e-7, Ka₂ = 4.7e-11; [H₃O⁺] = 1.2e-4 M (two significant digits, first-step small-ionization approximation). The simultaneous charge balance retains both ionizations; tolerance covers rounding. https://openstax.org/books/chemistry-2e/pages/14-5-polyprotic-acids
Inputs: Sample chemistry = Diprotic acid + strong base; Sample concentration = 0.033 mol/L; Burette volume — ▶ to add drops = 0 mL; the others as above.
| Result | Source | This calc |
|---|---|---|
| Hydronium concentration | 1.2 × 10⁻⁴ ± 2 × 10⁻⁶ mol/L | 1.189 × 10⁻⁴ mol/L |
Weak base: published ammonia hydroxide concentration
Source: OpenStax Chemistry 2e §14.3, Check Your Learning after Example 14.13: 0.0325 M NH₃, Kb=1.76e-5, answer [OH⁻]=7.56e-4 M from the small-ionization approximation. The exact depletion solution is slightly lower; absolute tolerance 1e-5 M covers that approximation without changing the physics. https://openstax.org/books/chemistry-2e/pages/14-3-relative-strengths-of-acids-and-bases
Inputs: Sample chemistry = Weak base + strong acid; Sample concentration = 0.0325 mol/L; Base pKb = 4.754; Burette volume — ▶ to add drops = 0 mL; Indicator = Methyl red; the others as above.
| Result | Source | This calc |
|---|---|---|
| Hydroxide concentration | 7.56 × 10⁻⁴ ± 1 × 10⁻⁵ mol/L | 7.476 × 10⁻⁴ mol/L |
Unknown HCl concentration from a measured endpoint
Source: OpenStax Chemistry 2e §4.5 Example 4.14: 50.00 mL HCl, endpoint 35.23 mL of 0.250 M NaOH, reported HCl molarity 0.176 M. This tests molecular stoichiometry; it is not a validation of ideal-solution pH at 0.250 M. https://openstax.org/books/chemistry-2e/pages/4-5-quantitative-chemical-analysis
Inputs: Calculation = Measured endpoint; Sample chemistry = Strong acid + strong base; Sample volume = 50 mL; Strong titrant concentration = 0.25 mol/L; Measured endpoint volume = 35.23 mL; the others as above.
| Result | Source | This calc |
|---|---|---|
| Sample concentration | 0.176 ± 5 × 10⁻⁴ mol/L | 0.1761 mol/L |
| Selected equivalence volume | 35.23 mL | 35.23 mL |
Supplier phenolphthalein transition range
Source: Merck Colorize Your Lab, p. 8, phenolphthalein indicator ACS / Reag. Ph Eur: pH 8.2–9.8. Checks transfer of supplier data, not the pH method. https://www.sigmaaldrich.com/deepweb/assets/sigmaaldrich/marketing/global/documents/106/158/11689en-colorize-your-lab-ms.pdf
Inputs: the default inputs above.
| Result | Source | This calc |
|---|---|---|
| Selected indicator lower pH limit | 8.2 | 8.2 |
| Selected indicator upper pH limit | 9.8 | 9.8 |







Responses