# pH Calculator

> Converts between pH, pOH, hydrogen-ion concentration and hydroxide-ion concentration at 25 °C (Kw = 1.0×10⁻¹⁴) from any one of them, and classifies the solution as acidic, neutral or basic.

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

## Purpose

Converts between pH, pOH, hydrogen-ion concentration and hydroxide-ion concentration at 25 °C (Kw = 1.0×10⁻¹⁴) from any one of them, and classifies the solution as acidic, neutral or basic.

**Use when:** You know one of pH, pOH, [H⁺] or [OH⁻] for an aqueous solution (for example the concentration of a fully dissociated strong acid or base) and need the others.

**Do not use when:** The solution contains a weak acid or base or a buffer, where [H⁺] is not equal to the nominal concentration (use henderson-hasselbalch for buffers), or the temperature differs a lot from 25 °C.

## Input

| Parameter | Type | Unit | Required | Description |
| --- | --- | --- | --- | --- |
| `h_concentration_mol_per_l` | number | mol/L | optional | Hydrogen-ion (hydronium) concentration, e.g. the molarity of a strong monoprotic acid such as HCl. (> 0, max 100) |
| `oh_concentration_mol_per_l` | number | mol/L | optional | Hydroxide-ion concentration, e.g. the molarity of NaOH. Used when [H⁺] is not given. (> 0, max 100) |
| `ph` | number |  | optional | Known pH; when given it takes precedence over the other inputs. (min -2, max 16) |
| `poh` | number |  | optional | Known pOH; used when pH is not given. (min -2, max 16) |

## Output

| Field | Type | Unit | Description |
| --- | --- | --- | --- |
| `ph` | number |  | −log10[H⁺]. |
| `poh` | number |  | −log10[OH⁻] = 14 − pH at 25 °C. |
| `h_concentration_mol_per_l` | number | mol/L | Hydrogen-ion concentration = 10^(−pH). |
| `oh_concentration_mol_per_l` | number | mol/L | Hydroxide-ion concentration = 10^(−pOH) = Kw / [H⁺]. |
| `h_concentration_scientific` | string |  | [H⁺] in scientific notation, mol/L. |
| `oh_concentration_scientific` | string |  | [OH⁻] in scientific notation, mol/L. |
| `classification` | string |  | Acidic (pH < 7), Neutral (pH = 7) or Basic (pH > 7) at 25 °C. |

## Formula

`pH = −log10[H⁺]; pOH = −log10[OH⁻]; pH + pOH = pKw = 14.00 at 25 °C; [H⁺] × [OH⁻] = Kw = 1.0×10⁻¹⁴`

Assumes an aqueous solution at 25 °C and that a strong acid or base is completely dissociated, so [H⁺] (or [OH⁻]) equals its nominal molarity; activity effects at high concentration and the autoionisation contribution below about 10⁻⁶ mol/L are ignored.

## Data Sources

- OpenStax Chemistry 2e – 14.2 pH and pOH — https://openstax.org/books/chemistry-2e/pages/14-2-ph-and-poh (textbook, retrieved 2026-09-23)
- Wikipedia – pH — https://en.wikipedia.org/wiki/PH (reference, retrieved 2026-09-23)

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/ph?`
- `POST https://tttkmbb.com/api/v1/calculate/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/ph · OpenAPI operationId `calculate_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": "ph", "inputs": {…}}`

## Example

- 0.001 M HCl: inputs `{"h_concentration_mol_per_l":0.001}` → `{"ph":3,"poh":11,"oh_concentration_mol_per_l":1e-11,"h_concentration_scientific":"1.000e-3","classification":"Acidic"}`
- pH 8.5 solution: inputs `{"ph":8.5}` → `{"poh":5.5,"h_concentration_mol_per_l":3.1623e-9,"oh_concentration_mol_per_l":0.0000031623,"h_concentration_scientific":"3.162e-9","classification":"Basic (alkaline)"}`

```
GET https://tttkmbb.com/api/v1/calculate/ph?h_concentration_mol_per_l=0.001
```

## Limitations

The solution contains a weak acid or base or a buffer, where [H⁺] is not equal to the nominal concentration (use henderson-hasselbalch for buffers), or the temperature differs a lot from 25 °C. Assumes an aqueous solution at 25 °C and that a strong acid or base is completely dissociated, so [H⁺] (or [OH⁻]) equals its nominal molarity; activity effects at high concentration and the autoionisation contribution below about 10⁻⁶ mol/L are ignored. All values are computed from the formula above; no measurement or live data is involved.

## FAQ

**Why is the pH of a 10⁻⁸ M HCl solution not 8?**

Below about 10⁻⁶ mol/L the H⁺ from water's autoionisation matters and the real pH stays just under 7; this calculator ignores that contribution and reports the formal value.

**Does the neutral point change with temperature?**

Yes. Kw rises with temperature, so neutral water has pH 7.00 only at 25 °C (about 6.63 at 50 °C); all results here use pKw = 14.00.

## Related

- [Henderson–Hasselbalch Calculator](https://tttkmbb.com/chemistry/henderson-hasselbalch.md) — pH of a buffer from pKa and the acid/base ratio.
- [Molarity Calculator](https://tttkmbb.com/chemistry/molarity.md) — Get the acid or base molarity that sets [H⁺] or [OH⁻].
- [Logarithm Calculator](https://tttkmbb.com/math/logarithm.md) — General log10 calculations.
