{
  "slug": "flooring",
  "title": "Flooring Calculator",
  "heading": "Flooring Calculator",
  "category": "other",
  "url": "https://www.revenuelab.fyi/toolbox/flooring",
  "summary": "Boxes of flooring and total installed cost.",
  "description": "Flooring is sold by the box, and you cannot buy a partial one. Order at least 10% over for cuts — 15% if you are running planks diagonally or the room has lots of jogs.",
  "formula": "Boxes = Area × (1 + waste) ÷ Coverage per box, rounded up.",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=flooring",
  "inputs": [
    {
      "id": "area",
      "label": "Room area",
      "kind": "number",
      "hint": null,
      "default": 420,
      "unit": "sq ft",
      "min": 0,
      "max": null
    },
    {
      "id": "boxCoverage",
      "label": "Coverage per box",
      "kind": "number",
      "hint": null,
      "default": 22.5,
      "unit": "sq ft",
      "min": 1,
      "max": null
    },
    {
      "id": "boxPrice",
      "label": "Price per box",
      "kind": "number",
      "hint": null,
      "default": 62,
      "unit": "$",
      "min": 0,
      "max": null
    },
    {
      "id": "labor",
      "label": "Installation labour",
      "kind": "number",
      "hint": null,
      "default": 3,
      "unit": "$/sq ft",
      "min": 0,
      "max": null
    },
    {
      "id": "waste",
      "label": "Waste allowance",
      "kind": "number",
      "hint": "Cuts, breakage, and mistakes. 10% is standard.",
      "default": 10,
      "unit": "%",
      "min": 0,
      "max": 40
    }
  ],
  "outputs": [
    {
      "id": "boxes",
      "label": "Boxes to order",
      "format": "number",
      "hint": null,
      "primary": true
    },
    {
      "id": "material",
      "label": "Material cost",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "labor",
      "label": "Labour cost",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "total",
      "label": "Total installed cost",
      "format": "currency",
      "hint": null,
      "primary": false
    },
    {
      "id": "perSqFt",
      "label": "All-in per sq ft",
      "format": "currency",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Room area: 420 sq ft",
      "Coverage per box: 22.5 sq ft",
      "Price per box: 62 $",
      "Installation labour: 3 $/sq ft",
      "Waste allowance: 10 %"
    ],
    "outputs": [
      "Boxes to order: 21",
      "Material cost: $1,302.00",
      "Labour cost: $1,260.00",
      "Total installed cost: $2,562.00",
      "All-in per sq ft: $6.10"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter room area (sq ft).",
      "Enter coverage per box (sq ft).",
      "Enter price per box ($).",
      "Enter installation labour ($/sq ft).",
      "Enter waste allowance (%) — Cuts, breakage, and mistakes. 10% is standard..",
      "Read your boxes to order on the right — it updates as you type.",
      "Hit Share to keep the scenario or send it to someone."
    ]
  },
  "scenarios": [
    {
      "name": "Conservative",
      "description": "Lower-end numbers — what if things land soft?",
      "values": {
        "area": 250,
        "boxCoverage": 13.5,
        "boxPrice": 37,
        "labor": 1.7999999999999998,
        "waste": 6
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "area": 420,
        "boxCoverage": 22.5,
        "boxPrice": 62,
        "labor": 3,
        "waste": 10
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "area": 670,
        "boxCoverage": 36,
        "boxPrice": 99,
        "labor": 4.800000000000001,
        "waste": 16
      }
    }
  ],
  "limitations": [
    "Estimates assume standard, average conditions — local rules, pricing, and materials vary.",
    "Results are rounded for readability; add a buffer before ordering, booking, or committing.",
    "Double-check anything with a real cost attached against a local quote."
  ],
  "faq": [
    {
      "q": "How does the flooring calculator work?",
      "a": "Flooring is sold by the box, and you cannot buy a partial one. Order at least 10% over for cuts — 15% if you are running planks diagonally or the room has lots of jogs. The underlying maths is: Boxes = Area × (1 + waste) ÷ Coverage per box, rounded up."
    },
    {
      "q": "What do I need to enter?",
      "a": "5 values: room area, coverage per box, price per box, installation labour, and waste allowance. Each field starts with a sensible default, so you can change one number at a time and watch the result move."
    },
    {
      "q": "What does the boxes to order result mean?",
      "a": "It is returned as a whole number and updates live as you edit the inputs, so you can compare two or three versions of a scenario in a few seconds."
    },
    {
      "q": "Is this calculator free, and do I need an account?",
      "a": "Yes, it's free, and no account is required. Nothing you type is stored on our servers — the maths runs entirely in your browser."
    },
    {
      "q": "How accurate is the result?",
      "a": "It applies the standard formula exactly, so the arithmetic is precise. Estimates assume standard, average conditions — local rules, pricing, and materials vary."
    },
    {
      "q": "Who is this tool for?",
      "a": "It's built for anyone doing everyday planning maths — a quick estimate that would otherwise need four browser tabs and a calculator app."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/tile",
    "https://www.revenuelab.fyi/toolbox/carpet",
    "https://www.revenuelab.fyi/toolbox/square-footage"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Flooring Calculator (https://www.revenuelab.fyi/toolbox/flooring)"
}