# Pool Volume Calculator

> Computes the water volume of a rectangular, round, oval or kidney-shaped pool from its dimensions and average depth, then the amount of a chlorine product needed to raise free chlorine by a target ppm and the pump turnover time (or the flow needed for an 8-hour turnover).

- Calculator id: `pool-volume` · Category: Everyday Life (`everyday`) · Tool name: `calculate_pool_volume`
- Canonical page: https://tttkmbb.com/everyday/pool-volume · This document: https://tttkmbb.com/everyday/pool-volume.md · JSON definition: https://tttkmbb.com/everyday/pool-volume.json

## Purpose

Computes the water volume of a rectangular, round, oval or kidney-shaped pool from its dimensions and average depth, then the amount of a chlorine product needed to raise free chlorine by a target ppm and the pump turnover time (or the flow needed for an 8-hour turnover).

**Use when:** You need a pool's volume in gallons or litres to dose chemicals, size a pump or filter, or estimate fill cost, and a shock/chlorine dose for a given ppm increase.

**Do not use when:** The pool is a free-form shape that none of the four templates approximates (measure it as several rectangles), or you need aquarium volumes (use aquarium-volume).

## Input

| Parameter | Type | Unit | Required | Description |
| --- | --- | --- | --- | --- |
| `shape` | enum: rectangle \| round \| oval \| kidney |  | optional, default "rectangle" | Plan-view shape used for the volume formula. |
| `unit` | enum: m \| ft |  | optional, default "m" | Unit of all dimensions; also sets the pump flow unit. |
| `length` | number |  | optional | Longest dimension. Not used for round pools. (> 0, max 1000) |
| `width` | number |  | required | Width; the diameter for round pools; the wider lobe (A) for kidney pools. (> 0, max 1000) |
| `width_2` | number |  | optional | Width of the narrower lobe (B) of a kidney pool; ignored for other shapes. (> 0, max 1000) |
| `shallow_depth` | number |  | required | Water depth at the shallow end (or the uniform depth). (> 0, max 20) |
| `deep_depth` | number |  | optional | Water depth at the deep end; omit for a flat bottom. (> 0, max 20) |
| `chlorine_increase_ppm` | number | ppm | optional, default 10 | Desired rise in free chlorine in mg/L: 10 ppm is a typical shock, 1–3 ppm a routine top-up. (min 0, max 50) |
| `chlorine_product` | enum: calcium_hypochlorite_65 \| dichlor_56 \| trichlor_90 \| liquid_chlorine_12_5 |  | optional, default "calcium_hypochlorite_65" | Product whose dose is reported (grams for granules and tablets, millilitres for liquid). |
| `pump_flow` | number |  | optional | Pump flow in L/min (metres) or US gal/min (feet); optional, gives the turnover time. (> 0, max 100000) |

## Output

| Field | Type | Unit | Description |
| --- | --- | --- | --- |
| `average_depth` | number |  | (shallow_depth + deep_depth) / 2 in the chosen unit. |
| `volume_liters` | number | L | Water volume in litres. |
| `volume_gallons_us` | number | US gal | Water volume in US gallons. |
| `volume_m3` | number | m³ | Water volume in cubic metres (= tonnes of water). |
| `chlorine_needed_g` | number | g | Pure chlorine to add: litres × ppm / 1000. |
| `product_dose` | number |  | Amount of the chosen product (see product_dose_unit). |
| `product_dose_unit` | string |  | g for granules/tablets, mL for liquid chlorine. |
| `turnover_hours` | number | h | Hours for the pump to move one pool volume (only when pump_flow is given). |
| `flow_for_8h_turnover_lpm` | number | L/min | Pump flow that turns the pool over in 8 hours. |
| `flow_for_8h_turnover_gpm` | number | US gal/min | Same flow in US gallons per minute. |

## Formula

`avg_depth = (shallow + deep) / 2; rectangle V = length × width × avg_depth; round V = π × (width / 2)² × avg_depth; oval V = π / 4 × length × width × avg_depth; kidney V = 0.45 × (width + width_2) × length × avg_depth; 1 ft³ = 28.3168 L = 7.4805 US gal; chlorine_g = litres × ppm / 1000; product = chlorine_g / available fraction (0.65, 0.56, 0.90; liquid 12.5% = 125 g/L → mL = chlorine_g / 0.125); turnover_h = volume / (pump_flow × 60)`

Shape formulas are the pool-industry templates (kidney = 0.45 × sum of lobe widths × length). 1 ppm equals 1 mg of chlorine per litre, so the dose scales with volume; the free-chlorine target after shocking is normally 10 ppm and routine levels 1–3 ppm. Health codes require public pools to turn over within 6 hours; one turnover in 8–12 hours is typical for residential pools.

## Data Sources

- Leslie's – How to calculate pool volume (shape formulas) — https://lesliespool.com/blog/calculating-pool-volume.html (reference, retrieved 2026-09-24)
- Swimming pool sanitation – chlorine levels and filtration turnover (Wikipedia) — https://en.wikipedia.org/wiki/Swimming_pool_sanitation (reference, retrieved 2026-09-24)
- Calcium hypochlorite – 65–70% available chlorine (Wikipedia) — https://en.wikipedia.org/wiki/Calcium_hypochlorite (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/pool-volume?width=…&shallow_depth=…`
- `POST https://tttkmbb.com/api/v1/calculate/pool-volume` 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/pool-volume · OpenAPI operationId `calculate_pool_volume` 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": "pool-volume", "inputs": {…}}`

## Example

- 10 × 5 m rectangle, 1.2–1.8 m deep, 200 L/min pump: inputs `{"shape":"rectangle","unit":"m","length":10,"width":5,"shallow_depth":1.2,"deep_depth":1.8,"chlorine_increase_ppm":10,"pump_flow":200}` → `{"average_depth":1.5,"volume_liters":75000,"volume_gallons_us":19813,"volume_m3":75,"chlorine_needed_g":750,"product_dose":1154,"product_dose_unit":"g","turnover_hours":6.25,"flow_for_8h_turnover_lpm":156.3,"flow_for_8h_turnover_gpm":41.3}`
- 24 ft round, 4 ft flat, +2 ppm with liquid chlorine: inputs `{"shape":"round","unit":"ft","width":24,"shallow_depth":4,"chlorine_increase_ppm":2,"chlorine_product":"liquid_chlorine_12_5"}` → `{"volume_liters":51241,"volume_gallons_us":13536,"volume_m3":51.24,"chlorine_needed_g":102.5,"product_dose":820,"product_dose_unit":"mL","flow_for_8h_turnover_gpm":28.2}`

```
GET https://tttkmbb.com/api/v1/calculate/pool-volume?shape=rectangle&unit=m&length=10&width=5&shallow_depth=1.2&deep_depth=1.8&chlorine_increase_ppm=10&pump_flow=200
```

## Limitations

The pool is a free-form shape that none of the four templates approximates (measure it as several rectangles), or you need aquarium volumes (use aquarium-volume). Shape formulas are the pool-industry templates (kidney = 0.45 × sum of lobe widths × length). 1 ppm equals 1 mg of chlorine per litre, so the dose scales with volume; the free-chlorine target after shocking is normally 10 ppm and routine levels 1–3 ppm. Health codes require public pools to turn over within 6 hours; one turnover in 8–12 hours is typical for residential pools. All values are computed from the formula above; no measurement or live data is involved.

## FAQ

**Which depth should I enter for a pool with a slope?**

Enter the shallow-end and deep-end depths; the average is used. For a pool with a flat shallow shelf and a deep hopper this overestimates slightly, so treat the volume as ±10%.

**Why does 1 ppm need only 10 g of chlorine per 10,000 L?**

1 ppm is 1 mg per litre, so 10,000 L × 1 mg = 10 g of available chlorine; a 65% calcium hypochlorite product contains 0.65 g of chlorine per gram, so 15.4 g of product is required.

**How long should the pump run?**

Long enough for at least one turnover a day: turnover_hours tells you the minimum; most residential pools run 8–12 hours in summer.

## Related

- [Aquarium Volume Calculator](https://tttkmbb.com/everyday/aquarium-volume.md) — Volume and water weight of a fish tank.
- [Volume Converter](https://tttkmbb.com/conversion/volume.md) — Convert between litres, gallons and cubic metres.
- [Cylinder Calculator](https://tttkmbb.com/geometry/cylinder.md) — Exact volume of a round tank.
