Henderson–Hasselbalch Calculator
Compute buffer pH = pKa + log10([A−]/[HA]). Accepts pKa or Ka. Runs locally. Not ICE equilibrium and not pH = −log10[H+].
Enter values to calculate.
Trust summary CVP VERIFIED · CVP protocol 1.0.0-proposed · Engineering assurance · Buffer pH = pKa + log10(A/HA), with pKa or Ka, + O3 mpmath tabulated buffer pH.
- Input interpretation
- Enter values to calculate.
- Result
- —
- Verified scope
- Buffer pH = pKa + log10(A/HA), with pKa or Ka, + O3 mpmath tabulated buffer pH.
- Assurance
- Engineering
- Declared partition coverage
- PASS · 7/7 declared partitions (alias, ka, awkward, equal, acid, base, invalid-domain) · Matrix
- Deferred
- Not an ICE table and not pH = −log10[H+].
- Numerical scope
- O2: Henderson–Hasselbalch pH vs a separate-module identity (≤2 ULP). Not an ICE table. ≤2 ULP vs O3 applies only to the published tabulated buffer vectors. Not an ICE table.
- Known limitations
- Core CVP does not include live graph, viewport, or pointer interaction.
- Model
- Buffer pH from Henderson–Hasselbalch. pKa may be given directly or as Ka.
- Scope
- Monoprotic buffer; HA and A− are the pair as given
- Verification
- Engine tested · Source checked · v1.0.1 · CVP VERIFIED · CVP protocol 1.0.0-proposed · Engineering assurance · Buffer pH = pKa + log10(A/HA), with pKa or Ka, + O3 mpmath tabulated buffer pH.· View Manifest · CVP overview · Specification
- Versions
- Calculation 1.0.1 · CVP protocol 1.0.0-proposed · Evidence 2026-09-25.o2-o3.2
- Verification revision
- 2026-09-25.o2-o3.2 · 1/1 property · digest 2125ba6d5a14
- Legacy regression
- 11/11 tests · Production surface contract 6/6
- Trust layers
- Verification VERIFIED · Production CURRENT · Overall CVP state: VERIFIED under CVP 1.0.0-proposed
- Reference
- O1 model · O3 expected_values · O3 numerical_behavior · O2 expected_values · O2 numerical_behavior
- Interfaces
- PASS · UI (SSR) / REST / MCP
- Supplemental domain review
- Not performed
- Named expert review
- Not performed
- CVP suite
- 4/4 golden · 5/5 CVP boundary · 5/5 invalid · 1/1 property · 1/1 metamorphic · 8/8 O3 · 2/2 cross-interface · 6/6 CVP contract · Manifest
- Evidence
- 1 legacy golden · 5 legacy boundary · legacy regression suite · 4/4 oracle-backed golden · 5/5 invalid · Artifact integrity PASS
- Semantic contract
- PASS
Full verification
Formulas
Core equations used by this calculator.
How to use
Enter pKa or Ka
Give one acidity encoding. Sending both is rejected.
Enter the buffer pair
[HA] and [A−] must both be greater than zero. Units cancel in the ratio.
Read pH
pH = pKa + log10([A−]/[HA]). Equal concentrations give pH = pKa.
Example calculations
Common configurations with formula and result.
Equal concentrations
pKa=5, [HA]=0.1, [A−]=0.1
Two-to-one conjugate base
pKa=5, [HA]=0.1, [A−]=0.2
Henderson–Hasselbalch calculator specification
Version 1.0.1 · Engine tested
- Engine tested 11/11 tests · Production surface contract 6/6
- Named expert review Not performed
- Calculation version 1.0.1
- Definition
- Henderson–Hasselbalch: pH = pKa + log10([A−]/[HA]). pKa = −log10(Ka). Monoprotic buffer pair as given.
- What it calculates
- Buffer pH from Henderson–Hasselbalch. pKa may be given directly or as Ka.
- Inputs
- pKa | Ka
- HA
- A
- Outputs
- pH
- pKa
- Ka
- HA
- A
- ratio
- Formula
pH = pKa + log10([A−]/[HA])- Assumptions
- Monoprotic buffer; HA and A− are the pair as given
- Activity coefficients ≈ 1
- Not ICE equilibrium
- Not pH = −log10[H+]
- Not polyprotic
- Units
- lab; HA and A as the same concentration unit
- Boundary conditions
- missing pKa and missing Ka → MISSING_REQUIRED_INPUT
- pKa and Ka together → MIXED_INPUT_ENCODING
- HA ≤ 0 or A ≤ 0 → VALUE_MUST_BE_POSITIVE
- Ka ≤ 0 → VALUE_MUST_BE_POSITIVE
- Example
- pKa=5 HA=0.1 A=0.2 → pH=5+log10(2)
- Validation cases
3 published on this page · 11/11 tests · Production surface contract 6/6 · View evidence
- pKa=5 HA=0.1 A=0.1 → pH=5
- pKa=5 HA=0.1 A=0.2 → pH=5+log10(2)
- HA=0.1 A=0.1 → MISSING_REQUIRED_INPUT
- Sources
- OpenStax Chemistry 2e — Acid-Base Buffers — Henderson–Hasselbalch equationSupports: pH = pKa + log10([base]/[acid]) for a conjugate pair
- IUPAC Gold Book — buffer solution — conjugate acid–base pairSupports: A buffer is a conjugate acid–base pair whose ratio sets pH
- OpenStax Chemistry 2e — Acid-Base Buffers — Henderson–Hasselbalch equation
- Calculation version
- 1.0.1
Background
Interpretation and common distinctions.
Compute buffer pH from Henderson–Hasselbalch.
Supported and not supported
Supported — pH from pKa (or Ka) and [HA], [A−] · API chemistry.acid_base.henderson_hasselbalch
Not supported — ICE tables (see /calc/chemistry/weak-acid-equilibrium), activity coefficients, polyprotic, titration curves; pH from [H+] is /calc/chemistry/ph
Agent / API notes
Capability id: chemistry.acid_base.henderson_hasselbalch · tool id: henderson-hasselbalch · pin 1.0.1.
{ "pKa": 5, "HA": 0.1, "A": 0.2 }
Alternate encoding: { "Ka": 1e-5, "HA": 0.1, "A": 0.2 }. Errors: MISSING_REQUIRED_INPUT, INVALID_NUMBER, VALUE_MUST_BE_POSITIVE, MIXED_INPUT_ENCODING.
Calculator URL is /calc/chemistry/henderson-hasselbalch. Weak-acid ICE stays on /calc/chemistry/weak-acid-equilibrium. Converters stay on /convert/chemistry.
Related tools
Other calculators in this family: pH, Weak-acid ICE, Weak-base ICE, Molarity .
Frequently asked questions
Key distinctions behind the calculation.
Is this pH = −log10[H+]?
No. That identity is /calc/chemistry/ph. This page is the buffer approximation from pKa and the HA / A− pair.
Does this solve an ICE table?
No. Henderson–Hasselbalch takes the pair as given. Weak-acid ICE is /calc/chemistry/weak-acid-equilibrium. Weak-base ICE is /calc/chemistry/weak-base-equilibrium.
Can I enter Ka instead of pKa?
Yes on the web form, REST, and MCP. Do not send pKa and Ka together.
Where does this run?
Locally in the browser by default. REST and MCP call the same chemistry-engine Henderson–Hasselbalch wrapper.