{
  "title": "Flooring calculator",
  "human_url": "https://happytails.ai/en/calculators/flooring-calculator/",
  "agent_url": "https://happytails.ai/agents/en/calculators/flooring-calculator/",
  "language": "en",
  "markdown_url": "https://happytails.ai/en/calculators/flooring-calculator.md",
  "content": "Flooring calculator\nTurn room measurements into flooring packs. Include deductions, your waste allowance and the coverage printed on the pack.\nHow can we improve this tool?\nReport a problem or share an idea.\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\nHow to use Flooring calculator\nMeasure a room or enter a combined total area.\nAdd deductions, waste and the pack's published coverage.\nCheck whole packs and keep the downloaded calculation.\nUseful next steps\nPaint calculator\nArea\nLumber board foot calculator\nStart with the area you need to cover\nEnter the length and width of a rectangular room, optionally repeated for identical rooms. For different rooms or an irregular shape, divide the layout into rectangles, add their areas and use Direct area. The excluded area is deducted once from the total job.\nAllow for your layout\nCuts, angles and installation patterns affect waste. Set your allowance to match the product instructions and layout. The calculator applies that percentage to the net area before calculating packs. It does not work out individual board cuts or optimize a laying pattern.\nBuy whole packs\nEnter the actual coverage per pack in square metres or square feet. Packs round up. A 20 m² floor with 10% waste needs 22 m²; at 2.2 m² per pack that is exactly 10 packs. Purchased coverage above the net area includes both your allowance and any additional pack rounding.\nTake the numbers with you\nThe CSV, text and JSON downloads record measured area, deductions, required area, pack coverage and rounding surplus. The estimate is calculated locally. It does not validate an underlay, subfloor or installation method.",
  "content_format": "text/plain",
  "visibility": "public",
  "links": [
    {
      "name": "Paint calculator",
      "url": "https://happytails.ai/en/calculators/paint-calculator/"
    },
    {
      "name": "Area",
      "url": "https://happytails.ai/en/unit-converters/area/"
    },
    {
      "name": "Lumber board foot calculator",
      "url": "https://happytails.ai/en/calculators/lumber-board-foot-calculator/"
    }
  ],
  "tool": {
    "id": "flooring-calculator",
    "category": "calculators",
    "built": true,
    "requirements": "Supports rectangular rooms, identical-room quantities up to 10,000, or a direct total area. Waste can be 0–100%. Pack counts are limited to 1 billion. An irregular room is not inferred from its bounding rectangle.",
    "implementation": {
      "fields": [
        {
          "key": "mode",
          "label": "Measure",
          "value": "Room dimensions",
          "type": "select",
          "values": [
            "Room dimensions",
            "Direct area"
          ]
        },
        {
          "key": "length",
          "label": "Room length",
          "value": 5,
          "type": "number",
          "min": 0,
          "max": 1000000000,
          "step": "any",
          "showWhen": {
            "mode": [
              "Room dimensions"
            ]
          }
        },
        {
          "key": "width",
          "label": "Room width",
          "value": 4,
          "type": "number",
          "min": 0,
          "max": 1000000000,
          "step": "any",
          "showWhen": {
            "mode": [
              "Room dimensions"
            ]
          }
        },
        {
          "key": "dimensionUnit",
          "label": "Room measurement unit",
          "value": "m",
          "type": "select",
          "values": [
            "mm",
            "cm",
            "m",
            "in",
            "ft"
          ],
          "showWhen": {
            "mode": [
              "Room dimensions"
            ]
          }
        },
        {
          "key": "rooms",
          "label": "Identical rooms",
          "value": 1,
          "type": "number",
          "min": 1,
          "max": 10000,
          "step": 1,
          "showWhen": {
            "mode": [
              "Room dimensions"
            ]
          }
        },
        {
          "key": "directArea",
          "label": "Total measured area",
          "value": 20,
          "type": "number",
          "min": 0,
          "max": 1000000000,
          "step": "any",
          "showWhen": {
            "mode": [
              "Direct area"
            ]
          }
        },
        {
          "key": "areaUnit",
          "label": "Measured area unit",
          "value": "m²",
          "type": "select",
          "values": [
            "m²",
            "ft²"
          ],
          "showWhen": {
            "mode": [
              "Direct area"
            ]
          }
        },
        {
          "key": "deduction",
          "label": "Total area to exclude",
          "value": 0,
          "type": "number",
          "min": 0,
          "max": 1000000000,
          "step": "any",
          "help": "Deduct once from the whole job, not once per room."
        },
        {
          "key": "deductionUnit",
          "label": "Excluded area unit",
          "value": "m²",
          "type": "select",
          "values": [
            "m²",
            "ft²"
          ]
        },
        {
          "key": "waste",
          "label": "Extra allowance (%)",
          "value": 10,
          "type": "number",
          "min": 0,
          "max": 100,
          "step": "any"
        },
        {
          "key": "packCoverage",
          "label": "Coverage per pack",
          "value": 2.2,
          "type": "number",
          "min": 0,
          "max": 1000000000,
          "step": "any",
          "help": "Use the area printed on your selected pack."
        },
        {
          "key": "packUnit",
          "label": "Pack coverage unit",
          "value": "m²",
          "type": "select",
          "values": [
            "m²",
            "ft²"
          ]
        }
      ],
      "input": false,
      "live": true,
      "presentation": "metrics",
      "note": "Calculate measured coverage, waste allowance and whole packs. For different or irregular rooms, total their component rectangles and use Direct area. Changing units keeps the entered numbers. All calculations stay on your device. These estimates do not establish structural safety or code compliance.",
      "experience": {
        "automatic": true,
        "single": false,
        "inputMaxLength": 1000000,
        "inputMode": "text",
        "label": "Your text",
        "placeholder": "Type or paste your input…",
        "help": "Change the input or settings to update your result. Results update as you type. Up to 1,000,000 characters.",
        "action": null
      },
      "mode": "automatic",
      "interactive": false
    },
    "execution": "Browser interface",
    "api": null,
    "browser_agent": {
      "supported": true,
      "name": "run_current_tool",
      "discovery": "WebMCP on the human page in a supporting browser",
      "verification": "See audit/API-AUDIT.md; availability is not verification"
    }
  },
  "markdown": "# Flooring calculator\n\n- Human page: https://happytails.ai/en/calculators/flooring-calculator/\n- Markdown: https://happytails.ai/en/calculators/flooring-calculator.md\n- Structured JSON: https://happytails.ai/agents/en/calculators/flooring-calculator/index.json\n- Visibility: public\n\n## Tool capabilities\n\n| Property | Value |\n| --- | --- |\n| Tool ID | `flooring-calculator` |\n| Category | calculators |\n| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |\n| Browser execution | Automatic updates after valid input or file selection. |\n| Browser processing | Browser; see tool notes for network behavior. |\n| HTTP API | Not callable through HTTP. |\n| Browser-agent interface | run_current_tool |\n\n### Implementation notes\n\nCalculate measured coverage, waste allowance and whole packs. For different or irregular rooms, total their component rectangles and use Direct area. Changing units keeps the entered numbers. All calculations stay on your device. These estimates do not establish structural safety or code compliance.\n\n### Inputs and settings\n\nNo free-text input is required. Use the file inputs and/or settings below.\n\n| Setting | Meaning | Control type | Default | Constraints |\n| --- | --- | --- | --- | --- |\n| `mode` | Measure | select | \"Room dimensions\" | Allowed: Room dimensions, Direct area |\n| `length` | Room length | number | 5 | min=0 max=1000000000 step=any |\n| `width` | Room width | number | 4 | min=0 max=1000000000 step=any |\n| `dimensionUnit` | Room measurement unit | select | \"m\" | Allowed: mm, cm, m, in, ft |\n| `rooms` | Identical rooms | number | 1 | min=1 max=10000 step=1 |\n| `directArea` | Total measured area | number | 20 | min=0 max=1000000000 step=any |\n| `areaUnit` | Measured area unit | select | \"m²\" | Allowed: m², ft² |\n| `deduction` | Total area to exclude | number | 0 | min=0 max=1000000000 step=any |\n| `deductionUnit` | Excluded area unit | select | \"m²\" | Allowed: m², ft² |\n| `waste` | Extra allowance (%) | number | 10 | min=0 max=100 step=any |\n| `packCoverage` | Coverage per pack | number | 2.2 | min=0 max=1000000000 step=any |\n| `packUnit` | Pack coverage unit | select | \"m²\" | Allowed: m², ft² |\n\n### Browser-agent workflow\n\n1. Open the human page in a browser that supports WebMCP.\n2. Discover the interface exposed by that page; use its actual schema.\n3. Select files on the page first when the tool requires files.\n4. Call `run_current_tool` with valid input and settings.\n5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.\n\nCalls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.\n\n### Planning specification\n\nSupports rectangular rooms, identical-room quantities up to 10,000, or a direct total area. Waste can be 0–100%. Pack counts are limited to 1 billion. An irregular room is not inferred from its bounding rectangle.\n\nThis describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.\n\n### Complete machine-readable capability record\n\n```json\n{\n  \"id\": \"flooring-calculator\",\n  \"category\": \"calculators\",\n  \"built\": true,\n  \"requirements\": \"Supports rectangular rooms, identical-room quantities up to 10,000, or a direct total area. Waste can be 0–100%. Pack counts are limited to 1 billion. An irregular room is not inferred from its bounding rectangle.\",\n  \"implementation\": {\n    \"fields\": [\n      {\n        \"key\": \"mode\",\n        \"label\": \"Measure\",\n        \"value\": \"Room dimensions\",\n        \"type\": \"select\",\n        \"values\": [\n          \"Room dimensions\",\n          \"Direct area\"\n        ]\n      },\n      {\n        \"key\": \"length\",\n        \"label\": \"Room length\",\n        \"value\": 5,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"max\": 1000000000,\n        \"step\": \"any\",\n        \"showWhen\": {\n          \"mode\": [\n            \"Room dimensions\"\n          ]\n        }\n      },\n      {\n        \"key\": \"width\",\n        \"label\": \"Room width\",\n        \"value\": 4,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"max\": 1000000000,\n        \"step\": \"any\",\n        \"showWhen\": {\n          \"mode\": [\n            \"Room dimensions\"\n          ]\n        }\n      },\n      {\n        \"key\": \"dimensionUnit\",\n        \"label\": \"Room measurement unit\",\n        \"value\": \"m\",\n        \"type\": \"select\",\n        \"values\": [\n          \"mm\",\n          \"cm\",\n          \"m\",\n          \"in\",\n          \"ft\"\n        ],\n        \"showWhen\": {\n          \"mode\": [\n            \"Room dimensions\"\n          ]\n        }\n      },\n      {\n        \"key\": \"rooms\",\n        \"label\": \"Identical rooms\",\n        \"value\": 1,\n        \"type\": \"number\",\n        \"min\": 1,\n        \"max\": 10000,\n        \"step\": 1,\n        \"showWhen\": {\n          \"mode\": [\n            \"Room dimensions\"\n          ]\n        }\n      },\n      {\n        \"key\": \"directArea\",\n        \"label\": \"Total measured area\",\n        \"value\": 20,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"max\": 1000000000,\n        \"step\": \"any\",\n        \"showWhen\": {\n          \"mode\": [\n            \"Direct area\"\n          ]\n        }\n      },\n      {\n        \"key\": \"areaUnit\",\n        \"label\": \"Measured area unit\",\n        \"value\": \"m²\",\n        \"type\": \"select\",\n        \"values\": [\n          \"m²\",\n          \"ft²\"\n        ],\n        \"showWhen\": {\n          \"mode\": [\n            \"Direct area\"\n          ]\n        }\n      },\n      {\n        \"key\": \"deduction\",\n        \"label\": \"Total area to exclude\",\n        \"value\": 0,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"max\": 1000000000,\n        \"step\": \"any\",\n        \"help\": \"Deduct once from the whole job, not once per room.\"\n      },\n      {\n        \"key\": \"deductionUnit\",\n        \"label\": \"Excluded area unit\",\n        \"value\": \"m²\",\n        \"type\": \"select\",\n        \"values\": [\n          \"m²\",\n          \"ft²\"\n        ]\n      },\n      {\n        \"key\": \"waste\",\n        \"label\": \"Extra allowance (%)\",\n        \"value\": 10,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"max\": 100,\n        \"step\": \"any\"\n      },\n      {\n        \"key\": \"packCoverage\",\n        \"label\": \"Coverage per pack\",\n        \"value\": 2.2,\n        \"type\": \"number\",\n        \"min\": 0,\n        \"max\": 1000000000,\n        \"step\": \"any\",\n        \"help\": \"Use the area printed on your selected pack.\"\n      },\n      {\n        \"key\": \"packUnit\",\n        \"label\": \"Pack coverage unit\",\n        \"value\": \"m²\",\n        \"type\": \"select\",\n        \"values\": [\n          \"m²\",\n          \"ft²\"\n        ]\n      }\n    ],\n    \"input\": false,\n    \"live\": true,\n    \"presentation\": \"metrics\",\n    \"note\": \"Calculate measured coverage, waste allowance and whole packs. For different or irregular rooms, total their component rectangles and use Direct area. Changing units keeps the entered numbers. All calculations stay on your device. These estimates do not establish structural safety or code compliance.\",\n    \"experience\": {\n      \"automatic\": true,\n      \"single\": false,\n      \"inputMaxLength\": 1000000,\n      \"inputMode\": \"text\",\n      \"label\": \"Your text\",\n      \"placeholder\": \"Type or paste your input…\",\n      \"help\": \"Change the input or settings to update your result. Results update as you type. Up to 1,000,000 characters.\",\n      \"action\": null\n    },\n    \"mode\": \"automatic\",\n    \"interactive\": false\n  },\n  \"execution\": \"Browser interface\",\n  \"api\": null,\n  \"browser_agent\": {\n    \"supported\": true,\n    \"name\": \"run_current_tool\",\n    \"discovery\": \"WebMCP on the human page in a supporting browser\",\n    \"verification\": \"See audit/API-AUDIT.md; availability is not verification\"\n  }\n}\n```\n\n## Page guide\n\nTurn room measurements into flooring packs. Include deductions, your waste allowance and the coverage printed on the pack.\n\nHow can we improve this tool?\n\nReport a problem or share an idea.\n\nPlease leave out private information. Your message and the tool name go to our team via PostHog.\n\n### How to use Flooring calculator\n\n1. Measure a room or enter a combined total area.\n2. Add deductions, waste and the pack's published coverage.\n3. Check whole packs and keep the downloaded calculation.\n\n## Useful next steps\n\n- [Paint calculator](https://happytails.ai/en/calculators/paint-calculator/) ([Markdown](https://happytails.ai/en/calculators/paint-calculator.md))\n\n- [Area](https://happytails.ai/en/unit-converters/area/) ([Markdown](https://happytails.ai/en/unit-converters/area.md))\n\n- [Lumber board foot calculator](https://happytails.ai/en/calculators/lumber-board-foot-calculator/) ([Markdown](https://happytails.ai/en/calculators/lumber-board-foot-calculator.md))\n\n## Start with the area you need to cover\n\nEnter the length and width of a rectangular room, optionally repeated for identical rooms. For different rooms or an irregular shape, divide the layout into rectangles, add their areas and use Direct area. The excluded area is deducted once from the total job.\n\n### Allow for your layout\n\nCuts, angles and installation patterns affect waste. Set your allowance to match the product instructions and layout. The calculator applies that percentage to the net area before calculating packs. It does not work out individual board cuts or optimize a laying pattern.\n\n### Buy whole packs\n\nEnter the actual coverage per pack in square metres or square feet. Packs round up. A 20 m² floor with 10% waste needs 22 m²; at 2.2 m² per pack that is exactly 10 packs. Purchased coverage above the net area includes both your allowance and any additional pack rounding.\n\n### Take the numbers with you\n\nThe CSV, text and JSON downloads record measured area, deductions, required area, pack coverage and rounding surplus. The estimate is calculated locally. It does not validate an underlay, subfloor or installation method.\n"
}