# Weak Acid pH Calculator

> Computes pH, pOH, [H⁺], [OH⁻] and percent ionization of a monoprotic weak acid or monobasic weak base from its dissociation constant (Ka/pKa or Kb/pKb) and nominal concentration by solving the equilibrium quadratic exactly, and compares the result with the √(K·C) approximation.

- Calculator id: `weak-acid-ph` · Category: Chemistry (`chemistry`) · Tool name: `calculate_weak_acid_ph`
- Canonical page: https://tttkmbb.com/chemistry/weak-acid-ph · This document: https://tttkmbb.com/chemistry/weak-acid-ph.md · JSON definition: https://tttkmbb.com/chemistry/weak-acid-ph.json

## Purpose

Computes pH, pOH, [H⁺], [OH⁻] and percent ionization of a monoprotic weak acid or monobasic weak base from its dissociation constant (Ka/pKa or Kb/pKb) and nominal concentration by solving the equilibrium quadratic exactly, and compares the result with the √(K·C) approximation.

**Use when:** You know the Ka (pKa) of a weak acid such as acetic acid, or the Kb (pKb) of a weak base such as ammonia, and its concentration, and need the pH or the degree of ionization of the solution.

**Do not use when:** The acid or base is strong and fully dissociated (use ph), the solution also contains the conjugate salt (a buffer: use henderson-hasselbalch), or the acid is polyprotic with a second dissociation that matters (H2SO4, H3PO4 at low concentration).

## Input

| Parameter | Type | Unit | Required | Description |
| --- | --- | --- | --- | --- |
| `species` | enum: weak_acid \| weak_base |  | optional, default "weak_acid" | Whether the solute is a weak acid (Ka) or a weak base (Kb). |
| `ka` | number |  | optional | Acid dissociation constant (acetic acid 1.8×10⁻⁵, HF 6.3×10⁻⁴, HCN 6.2×10⁻¹⁰). Alternative to pka; for a weak base it is read as the Ka of the conjugate acid. (> 0, max 10000000000) |
| `pka` | number |  | optional | −log10 Ka (acetic acid 4.76, NH4⁺ 9.25). Alternative to ka. (min -10, max 25) |
| `kb` | number |  | optional | Base dissociation constant (ammonia 1.8×10⁻⁵, methylamine 4.4×10⁻⁴). Alternative to pkb; for a weak acid it is read as the Kb of the conjugate base. (> 0, max 10000000000) |
| `pkb` | number |  | optional | −log10 Kb (ammonia 4.75). Alternative to kb. (min -10, max 25) |
| `concentration_mol_l` | number | mol/L | required | Analytical (formal) concentration of the acid or base before dissociation. (> 0, max 100) |

## Output

| Field | Type | Unit | Description |
| --- | --- | --- | --- |
| `ph` | number |  | −log10[H⁺]. |
| `poh` | number |  | −log10[OH⁻] = 14 − pH at 25 °C. |
| `h_concentration_mol_l` | number | mol/L | Hydrogen-ion concentration at equilibrium. |
| `h_concentration_text` | string |  | [H⁺] in scientific notation, mol/L. |
| `oh_concentration_mol_l` | number | mol/L | Hydroxide-ion concentration at equilibrium (Kw / [H⁺]). |
| `oh_concentration_text` | string |  | [OH⁻] in scientific notation, mol/L. |
| `percent_ionization` | number | % | 100 × dissociated fraction: [H⁺]/C for an acid, [OH⁻]/C for a base. |
| `approximate_ph` | number |  | pH obtained by assuming the dissociated amount is negligible against C ([H⁺] ≈ √(Ka·C), or [OH⁻] ≈ √(Kb·C)). |
| `approximation_valid` | boolean |  | true when C / K > 100 and ionization is below 5 %, the usual textbook criterion for using √(K·C). |
| `dissociation_constant_used` | number |  | Ka (acid) or Kb (base) used in the quadratic. |
| `pka_used` | number |  | pKa of the acid, or of the conjugate acid when a weak base is entered (pKa = 14 − pKb). |
| `pkb_used` | number |  | pKb of the base, or of the conjugate base when a weak acid is entered (pKb = 14 − pKa). |

## Formula

`Acid: [H⁺] = (−Ka + √(Ka² + 4·Ka·C)) / 2, pH = −log10[H⁺], pOH = 14 − pH. Base: [OH⁻] = (−Kb + √(Kb² + 4·Kb·C)) / 2, pOH = −log10[OH⁻], pH = 14 − pOH. percent_ionization = 100 × [H⁺]/C (or [OH⁻]/C); approximate: [H⁺] ≈ √(Ka·C); Ka = 10^(−pKa); pKa + pKb = 14`

Exact solution of K = x² / (C − x) for a single dissociation step, evaluated in the equivalent form 2·K·C / (K + √(K² + 4·K·C)) to avoid rounding loss. Assumes 25 °C (Kw = 1.0×10⁻¹⁴), unit activity coefficients and neglects the H⁺ from water, which only matters when the result is within about a factor of 10 of 10⁻⁷ mol/L.

## Data Sources

- Wikipedia – Acid dissociation constant — https://en.wikipedia.org/wiki/Acid_dissociation_constant (reference, retrieved 2026-09-24)
- OpenStax Chemistry 2e – 14.3 Relative Strengths of Acids and Bases — https://openstax.org/books/chemistry-2e/pages/14-3-relative-strengths-of-acids-and-bases (textbook, retrieved 2026-09-24)
- Wikipedia – pH — https://en.wikipedia.org/wiki/PH (reference, retrieved 2026-09-24)

Data freshness: `static`. Deterministic formula with fixed constants; results never go stale. Inputs supplied by the caller determine the output.

## API

- `GET https://tttkmbb.com/api/v1/calculate/weak-acid-ph?concentration_mol_l=…`
- `POST https://tttkmbb.com/api/v1/calculate/weak-acid-ph` with JSON body `{"inputs": {…}}`
- Response: unified envelope (`success`, `request`, `result.values`, `result.units`, `sources`, `freshness`, `timestamp`, `next_actions`, `links`); see https://tttkmbb.com/docs/response-format.md
- Schema: https://tttkmbb.com/api/v1/calculators/weak-acid-ph · OpenAPI operationId `calculate_weak_acid_ph` in https://tttkmbb.com/openapi.json
- Authentication: none. Rate limit: fair use, see https://tttkmbb.com/docs/rate-limits.md.

## MCP

- Server: `https://tttkmbb.com/mcp` (Streamable HTTP, JSON-RPC 2.0, no auth)
- Tool:  `run_calculator` with `{"calculator_id": "weak-acid-ph", "inputs": {…}}`

## Example

- 0.10 M acetic acid, Ka 1.8×10⁻⁵: inputs `{"species":"weak_acid","ka":0.000018,"concentration_mol_l":0.1}` → `{"ph":2.875,"poh":11.125,"h_concentration_mol_l":0.0013327,"h_concentration_text":"1.333e-3","percent_ionization":1.33,"approximate_ph":2.872,"approximation_valid":true,"pka_used":4.745}`
- 0.10 M ammonia, Kb 1.8×10⁻⁵: inputs `{"species":"weak_base","kb":0.000018,"concentration_mol_l":0.1}` → `{"poh":2.875,"ph":11.125,"oh_concentration_mol_l":0.0013327,"percent_ionization":1.33,"approximate_ph":11.128,"approximation_valid":true,"pkb_used":4.745,"pka_used":9.255}`

```
GET https://tttkmbb.com/api/v1/calculate/weak-acid-ph?species=weak_acid&ka=0.000018&concentration_mol_l=0.1
```

## Limitations

The acid or base is strong and fully dissociated (use ph), the solution also contains the conjugate salt (a buffer: use henderson-hasselbalch), or the acid is polyprotic with a second dissociation that matters (H2SO4, H3PO4 at low concentration). Exact solution of K = x² / (C − x) for a single dissociation step, evaluated in the equivalent form 2·K·C / (K + √(K² + 4·K·C)) to avoid rounding loss. Assumes 25 °C (Kw = 1.0×10⁻¹⁴), unit activity coefficients and neglects the H⁺ from water, which only matters when the result is within about a factor of 10 of 10⁻⁷ mol/L. All values are computed from the formula above; no measurement or live data is involved.

## FAQ

**When is the √(Ka·C) shortcut good enough?**

When C/Ka exceeds about 100 (equivalently ionization under 5 %) the error is below 0.02 pH units; for dilute or relatively strong weak acids (HF, HNO2, chloroacetic acid) the exact quadratic reported here differs noticeably.

**I only have the pKa of the conjugate acid of my base.**

Enter species=weak_base with that pka: the calculator converts with Kb = Kw / Ka (pKb = 14 − pKa), e.g. NH4⁺ pKa 9.25 gives Kb 1.8×10⁻⁵ for ammonia.

**Why is the pH of a very dilute weak acid not what this gives?**

Below about 10⁻⁶ mol/L of H⁺ the autoionisation of water contributes comparably and the true pH approaches 7 from below; the calculator flags this case in a note but does not solve the full charge-balance cubic.

## Related

- [pH Calculator](https://tttkmbb.com/chemistry/ph.md) — pH of strong acids and bases from their concentration.
- [Henderson–Hasselbalch Calculator](https://tttkmbb.com/chemistry/henderson-hasselbalch.md) — pH when the conjugate base or acid is also present (buffer).
- [Titration Calculator](https://tttkmbb.com/chemistry/titration.md) — Titrant volume to neutralise this acid or base.
