pH Calculator
Compute pH = −log10[H+] and pOH = −log10[OH−] at 25 °C with Kw = 1e-14. Runs locally. Not Henderson–Hasselbalch and not ICE.
Enter values to calculate.
Trust summary CVP VERIFIED · CVP protocol 1.0.0-proposed · Engineering assurance · pH = −log10(h) and pH + pOH = 14 at 25 °C, + O3 mpmath tabulated pH.
- Input interpretation
- Enter values to calculate.
- Result
- —
- Verified scope
- pH = −log10(h) and pH + pOH = 14 at 25 °C, + O3 mpmath tabulated pH.
- Assurance
- Engineering
- Declared partition coverage
- PASS · 8/8 declared partitions (alias, awkward, from-ph, from-oh, from-poh, cross, from-h, invalid-domain) · Matrix
- Deferred
- Not a buffer and not an activity-based pH.
- Numerical scope
- O2: water ion product at 25 °C vs a separate-module identity (≤2 ULP). Not a buffer. ≤2 ULP vs O3 applies only to the published tabulated pH vectors. Not a buffer.
- Known limitations
- Core CVP does not include live graph, viewport, or pointer interaction.
- Model
- Water-ion pH, pOH, [H+], and [OH−] at 25 °C.
- Scope
- pH = −log10[H+]
- Verification
- Engine tested · Source checked · v1.0.1 · CVP VERIFIED · CVP protocol 1.0.0-proposed · Engineering assurance · pH = −log10(h) and pH + pOH = 14 at 25 °C, + O3 mpmath tabulated 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 82c9acd33c3c
- Legacy regression
- 14/14 tests · Production surface contract 5/5
- 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 · 6/6 CVP boundary · 5/5 invalid · 1/1 property · 1/1 metamorphic · 8/8 O3 · 2/2 cross-interface · 5/5 CVP contract · Manifest
- Evidence
- 1 legacy golden · 7 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
Choose [H+], pH, [OH−], or pOH
Each mode needs one of [H+], pH, [OH−], or pOH. The rest of the water-ion state is filled from Kw.
Enter a positive concentration when required
[H+] and [OH−] must be greater than zero. pH and pOH may be any finite number.
Read pH, pOH, [H+], and [OH−]
pH = −log10[H+]. pOH = 14 − pH at 25 °C.
Example calculations
Common configurations with formula and result.
Millimolar acid
[H+]=1e-3 mol/L
From pOH
pOH=11
pH calculator specification
Version 1.0.1 · Engine tested
- Engine tested 14/14 tests · Production surface contract 5/5
- Named expert review Not performed
- Calculation version 1.0.1
- Definition
- pH = −log10[H+]. pOH = −log10[OH−]. At 25 °C, Kw = 1e-14 and pH + pOH = 14.
- What it calculates
- Water-ion pH, pOH, [H+], and [OH−] at 25 °C.
- Inputs
- mode?
- h | h_mol_L
- pH
- oh | oh_mol_L
- pOH
- Outputs
- pH
- h
- pOH
- oh
- Kw
- pKw
- Formula
pH = −log10[H+]; pH + pOH = 14- Assumptions
- pH = −log10[H+]
- pOH = −log10[OH−]
- Kw = 1e-14 at 25 °C
- Not Henderson–Hasselbalch
- Not ICE or activity coefficients
- Units
- mol/L
- pH
- pOH
- Boundary conditions
- ph_from_h missing h → MISSING_REQUIRED_INPUT
- h ≤ 0 or oh ≤ 0 → VALUE_MUST_BE_POSITIVE
- unknown mode → INVALID_MODE
- hh_ph is not a mode on this page
- Example
- h=1e-3 → pH=3
- Validation cases
3 published on this page · 14/14 tests · Production surface contract 5/5 · View evidence
- h=1e-3 → pH=3
- mode=ph_from_poh pOH=11 → pH=3
- h=0 → VALUE_MUST_BE_POSITIVE
- Sources
- OpenStax Chemistry 2e — pH and pOH — pH and pOHSupports: pH = −log10[H3O+]; pOH = −log10[OH−]; pH + pOH = 14 at 25 °C
- IUPAC Gold Book — pH — pHSupports: pH is defined from hydrogen-ion activity; dilute water uses −log10[H+]
- OpenStax Chemistry 2e — pH and pOH — pH and pOH
- Calculation version
- 1.0.1
Background
Interpretation and common distinctions.
Compute pH and pOH from the water-ion product.
Supported and not supported
Supported — pH = −log10[H+], pOH = −log10[OH−], pH + pOH = 14 at 25 °C · API chemistry.acid_base.ph
Not supported — Henderson–Hasselbalch, ICE tables (see /calc/chemistry/weak-acid-equilibrium), activity coefficients, polyprotic, temperature-dependent Kw
Agent / API notes
Capability id: chemistry.acid_base.ph · tool id: ph · pin 1.0.1.
{ "mode": "ph_from_h", "h": 0.001 }
Share URLs use h_mol_L / oh_mol_L instead of bare h. Other modes: h_from_ph, poh_from_oh, oh_from_poh, ph_from_poh, poh_from_ph. Errors: MISSING_REQUIRED_INPUT, INVALID_NUMBER, VALUE_MUST_BE_POSITIVE, INVALID_MODE.
Calculator URL is /calc/chemistry/ph. Buffer pH stays on /calc/chemistry/henderson-hasselbalch. Weak-acid ICE stays on /calc/chemistry/weak-acid-equilibrium.
Related tools
Other calculators in this family: Henderson–Hasselbalch, Weak-acid ICE, Weak-base ICE, Molarity .
Frequently asked questions
Key distinctions behind the calculation.
Is this Henderson–Hasselbalch?
No. Buffer pH from pKa and [HA]/[A−] is /calc/chemistry/henderson-hasselbalch. This page is the water-ion identities.
Does this solve an ICE table?
No. Weak-acid ICE from formal C and Ka is /calc/chemistry/weak-acid-equilibrium. This page is the water-ion identities.
Is Kw temperature-dependent here?
No. This page uses Kw = 1e-14 at 25 °C.
Where does this run?
Locally in the browser by default. REST and MCP call the same chemistry-engine pH wrapper.