HomeCalculatorsChemistryWeak-Acid Equilibrium Calculator
Chemistry calculator

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.

Instant result
Result
—

Enter values to calculate.

Inputs—
Mode—
Formula—
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 — ui-ssr is query-result HTML, not a live browser session. Error-path engine·REST·MCP 1/1 (status, code, calculation_version). SSR compared on URL-canonical requested calculations; empty query is idle (not an error) and JSON-typed object/array inputs are REST/MCP-only.
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
STALE · Build schema 1.0.4 matches page · production binding STALE · Semantic contract ✓ · Last attestation PASS · current evidence changed · re-attestation required · CVP STALE · attestation STALE — Production CURRENT withheld · Public/cache ✓ · Origin ✓
Semantic contract
PASS
Full verification

Manifest identity, reference classes, interfaces, suite, and production records.

Formulas

Core equations used by this calculator.

ICE with water[H⁺]³ + Ka[H⁺]² − (Kw + Ka C)[H⁺] − Ka Kw = 0
ICE neglecting waterKa = x² / (C − x)
iKw = 1.0×10⁻¹⁴ at 25 °C. This page is not Henderson–Hasselbalch and not the water-ion identity pH = −log10[H+].

How to use

1

Enter formal concentration C

C is the analytical HA concentration in mol/L. It must be greater than zero.

2

Enter pKa or Ka

Give one acidity encoding. Sending both is rejected.

3

Choose whether to include water

ICE (default) includes Kw at 25 °C. ICE, no water uses the quadratic approximation.

4

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

x = (−Ka + √(Ka² + 4 Ka C)) / 2
[H+]≈1.333e-3, pH≈2.875
ϟ

From pKa

C=0.1 mol/L, pKa=5

Ka = 10^(−pKa)
Ka=1e-5; ICE pH from the cubic or quadratic

Weak-Acid Equilibrium calculator specification

Version 1.0.4 · Engine tested

Calculation status

Review policy · Evidence

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
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.

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.