# Paver Calculator

> Counts the pavers for a patio, path or driveway from the area (or length × width), the paver size and the joint gap, adds waste, and estimates the bedding sand, the crushed-stone base (volume and tonnes at 1.6 t/m³) and the jointing sand from the joint geometry. Planning estimate only.

- Calculator id: `pavers` · Category: Construction & Home (`construction`) · Tool name: `estimate_pavers`
- Canonical page: https://tttkmbb.com/construction/pavers · This document: https://tttkmbb.com/construction/pavers.md · JSON definition: https://tttkmbb.com/construction/pavers.json

## Purpose

Counts the pavers for a patio, path or driveway from the area (or length × width), the paver size and the joint gap, adds waste, and estimates the bedding sand, the crushed-stone base (volume and tonnes at 1.6 t/m³) and the jointing sand from the joint geometry. Planning estimate only.

**Use when:** You need to order concrete or clay pavers (or setts) plus the sand and aggregate under them for a known area.

**Do not use when:** The surface is poured concrete (use concrete-slab), tiles bedded in adhesive with grout (use tile), or you only need the aggregate weight for a layer (use gravel).

## Input

| Parameter | Type | Unit | Required | Description |
| --- | --- | --- | --- | --- |
| `area_unit` | enum: m2 \| ft2 |  | optional, default "m2" | Unit of the area input; areas are reported in both m² and ft². |
| `area` | number | m² or ft² | optional | Area to pave in m² or ft² (see area_unit); alternatively give length and width. (> 0, max 100000) |
| `length` | number | m or ft | optional | Length of a rectangular area (m when area_unit is m2, ft when ft2); used with width when area is not given. (> 0, max 1000) |
| `width` | number | m or ft | optional | Width of the rectangular area (m or ft). (> 0, max 1000) |
| `paver_length_mm` | number | mm | optional, default 200 | Paver length in millimetres (200 × 100 mm is the common rectangular paver; 8 × 4 in = 203 × 102 mm). (> 0, max 2000) |
| `paver_width_mm` | number | mm | optional, default 100 | Paver width in millimetres. (> 0, max 2000) |
| `paver_thickness_mm` | number | mm | optional, default 60 | Paver thickness in millimetres, used only for the jointing-sand volume: 60 mm for patios and paths, 80 mm for driveways. (> 0, max 200) |
| `joint_gap_mm` | number | mm | optional, default 3 | Sand joint width between pavers in millimetres (2–5 mm for interlocking concrete pavers). (min 0, max 30) |
| `waste_percent` | number | % | optional, default 5 | Extra material for cuts, breakage and offcuts, applied as a multiplier (1 + waste_percent/100). 5 % for stack or running bond; 10 % for herringbone, circles and areas with many cuts. (min 0, max 50) |
| `bedding_sand_depth_mm` | number | mm | optional, default 25 | Screeded bedding-sand layer under the pavers; 25 mm (1 in) is standard for interlocking concrete pavers. (min 0, max 100) |
| `base_gravel_depth_mm` | number | mm | optional, default 100 | Compacted crushed-stone base thickness: 100–150 mm (4–6 in) for patios and paths, 200–300 mm (8–12 in) for driveways. (min 0, max 600) |

## Output

| Field | Type | Unit | Description |
| --- | --- | --- | --- |
| `area_m2` | number | m² | Area to pave. |
| `area_ft2` | number | ft² | Area in square feet. |
| `pavers_per_m2` | number |  | 1 / ((paver_length + gap) × (paver_width + gap)). |
| `pavers_per_ft2` | number |  | Pavers per square foot. |
| `pavers_before_waste` | integer |  | ceil(area × pavers_per_m²). |
| `pavers_needed` | integer |  | ceil(area × pavers_per_m² × (1 + waste_percent/100)). |
| `bedding_sand_m3` | number | m³ | area × bedding_sand_depth. |
| `bedding_sand_tonnes` | number | t | Bedding sand at 1.6 t/m³. |
| `base_gravel_m3` | number | m³ | area × base_gravel_depth (compacted volume). |
| `base_gravel_yd3` | number | yd³ | Base volume in cubic yards. |
| `base_gravel_tonnes` | number | t | Base gravel at 1.6 t/m³. |
| `joint_sand_kg` | number | kg | Geometric joint volume (area × joint fraction × paver_thickness) × 1,600 kg/m³ of dry sand. |

## Formula

`pavers_per_m² = 1 / ((L + g) × (W + g)) with L, W, g in metres; pavers = ceil(area × pavers_per_m² × (1 + waste/100)); bedding_sand = area × depth; base_gravel = area × depth; tonnes = m³ × 1.6; joint_sand_kg = area × (1 − L × W / ((L + g) × (W + g))) × paver_thickness × 1600.`

Interlocking concrete pavement practice (pavers on a 25 mm screeded sand bed over a compacted crushed-stone base, sand-filled joints of 2–5 mm); base and bedding volumes are as-placed, loose aggregate compacts by 10–20 %, and polymeric jointing sand coverage from the bag may differ from the geometric figure. Planning estimate only; check quantities against the supplier's coverage figures and local code before ordering.

## Data Sources

- Wikipedia – Pavement (architecture) — https://en.wikipedia.org/wiki/Pavement_(architecture) (reference, retrieved 2026-09-24)
- Wikipedia – Bulk density — https://en.wikipedia.org/wiki/Bulk_density (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/pavers?`
- `POST https://tttkmbb.com/api/v1/calculate/pavers` 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/pavers · OpenAPI operationId `estimate_pavers` 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": "pavers", "inputs": {…}}`

## Example

- 20 m², 200 × 100 × 60 mm pavers, 3 mm joints, 5 % waste, 25 mm bedding, 100 mm base: inputs `{"area_unit":"m2","area":20,"paver_length_mm":200,"paver_width_mm":100,"paver_thickness_mm":60,"joint_gap_mm":3,"waste_percent":5,"bedding_sand_depth_mm":25,"base_gravel_depth_mm":100}` → `{"area_m2":20,"pavers_per_m2":47.83,"pavers_before_waste":957,"pavers_needed":1005,"bedding_sand_m3":0.5,"base_gravel_m3":2,"base_gravel_yd3":2.616,"base_gravel_tonnes":3.2,"joint_sand_kg":83.5}`
- 200 ft², 229 × 152 mm (9 × 6 in) pavers, 3 mm joints, 5 % waste, 150 mm base: inputs `{"area_unit":"ft2","area":200,"paver_length_mm":229,"paver_width_mm":152,"joint_gap_mm":3,"waste_percent":5,"bedding_sand_depth_mm":25,"base_gravel_depth_mm":150}` → `{"area_m2":18.58,"pavers_per_m2":27.81,"pavers_per_ft2":2.58,"pavers_needed":543,"bedding_sand_m3":0.465,"base_gravel_m3":2.787,"base_gravel_yd3":3.645,"base_gravel_tonnes":4.46,"joint_sand_kg":57.1}`

```
GET https://tttkmbb.com/api/v1/calculate/pavers?area_unit=m2&area=20&paver_length_mm=200&paver_width_mm=100&paver_thickness_mm=60&joint_gap_mm=3&waste_percent=5&bedding_sand_depth_mm=25&base_gravel_depth_mm=100
```

## Limitations

The surface is poured concrete (use concrete-slab), tiles bedded in adhesive with grout (use tile), or you only need the aggregate weight for a layer (use gravel). Interlocking concrete pavement practice (pavers on a 25 mm screeded sand bed over a compacted crushed-stone base, sand-filled joints of 2–5 mm); base and bedding volumes are as-placed, loose aggregate compacts by 10–20 %, and polymeric jointing sand coverage from the bag may differ from the geometric figure. Planning estimate only; check quantities against the supplier's coverage figures and local code before ordering. All values are computed from the formula above; no measurement or live data is involved.

## FAQ

**How many pavers per square metre?**

About 48 for 200 × 100 mm pavers with 3 mm joints (50 with no joint), 28 for 229 × 152 mm and 11 for 300 × 300 mm; the joint is added to both dimensions before dividing.

**How thick should the base be?**

100–150 mm (4–6 in) of compacted crushed stone for patios and walkways on well-drained soil; 200–300 mm (8–12 in) for driveways or clay soils, placed in compacted lifts of about 100 mm.

**Is edge restraint included?**

No. Add the perimeter length of edge restraint (plastic, concrete or steel) and the spikes; without it the pavers spread and the joints open.

## Related

- [Gravel Calculator](https://tttkmbb.com/construction/gravel.md) — Weight and volume of other aggregate layers.
- [Tile Calculator](https://tttkmbb.com/construction/tile.md) — Rigid tiles with grout joints instead of sand-set pavers.
- [Concrete Slab Calculator](https://tttkmbb.com/construction/concrete-slab.md) — Poured concrete alternative for the same area.
