Tile spacer calculator
100 tiles laid with cross spacers need about 100 spacers, or 110 with the default 10% spare margin, because each cross serves four corners. Wedges that serve a single corner take roughly four per tile. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Tiles
- 100
- Corners per tile
- 4 spacers
- Spacers per corner
- 1
- Share factor
- 4
- Waste percent
- 10
This tile spacer calculator estimates how many plastic or rubber spacers you should buy before laying floor or wall tiles. You enter the number of tiles, how many spacer pieces sit at each tile corner, how many corners each tile has, how many corners share one physical spacer, and an optional waste percentage for spares. Cross-shaped spacers usually serve four meeting corners in a grid interior, so the share factor defaults to four and the estimate is often close to one spacer per tile before waste. Wedge or horseshoe spacers that do not share corners use a share factor of one and need roughly four pieces per rectangular tile. The engine multiplies tiles by corners and spacers per corner, divides by the share factor, then ceilings the result after applying waste. It is pure arithmetic with no network calls, no sampling, and no date-dependent shortcuts.
Where spacer take-offs fit in DIY, trade quotes, and software
Homeowners meet this calculation when a bathroom remodel needs a second bag of two-millimetre crosses after a surprise extra box of tiles, or when a kitchen splashback order must stay inside a small hardware budget. Tile fitters and small contractors use the same numbers to turn a measured layout into a shopping list before they leave the yard, switching share factor when the job uses horseshoe wedges on edges and crosses in the field.
Estimators embed the contract in take-off tools so a schedule of tile counts becomes spacer packs without a spreadsheet full of hidden cells and ad-hoc multipliers. Product and education tools show learners why one hundred tiles with default cross settings need about one hundred ten spacers at ten percent waste, while the same count with share factor one needs several hundred pieces.
Pair it with floor tile, wall tile, and grout helpers when you are building a small lab of free, deterministic home-improvement calculators, and keep a site-specific margin when long thin runs leave many edge pieces that a pure interior share model undercounts.
What you can do with it
DIY bathroom and floor shopping lists
Convert a known tile count into a pack of cross or wedge spacers before you buy bags at the merchant.
Trade quotes and take-offs
Turn room schedules of tile counts into reproducible spacer quantities for written quotes and material lists.
FAQ
What does the tile spacer calculator cost?
It is free in your browser on this page.
How is the spacer count calculated?
Defaults are 4 corners, 1 spacer per corner, share 4, and 10% waste.
When should I change the share factor?
Use 4 for cross spacers shared by four interior corners. Use 1 for wedges or one-per-corner pieces that are not shared. Use 2 for products designed for two-tile meetings.
What happens if tiles is zero or negative?
The tile count must be a positive integer of at least one.
Does the result include joint width or grout?
No. This tool only estimates spacer piece counts. Use a tile grout calculator for kilograms of grout from tile size, joint width, and area.
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/home/tile-spacers \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"tiles":100}'const res = await fetch("https://api.kit.forhosting.com/home/tile-spacers", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"tiles": 100
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/home/tile-spacers",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"tiles": 100
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/home/tile-spacers", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"tiles":100}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"tiles":100}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/home/tile-spacers", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"tiles": 100
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "home.tile_spacers",
"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.
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 the spacer estimate means and what the response contains
Tile spacers keep joint widths even while adhesive sets, so the pack size you carry to site depends on how many tiles you install and how those spacers sit at tile corners. A classic cross spacer sits at the intersection of four tiles and is counted once for four corner slots. A T-spacer or wedge may serve fewer corners, which is why this calculator exposes an explicit share factor instead of hard-coding one product shape. The model multiplies the tile count by corners per tile and by spacers per corner to form corner slots, then divides by share factor to get the exact geometric count. Ceiling that value gives a base purchase quantity without spare margin; applying waste percent and ceiling again gives the recommended spacers_needed field for shopping lists. The response echoes every parsed input, returns corner_slots, spacers_exact, spacers_base, spacers_needed, a unit tag, a method tag, and a short formula string you can audit next to a quote. There is no brand catalogue and no automatic conversion from room square metres to tile count: you supply the tile total from your layout or from a separate floor or wall tile calculator. Rejected cases include missing tiles, non-integer or non-positive tile counts, non-positive spacers per corner or share factor, corners below one, and waste percent outside zero to one hundred inclusive.
How inputs are read, defaults applied, and results stay reproducible
Computation is a handful of multiplications, one division, and two ceilings with a tiny epsilon so floating noise never bumps a clean integer into the next pack. Require tiles as a positive integer, with aliases tile_count, n, and count so forms and query strings can reuse the same contract. Optional spacers_per_corner defaults to one and accepts aliases per_corner, spc, and spacers_at_corner when a layout calls for stacked or double pieces at a corner. Optional corners_per_tile defaults to four for rectangular tiles and may be raised or lowered for unusual shapes via corners. Optional share_factor defaults to four for interior cross spacers; set it to one for wedges that do not share, or to two when a product is designed for edges that meet two tiles only, using aliases share and corners_per_spacer. Optional waste_percent defaults to ten percent to cover breakage, edge pieces, and leftover inventory, with aliases waste, margin, and spare_percent; set zero when you want a pure geometric ceil without margin. Rounding on fractional fields uses fixed decimal places and collapses negative zero for clean JSON goldens. 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 corner-slot formula yourself.
Where spacer take-offs fit in DIY, trade quotes, and software
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 KIT 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
Estimating software and CI fixtures
Seed deterministic spacers_needed values for unit tests, property checks, and automated take-off pipelines.