# Rebar Calculator

> Lays out a two-way rebar grid in a rectangular slab from the bar spacing and edge cover (bars per direction = floor((span − 2 × cover) / spacing) + 1), then reports the bar counts, run lengths, total length and weight from the bar's unit mass, the stock lengths needed when runs exceed the stock length (lap = 40 bar diameters per splice), the grid intersections to tie and an estimate of bar chairs. Planning estimate only.

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

## Purpose

Lays out a two-way rebar grid in a rectangular slab from the bar spacing and edge cover (bars per direction = floor((span − 2 × cover) / spacing) + 1), then reports the bar counts, run lengths, total length and weight from the bar's unit mass, the stock lengths needed when runs exceed the stock length (lap = 40 bar diameters per splice), the grid intersections to tie and an estimate of bar chairs. Planning estimate only.

**Use when:** You need to order reinforcing bar (metric 10–20 mm or US #3–#6) for a slab, footing pad or driveway with a single-layer grid.

**Do not use when:** The design requires two layers, bent bars, stirrups or a specific bar schedule from the engineer (use the schedule), or you want welded mesh (divide the area by the sheet size instead). Bar size and spacing are structural decisions, not outputs of this calculator.

## Input

| Parameter | Type | Unit | Required | Description |
| --- | --- | --- | --- | --- |
| `slab_length` | number | m or ft | required | Slab length in metres or feet (see unit). (> 0, max 1000) |
| `slab_width` | number | m or ft | required | Slab width in metres or feet. (> 0, max 1000) |
| `unit` | enum: m \| ft |  | optional, default "m" | Unit of the length inputs (m or ft). Lengths are reported in both units. |
| `spacing_unit` | enum: mm \| in |  | optional, default "mm" | Unit of spacing and edge_cover. |
| `spacing` | number | mm or in | optional | Centre-to-centre spacing of the bars, the same in both directions; default 300 mm or 12 in. (> 0, max 2000) |
| `edge_cover` | number | mm or in | optional | Distance from the slab edge to the end of the bars and to the first bar; default 75 mm or 3 in (concrete cast against earth). (min 0, max 500) |
| `bar_size` | enum: 10_mm \| 12_mm \| 16_mm \| 20_mm \| no_3 \| no_4 \| no_5 \| no_6 |  | optional, default "12_mm" | Metric bar diameter or US bar number, with its nominal mass per length. |
| `bar_stock_length` | number | m or ft | optional | Length of the bars as supplied (same unit as the slab); default 6 m or 20 ft. Common: 6, 9, 12 m; 20, 30, 40, 60 ft. (> 0, max 30) |
| `lap_multiplier` | number |  | optional, default 40 | Splice lap length as a multiple of the bar diameter; 40 diameters is a common minimum for tension laps in slabs (check the design). (min 0, max 100) |

## Output

| Field | Type | Unit | Description |
| --- | --- | --- | --- |
| `bars_lengthwise` | integer |  | floor((slab_width − 2 × cover) / spacing) + 1, each slab_length − 2 × cover long. |
| `bars_widthwise` | integer |  | floor((slab_length − 2 × cover) / spacing) + 1, each slab_width − 2 × cover long. |
| `total_bars` | integer |  | bars_lengthwise + bars_widthwise. |
| `bar_length_lengthwise_m` | number | m | slab_length − 2 × cover. |
| `bar_length_widthwise_m` | number | m | slab_width − 2 × cover. |
| `total_length_m` | number | m | Sum of all run lengths, before laps. |
| `total_length_ft` | number | ft | Same in feet. |
| `total_weight_kg` | number | kg | total_length × unit mass, before laps. |
| `total_weight_lb` | number | lb | Same in pounds. |
| `lap_length_m` | number | m | lap_multiplier × bar diameter. |
| `splices` | integer |  | Total lap splices needed because runs exceed the stock length. |
| `stock_pieces` | integer |  | Per run, the smallest n with n × stock ≥ run + (n − 1) × lap, summed over all runs (offcuts are not reused). |
| `total_length_with_laps_m` | number | m | total_length + splices × lap_length. |
| `grid_intersections` | integer |  | bars_lengthwise × bars_widthwise; tie every intersection or at least every second one. |
| `chairs_estimate` | integer |  | ceil(slab area / 0.8 m²), i.e. supports about 0.9 m (3 ft) apart each way. |

## Formula

`bars_lengthwise = floor((W − 2c) / s) + 1 with length L − 2c; bars_widthwise = floor((L − 2c) / s) + 1 with length W − 2c; total_length = Σ bars × length; weight = total_length × kg/m (10 mm 0.617, 12 mm 0.888, 16 mm 1.578, 20 mm 2.466; #3 0.376, #4 0.668, #5 1.043, #6 1.502 lb/ft); lap = lap_multiplier × diameter; pieces per run = ceil((run − lap) / (stock − lap)); chairs = ceil(area / 0.8 m²).`

Single-layer two-way grid with the first and last bars one cover distance from the edges, unit masses from the metric (0.006165 × d² kg/m) and ASTM A615 bar tables, and laps added only where a run is longer than the stock; dowels, bent bars, tie wire (about 0.3 m per intersection) and the second layer of thick slabs are not included. Planning estimate only; check quantities against the supplier's coverage figures and local code before ordering.

## Data Sources

- Wikipedia – Rebar (size tables) — https://en.wikipedia.org/wiki/Rebar (reference, retrieved 2026-09-24)
- ICC – 2021 International Residential Code, Chapter 4 Foundations (R403 footings) — https://codes.iccsafe.org/content/IRC2021P2/chapter-4-foundations (standard, 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/rebar?slab_length=…&slab_width=…`
- `POST https://tttkmbb.com/api/v1/calculate/rebar` 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/rebar · OpenAPI operationId `estimate_rebar` 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": "rebar", "inputs": {…}}`

## Example

- 10 × 6 m slab, 12 mm bars at 300 mm, 75 mm cover, 6 m stock, 40 d laps: inputs `{"slab_length":10,"slab_width":6,"unit":"m","spacing_unit":"mm","spacing":300,"edge_cover":75,"bar_size":"12_mm","bar_stock_length":6,"lap_multiplier":40}` → `{"bars_lengthwise":20,"bars_widthwise":33,"total_bars":53,"bar_length_lengthwise_m":9.85,"bar_length_widthwise_m":5.85,"total_length_m":390.05,"total_length_ft":1279.7,"total_weight_kg":346.36,"total_weight_lb":763.6,"lap_length_m":0.48,"splices":20,"stock_pieces":73,"total_length_with_laps_m":399.65,"grid_intersections":660,"chairs_estimate":75}`
- 20 × 12 ft slab, #4 bars at 12 in, 3 in cover, 20 ft stock: inputs `{"slab_length":20,"slab_width":12,"unit":"ft","spacing_unit":"in","spacing":12,"edge_cover":3,"bar_size":"no_4","bar_stock_length":20}` → `{"bars_lengthwise":12,"bars_widthwise":20,"total_bars":32,"bar_length_lengthwise_m":5.944,"bar_length_widthwise_m":3.505,"total_length_ft":464,"total_length_m":141.43,"total_weight_lb":309.95,"total_weight_kg":140.59,"splices":0,"stock_pieces":32,"grid_intersections":240,"chairs_estimate":28}`

```
GET https://tttkmbb.com/api/v1/calculate/rebar?slab_length=10&slab_width=6&unit=m&spacing_unit=mm&spacing=300&edge_cover=75&bar_size=12_mm&bar_stock_length=6&lap_multiplier=40
```

## Limitations

The design requires two layers, bent bars, stirrups or a specific bar schedule from the engineer (use the schedule), or you want welded mesh (divide the area by the sheet size instead). Bar size and spacing are structural decisions, not outputs of this calculator. Single-layer two-way grid with the first and last bars one cover distance from the edges, unit masses from the metric (0.006165 × d² kg/m) and ASTM A615 bar tables, and laps added only where a run is longer than the stock; dowels, bent bars, tie wire (about 0.3 m per intersection) and the second layer of thick slabs are not included. 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

**Which direction is 'lengthwise'?**

Bars running parallel to slab_length; they are spaced across the width, so their count comes from the width and their length from slab_length minus cover at both ends.

**Why 40 bar diameters of lap?**

40 d is a common minimum tension lap for deformed bars in slabs (480 mm for 12 mm bars, 20 in for #4); design codes give longer laps for high-strength steel, top bars or low-grade concrete, so use the engineer's figure when there is one.

**Rebar or welded mesh?**

For thin residential slabs (100–150 mm) welded mesh sheets are usually quicker; rebar grids suit thicker slabs, footings and slabs with loads. This calculator counts bars only.

## Related

- [Concrete Slab Calculator](https://tttkmbb.com/construction/concrete-slab.md) — Concrete volume of the slab.
- [Concrete Footing Calculator](https://tttkmbb.com/construction/concrete-footing.md) — Concrete for footings the bars sit in.
- [Steel Weight Calculator](https://tttkmbb.com/construction/steel-weight.md) — Weight of other steel sections.
