# Wallpaper Calculator

> Estimates wallpaper rolls by the strip method: the strip length is the wall height plus 10 cm trim, rounded up to a whole pattern repeat; whole strips per roll are counted, door and window areas are deducted and the strips are converted to rolls.

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

## Purpose

Estimates wallpaper rolls by the strip method: the strip length is the wall height plus 10 cm trim, rounded up to a whole pattern repeat; whole strips per roll are counted, door and window areas are deducted and the strips are converted to rolls.

**Use when:** You need to know how many rolls of wallpaper to buy for a room from its perimeter (or wall area), height and the roll dimensions, with or without a pattern repeat.

**Do not use when:** You are painting (use paint) or boarding (use drywall) the walls, or the paper is a mural sold by the panel.

## Input

| Parameter | Type | Unit | Required | Description |
| --- | --- | --- | --- | --- |
| `unit_system` | enum: metric \| imperial |  | optional, default "metric" | Unit system of the length inputs (metric: m / cm / mm; imperial: ft / in). Outputs are reported in both systems. |
| `room_perimeter` | number | m or ft | optional | Total length of the walls to paper (m or ft), e.g. 2 × (length + width). Alternatively give wall_area. (> 0, max 10000) |
| `wall_height` | number | m or ft | required | Height to paper (m or ft); 10 cm (4 in) is added per strip for trimming. (> 0, max 100) |
| `wall_area` | number | m² or ft² | optional | Gross wall area before openings (m² or ft²); used instead of room_perimeter × wall_height when given. (> 0) |
| `doors` | integer |  | optional, default 1 | Number of doors; 1.9 m² (20.5 ft²) is deducted per door. (min 0, max 100) |
| `windows` | integer |  | optional, default 1 | Number of windows; 1.4 m² (15.1 ft²) is deducted per window. (min 0, max 100) |
| `roll_width` | number | m or ft | optional | Roll width. Default 0.53 m (metric, European roll) or 2.25 ft = 27 in (imperial, American roll). (> 0, max 10) |
| `roll_length` | number | m or ft | optional | Roll length. Default 10.05 m (metric) or 27 ft (imperial). (> 0, max 200) |
| `pattern_repeat` | number | cm or in | optional, default 0 | Vertical pattern repeat printed on the label (cm or in); 0 for plain or free-match paper. Each strip is rounded up to a whole number of repeats. (min 0, max 500) |

## Output

| Field | Type | Unit | Description |
| --- | --- | --- | --- |
| `gross_wall_area_m2` | number | m² | perimeter × height (or wall_area). |
| `net_wall_area_m2` | number | m² | Gross area minus door and window deductions. |
| `strip_length_m` | number | m | Height + 0.10 m trim, rounded up to whole pattern repeats. |
| `strip_length_ft` | number | ft | Strip length in feet. |
| `strips_per_roll` | integer |  | floor(roll_length / strip_length). |
| `strips_needed` | integer |  | ceil(net_wall_area / (roll_width × wall_height)). |
| `rolls_needed` | integer |  | ceil(strips_needed / strips_per_roll). |
| `roll_size_used` | string |  | Roll width × length assumed. |

## Formula

`strip = wall_height + 0.10 m, rounded up to a multiple of pattern_repeat; strips_per_roll = floor(roll_length / strip); net_area = perimeter × height − 1.9 m² × doors − 1.4 m² × windows; strips_needed = ceil(net_area / (roll_width × wall_height)); rolls = ceil(strips_needed / strips_per_roll).`

Rounding each strip up to a whole repeat is the standard allowance for pattern matching; drop (offset) matches can waste up to half a repeat more per strip. Buy all rolls from the same batch number.

## Data Sources

- Wikipedia – Wallpaper (roll sizes, pattern repeat) — https://en.wikipedia.org/wiki/Wallpaper (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/wallpaper?wall_height=…`
- `POST https://tttkmbb.com/api/v1/calculate/wallpaper` 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/wallpaper · OpenAPI operationId `estimate_wallpaper_rolls` 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": "wallpaper", "inputs": {…}}`

## Example

- 16 m perimeter, 2.4 m high, 1 door, 1 window, plain 0.53 × 10.05 m rolls: inputs `{"unit_system":"metric","room_perimeter":16,"wall_height":2.4,"doors":1,"windows":1}` → `{"gross_wall_area_m2":38.4,"net_wall_area_m2":35.1,"strip_length_m":2.5,"strips_per_roll":4,"strips_needed":28,"rolls_needed":7,"roll_size_used":"0.53 m × 10.05 m"}`
- 48 ft perimeter, 8 ft high, 2 doors, 2 windows, 24 in repeat, 27 in × 27 ft rolls: inputs `{"unit_system":"imperial","room_perimeter":48,"wall_height":8,"doors":2,"windows":2,"pattern_repeat":24}` → `{"gross_wall_area_m2":35.67,"net_wall_area_m2":29.07,"strip_length_ft":10,"strips_per_roll":2,"strips_needed":18,"rolls_needed":9}`

```
GET https://tttkmbb.com/api/v1/calculate/wallpaper?unit_system=metric&room_perimeter=16&wall_height=2.4&doors=1&windows=1
```

## Limitations

You are painting (use paint) or boarding (use drywall) the walls, or the paper is a mural sold by the panel. Rounding each strip up to a whole repeat is the standard allowance for pattern matching; drop (offset) matches can waste up to half a repeat more per strip. Buy all rolls from the same batch number. All values are computed from the formula above; no measurement or live data is involved.

## FAQ

**Should I buy a spare roll?**

Usually yes: one extra roll from the same batch covers mistakes and future repairs, because colours differ slightly between batches.

**Why does a pattern repeat need more rolls?**

Each strip must start at the same point of the pattern, so it is cut to a whole number of repeats; a 64 cm repeat on a 2.5 m strip means cutting 2.56 m, which reduces the whole strips per 10.05 m roll from 4 to 3.

## Related

- [Paint Calculator](https://tttkmbb.com/construction/paint.md) — Paint instead of paper for the same walls.
- [Drywall Calculator](https://tttkmbb.com/construction/drywall.md) — Board the walls before decorating.
