Weak-Acid Equilibrium Calculator
Solve monoprotic weak-acid ICE from formal C and Ka or pKa. Charge and mass balance; optional water at 25 °C. Runs locally. Not Henderson–Hasselbalch and not pH = −log10[H+] identities.
Enter values to calculate.
Trust summary CVP VERIFIED · production STALE · CVP protocol 1.0.0-proposed · Engineering assurance · Monoprotic weak-acid ICE, + O3 mpmath tabulated [H+].
- Input interpretation
- Enter values to calculate.
- Result
- —
- Verified scope
- Monoprotic weak-acid ICE, + O3 mpmath tabulated [H+].
- Assurance
- Engineering
- Declared partition coverage
- PASS · 7/7 declared partitions (alias, pka, awkward, dilute, no-water, water, invalid-domain) · Matrix
- Deferred
- Not a buffer and not a weak base.
- Numerical scope
- O2: monoprotic weak-acid ICE vs a separate-module quadratic or Newton cubic (≤2 ULP). Not a buffer. Absolute 1e-8 vs O3 applies only to the published tabulated weak-acid vectors. Not a buffer.
- Known limitations
- Core CVP does not include live graph, viewport, or pointer interaction.
- Model
- Monoprotic weak-acid ICE pH and species from formal C and Ka or pKa.
- Scope
- Monoprotic HA ⇌ H+ + A−
- Verification
- Engine tested · Source checked · v1.0.4 · CVP VERIFIED · production STALE · CVP protocol 1.0.0-proposed · Engineering assurance · Monoprotic weak-acid ICE, + O3 mpmath tabulated [H+].· View Manifest · CVP overview · Specification
- Versions
- Calculation 1.0.4 · CVP protocol 1.0.0-proposed · Evidence 2026-10-06.polynomial-value-underflow
- Verification revision
- 2026-10-06.polynomial-value-underflow · 1/1 property · digest daaf072a9df9
- Legacy regression
- 13/13 tests · Production surface contract 6/6
- Trust layers
- Verification VERIFIED · Production STALE · Overall CVP state: VERIFIED_STALE under CVP 1.0.0-proposed
- CVP status
- STALE · Capability production binding: STALE · Site report: STALE · Evidence changed after the last successful production attestation. Re-attestation required.
- 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
- 3/3 golden · 5/5 CVP boundary · 7/7 invalid · 1/1 property · 1/1 metamorphic · 8/8 O3 · 2/2 cross-interface · 6/6 CVP contract · Manifest
- Evidence
- 2 legacy golden · 6 legacy boundary · legacy regression suite · 3/3 oracle-backed golden · 7/7 invalid · Artifact integrity PASS
- Semantic contract
- PASS
Full verification
Formulas
Core equations used by this calculator.
How to use
Enter formal concentration C
C is the analytical HA concentration in mol/L. It must be greater than zero.
Enter pKa or Ka
Give one acidity encoding. Sending both is rejected.
Choose whether to include water
ICE (default) includes Kw at 25 °C. ICE, no water uses the quadratic approximation.
Read pH and the ICE species
The solver reuses math.numerical.root. Outputs [H+], [HA], [A−], [OH−], and α = [A−]/C.
Example calculations
Common configurations with formula and result.
Acetic acid, water neglected
C=0.1 mol/L, Ka=1.8e-5
From pKa
C=0.1 mol/L, pKa=5
Weak-Acid Equilibrium calculator specification
Version 1.0.4 · Engine tested
- Engine tested 13/13 tests · Production surface contract 6/6
- Named expert review Not performed
- Calculation version 1.0.4
- Definition
- Monoprotic HA ⇌ H+ + A−. With water: [H+]³ + Ka[H+]² − (Kw + Ka C)[H+] − Ka Kw = 0. Without water: Ka = x²/(C−x).
- What it calculates
- Monoprotic weak-acid ICE pH and species from formal C and Ka or pKa.
- Inputs
- mode?
- C | c | concentration
- pKa | Ka
- Outputs
- pH
- h
- HA
- A
- oh
- C
- Ka
- pKa
- fraction_dissociated
- Formula
[H+]³ + Ka[H+]² − (Kw + Ka C)[H+] − Ka Kw = 0 (mode=ice)- Assumptions
- Monoprotic HA ⇌ H+ + A−
- Activity coefficients ≈ 1
- Kw = 1e-14 at 25 °C when mode=ice
- Not Henderson–Hasselbalch
- Not pH = −log10[H+] identities
- Not polyprotic, not a weak base, not titration
- Units
- mol/L
- pH
- pKa
- Boundary conditions
- missing C → MISSING_REQUIRED_INPUT
- C ≤ 0 or Ka ≤ 0 → VALUE_MUST_BE_POSITIVE
- pKa and Ka together → MIXED_INPUT_ENCODING
- hh_ph is not a mode on this page
- Example
- C=0.1 Ka=1.8e-5 mode=ice_no_water → x=(−Ka+√(Ka²+4 Ka C))/2
- Validation cases
3 published on this page · 13/13 tests · Production surface contract 6/6 · View evidence
- C=0.1 Ka=1.8e-5 mode=ice_no_water → h = (−Ka+√(Ka²+4 Ka C))/2
- C=0.1 pKa=5 → pKa=5, model=weak_acid_ice
- Ka=1e-5 → MISSING_REQUIRED_INPUT
- Sources
- OpenStax Chemistry 2e — Weak Acids — Equilibrium of a weak acidSupports: Ka = [H+][A−]/[HA]; ICE from formal C; dilute water may include Kw
- IUPAC Gold Book — acid dissociation constant — acidity constantSupports: Ka is the equilibrium constant for HA ⇌ H+ + A−
- OpenStax Chemistry 2e — Weak Acids — Equilibrium of a weak acid
- Calculation version
- 1.0.4
Background
Interpretation and common distinctions.
Compute monoprotic weak-acid ICE from formal concentration and Ka.
Supported and not supported
Supported — HA ⇌ H+ + A− from C and Ka or pKa; optional Kw at 25 °C · API chemistry.equilibrium.weak_acid
Not supported — Henderson–Hasselbalch, pH=−log10[H+] identities, polyprotic, activity coefficients, titration (weak-base ICE is /calc/chemistry/weak-base-equilibrium)
Agent / API notes
Capability id: chemistry.equilibrium.weak_acid · tool id: weak-acid-equilibrium · pin 1.0.1.
{ "mode": "ice", "C": 0.1, "Ka": 1.8e-5 }
Alternate encoding: { "C": 0.1, "pKa": 4.76 }. Modes: ice (default, includes water), ice_no_water. Errors: MISSING_REQUIRED_INPUT, INVALID_NUMBER, VALUE_MUST_BE_POSITIVE, MIXED_INPUT_ENCODING, INVALID_MODE, NO_PHYSICAL_ROOT.
Calculator URL is /calc/chemistry/weak-acid-equilibrium. Weak-base ICE stays on /calc/chemistry/weak-base-equilibrium. Buffer pH stays on /calc/chemistry/henderson-hasselbalch. Water-ion identities stay on /calc/chemistry/ph.
Related tools
Other calculators in this family: Weak-base ICE, Henderson–Hasselbalch, pH, Molarity .
Frequently asked questions
Key distinctions behind the calculation.
Is this Henderson–Hasselbalch?
No. Buffer pH from a given [HA]/[A−] pair is /calc/chemistry/henderson-hasselbalch. This page solves ICE from formal C and Ka.
Is this pH = −log10[H+]?
No. That identity is /calc/chemistry/ph. This page finds [H+] from charge and mass balance, then reports pH.
Does this cover polyprotic acids or activity coefficients?
No. Monoprotic HA only. Weak-base ICE is /calc/chemistry/weak-base-equilibrium. Polyprotic, activity, and titration are later capabilities.
Where does this run?
Locally in the browser by default. REST and MCP call the same chemistry-engine ICE wrapper, which reuses math.numerical.root.