Board-on-board fence calculator
A 100-unit fence run with 6-unit boards overlapping by 1 covers 5 units per board, so you need exactly 20 boards. Enter the three lengths in one unit and get a count you can take to the yard. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Fence length
- 100
- Board width
- 6
- Overlap
- 1
- Effective width
- 5
- Boards exact
- 20
- Board count
- 20
A board-on-board fence calculator tells you how many vertical boards a privacy fence needs once you know the run length, the width of each board, and how far neighbouring boards overlap. Board-on-board construction, also called board-and-board, stacks a second layer of boards over the gaps of the first so the face stays closed from both sides of the yard. This tool converts those three lengths into an integer purchase count with a single overlapping-module formula, not a rough boards-per-foot guess. All three measurements must share the same linear unit—inches, centimetres, or millimetres—because the engine never converts units for you. The work is pure deterministic arithmetic with no network calls, no sampling, and no date-dependent shortcuts.
How board-on-board coverage works
A board-on-board privacy fence is a linear packing problem with overlap instead of a gap. Each vertical board occupies its own face width, but it also laps the neighbouring board so that no sight line remains through the run. If you simply divide length by board width you under-order, because the overlap steals coverage from every module; if you double a picket count you over-order, because picket math assumes an open space rather than a lap.
A common check uses a one-hundred unit run with six unit boards and one unit of overlap, which yields an effective width of five and an exact count of twenty boards with no leftover fraction. There is no catalogue of lumber SKUs and no site-specific post layout baked into the core number: you get a geometric take-off so you can raise the order for gates, corners, waste, and extra boards at grade changes after the pure run count.
Where a board-on-board fence take-off earns its keep
Homeowners meet this calculation when a privacy fence needs a lumber list before the weekend install, or when a materials quote must not under-order boards after the overlap is fixed by style—typically about one inch on a five-and-a-half inch one-by-six, or whatever lap the elevation drawing calls for. Fence builders and small contractors use the same numbers to turn a measured run into a shopping list before they leave the yard, then add waste for cut tops, damaged stock, and returns at gates and corners.
Product and education tools show learners why a one-unit lap on a six-unit board changes the order far more than eyeballing two boards per foot, and why a picket calculator with a gap is the wrong landing for this search. The tool sizes an overlapping privacy run only; it does not convert inches to millimetres, count posts, rails, or cap boards, or certify a fence against a building code.
Keep site judgement for those, and treat gapped picket counts and deck-board area take-offs as the separate search intents they already are.
FAQ
How is the board-on-board board count calculated?
All three inputs must use the same linear unit.
What happens if overlap exceeds board width?
Overlap must be strictly less than board width so each board still covers new fence length; a zero or negative module is rejected and is not billed.
Do fence length, board width, and overlap need the same unit?
Yes. Use inches, centimetres, millimetres, or feet consistently. The engine does not convert between units.
Does this include posts, rails, gates, or waste?
No. It returns the geometric board count for a straight overlapping run only. Add waste and hardware separately for your site and style.
Why not just divide the fence length by the board width?
Because each overlap steals coverage from every board, so that shortcut under-orders. With 6-unit boards and a 1-unit lap, each board covers only 5 units, which is why a 100-unit run takes 20 boards.
Related tools
For developers — API access
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.
API endpoint
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.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/build/board-on-board-fence \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"fence_length":100,"board_width":6,"overlap":1}'const res = await fetch("https://api.kit.forhosting.com/build/board-on-board-fence", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"fence_length": 100,
"board_width": 6,
"overlap": 1
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/build/board-on-board-fence",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"fence_length": 100,
"board_width": 6,
"overlap": 1
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/build/board-on-board-fence", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"fence_length":100,"board_width":6,"overlap":1}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"fence_length":100,"board_width":6,"overlap":1}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/build/board-on-board-fence", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"fence_length": 100,
"board_width": 6,
"overlap": 1
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "build.board_on_board_fence",
"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.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Limits
min_length | 1e-15 |
max_length | 1000000000000 |
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
What board-on-board coverage means and what the response contains
This calculator forms an effective width equal to board width minus overlap, divides the fence length by that module, and ceilings to a whole board_count you can take to the yard. The response echoes the three cleaned inputs, then publishes effective_width, the exact fractional boards_exact before ceiling, the integer board_count after ceiling, and a short formula string you can audit next to a quote. Rejected cases include missing fence length, board width, or overlap, non-finite values, magnitudes above the documented ceiling, non-positive length or board width, a negative overlap, and any case where overlap exceeds board width, because a zero or negative module cannot define a repeating fence pattern.
How fence length, board width, overlap, and errors are read
Fence length and board width must be strictly positive. Failed validation is not billed. Prefer fence_length for the run, with aliases length, run_length, L, and total_length so forms and query strings can reuse the same contract. Board width accepts board_width plus aliases width, board, and W. Overlap accepts overlap plus overlap_width, lap, and O; zero overlap is allowed when boards sit edge to edge on a single visual module, but a negative overlap is rejected because this calculator does not model a picket gap. Each field must be a finite number in the same linear unit, as a JSON number or as a numeric string; empty strings and non-finite values fail with invalid_input naming the field so a form can highlight that control. If overlap exceeds board width—including the equal case that would make the module zero—the request is rejected with a message that overlap exceeds board width, and that failure is the documented error path rather than a silent clamp or a division by zero. Computation then forms effective_width as board_width minus overlap, evaluates boards_exact as fence_length divided by effective_width, and ceilings with a tiny epsilon so values that sit just under an integer from floating-point noise still round to the intended whole count. Results are rounded to twelve decimal places so goldens, widgets, and API clients never disagree on a twenty-board take-off from a one-hundred by six by one run. Successful API calls use the published base of $0.002 per item. Pair the free browser run on this page with the priced API when you need the identical mathematical result inside an automated pipeline without re-implementing the overlap module yourself.
Where a board-on-board fence take-off earns its keep
Estimators embed the contract in take-off tools so a schedule of run length, board width, and overlap becomes an integer board_count without a spreadsheet full of hidden cells. On this page the work runs entirely in your browser; through the API each successful lookup costs $0.002, failed validation is not charged, and nothing is stored after the response returns. That split — free interactive exploration and a priced, identical API — matches the rest of the tier-A catalog and lets you move from a phone check on site to an automated pipeline without changing the mathematical result.
Integration use cases
DIY privacy-fence lumber lists
Convert measured run length, board width, and overlap into an integer board_count before you buy stock for a board-on-board privacy fence.
Trade quotes and elevation take-offs
Turn run schedules of length, board width, and lap into reproducible board_count values for written board-on-board fence quotes.
Estimating software and CI fixtures
Seed deterministic board_count and effective_width values for unit tests, property checks, and automated estimating pipelines.
Technical questions
What does the board-on-board fence calculator cost?
The browser tool is free. API requests use prepaid balance at $0.002 per successful call; invalid input is not billed.