ForHosting KIT · Home, food & hobbies

Chair rail calculator

46.2 feet of chair rail, waste included, runs around a room with a 48-foot perimeter and 6 feet of doorways; in 8-foot sticks that is 6 pieces with 1.8 feet to spare. The default 10 percent waste covers miters and scarf joints. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Perimeter
48
Openings
6
Piece length
8
You get
Waste
0.1
Waste percent
10
Net run
42
Waste length
4.2

A chair rail calculator turns a room perimeter, the widths where molding is omitted, the stock stick length you buy, and a waste allowance into the linear length and integer piece count you need before you order trim.

How chair rail linear length and pieces are counted

Chair rail runs horizontally along walls at roughly chair-back height, so the primary take-off quantity is the room perimeter in a single length unit—feet with feet, metres with metres. Unlike continuous crown at the ceiling, chair rail often stops at doorways, wide cased openings, and built-ins, so those gap widths must leave the run before you buy sticks.

Retail molding is sold in fixed piece lengths, commonly eight feet or about two point four metres, and you almost never use every inch: inside and outside corners need miters, long walls need scarf joints, and a few pieces may have defects. This calculator first forms net run as perimeter minus openings, then models overage as a non-negative waste fraction: total length equals net run times one plus waste, where waste defaults to one tenth (ten percent) when you omit the field.

The piece count is the ceiling of that total length divided by piece length, so a remainder always buys one more stick rather than leaving a gap. Piece length must also be positive so the division is defined. Openings default to zero when omitted, must be non-negative, and must not exceed the perimeter.

The response does not convert units and does not optimise how leftover stubs from one wall feed another—keep units consistent and treat leftover as a planning signal rather than a nested cutting schedule.

Practical tips, limits, and related searches

Measure the wall circuit carefully at the height where the rail will sit: walk each wall and add the lengths, or sum length and width twice for a simple rectangle, then subtract only openings you will truly skip—doors that the rail does not cross, cased arches, and wide built-in gaps.

Ten percent waste is a common starting point for rooms with several corners; complex layouts, first-time miter work, or patterned profiles may justify fifteen to twenty percent, while long straight runs with few joints can drop toward five percent—enter those choices as fractions such as zero point one five, not as integers ten or fifteen. Keep dimensions inside the published absolute range so counts cannot overflow into non-finite results the solver must reject.

Prefer this capability when you already know the linear perimeter, opening totals, and stock piece length and only need linear length plus an integer buy quantity; if your source is a floor plan, measure each room and sum piece counts, or call once per room so leftover is not overstated.

Dining-room chair rail shopping list

Homeowners enter wall perimeter, door openings, and 8 ft stick length with 10% waste to get linear feet and a piece count before buying molding.

How many pieces of chair rail do I need?

The default waste is 0.1 (10%) for miters and joints.

What happens if perimeter is zero or negative?

A non-positive room perimeter is rejected instead of inventing a piece count.

Is waste a percentage or a fraction?

Waste is a unitless fraction of the net run: 0.1 means 10%, 0.15 means 15%. Do not send 10 for ten percent.

Do openings include windows?

Include any gap at rail height where you will not run molding—doors, cased openings, and sometimes windows if the rail stops there. Omit gaps you will bridge with continuous rail.

Is the chair rail calculator free?

The browser tool is free and runs locally.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/home/chair-rail

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/home/chair-rail \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"perimeter":48,"piece_length":8}'
{
  "perimeter": 48,
  "piece_length": 8
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "home.chair_rail",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

max_dim1000000000000
min_dim1e-15
max_waste2
HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Zero or negative perimeter is rejected with a clear invalid_input error instead of inventing free molding, and openings that exceed the perimeter fail the same way.

How chair rail linear length and pieces are counted

Perimeter must be strictly positive; a zero or negative perimeter has no physical meaning for a closed wall circuit and always returns invalid_input. On success the tool echoes rounded perimeter, openings, piece length, and waste, publishes waste_percent, net_run, waste_length, total_length, linear_feet (same number as total_length when you work in feet), pieces, leftover, formula, message, and steps so you can audit the arithmetic by hand or in automated tests before you place an order.

How to call the API and what comes back

Prefer sending numbers rather than pre-formatted strings when you control the client; when you must send strings, avoid unit suffixes or thousand separators that would fail the finite-number pattern. Send a JSON body with two required fields: perimeter (aliases room_perimeter, P, length, room_length, wall_perimeter) and piece_length (aliases stick_length, stick, board_length, molding_length, L). Optionally send openings (aliases door_openings, doors, opening_total, openings_total, gaps); when omitted it defaults to zero. Optionally send waste (aliases waste_fraction, waste_factor, scrap, allowance, overage); when omitted it defaults to zero point one. Perimeter and piece_length must be finite positive numbers within the published absolute range so the ratio and counts remain finite in IEEE double precision on the Worker and in the browser. openings when provided must be a non-negative finite number not greater than perimeter. waste when provided must be a non-negative finite number up to the published maximum of two (two hundred percent); string forms of numbers are accepted when they match a strict finite numeric pattern. On success the response sets pieces to the purchase count, total_length and linear_feet to net run times one plus waste, waste_length to the extra linear length on the net run, leftover to unused length after buying whole pieces, formula to the closed expression, message to a short English summary, and steps to an ordered substitution log. Failed validation—missing fields, non-finite numbers, zero or negative perimeter, openings larger than perimeter, non-positive piece_length, negative waste, or values outside absolute limits—returns invalid_input and is never charged. Pricing is a flat $0.002 per successful request with unit item and zero marginal unit price.

Practical tips, limits, and related searches

When teaching or writing tests, pair an exact multiple that lands on a whole piece count with a non-exact case that exercises the ceiling, and include a deliberate zero or negative perimeter to prove the invalid_input path. This landing targets people searching for a chair rail calculator, how many pieces of chair rail, chair rail linear feet, molding waste percentage, or room perimeter trim material list online; it is not a height-layout chart, not a paint estimator, not a crown-molding spring-angle guide, and not a multi-room inventory that shares offcuts across spaces. Failed tasks that return invalid_input do not consume prepaid balance, which keeps exploratory scripts cheap when you deliberately send zero perimeter to verify error handling. Round-trip checks are easy: recompute perimeter minus openings, multiply by one plus waste by hand, divide by piece length, take the ceiling, and confirm the published pieces and leftover match within the same twelve-decimal rounding used for the JSON fields.

Remodeler whole-house rail take-off

Contractors feed each room perimeter, openings, and stock piece length into the API and attach pieces, total_length, and steps to a transparent quote.

Golden fixtures for construction apps

Developers generate known-good exact and ceiling cases plus deliberate non-positive perimeter rejections for unit tests and CI.

Read the full KIT documentation →