# Insulation calculator

- Human page: https://happytails.ai/en/calculators/insulation-calculator/
- Markdown: https://happytails.ai/en/calculators/insulation-calculator.md
- Structured JSON: https://happytails.ai/agents/en/calculators/insulation-calculator/index.json
- Visibility: public

## Tool capabilities

| Property | Value |
| --- | --- |
| Tool ID | `insulation-calculator` |
| Category | calculators |
| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |
| Browser execution | Automatic updates after valid input or file selection. |
| Browser processing | Browser; see tool notes for network behavior. |
| HTTP API | Not callable through HTTP. |
| Browser-agent interface | run_current_tool |

### Implementation notes

Calculated on your device for surfaces up to 1,000 m on a side, up to 100,000 cavities and packages from 1 to 1,000 pieces. R-values and energy codes are not checked.

### Inputs and settings

No free-text input is required. Use the file inputs and/or settings below.

| Setting | Meaning | Control type | Default | Constraints |
| --- | --- | --- | --- | --- |
| `mode` | Measure | select | "Wall or ceiling dimensions" | Allowed: Wall or ceiling dimensions, Cavity count and size |
| `lengthUnit` | Length unit | select | "ft" | Allowed: ft, in, m, cm, mm |
| `sizeUnit` | Framing and batt size unit | select | "in" | Allowed: in, mm, cm |
| `length` | Wall length or ceiling length | number | 40 | min=0 step=any |
| `height` | Wall height or ceiling width | number | 8 | min=0 step=any |
| `areaUnit` | Opening area unit | select | "ft²" | Allowed: ft², m² |
| `openings` | Openings to subtract | number | 0 | min=0 step=any |
| `framingBasis` | Framing from | select | "Spacing and member thickness" | Allowed: Spacing and member thickness, Framing percentage |
| `spacing` | Framing spacing, centre to centre | number | 16 | min=0 step=any |
| `memberThickness` | Stud or joist thickness | number | 1.5 | min=0 step=any |
| `framingShare` | Framing share of the surface (%) | number | 15 | min=0 max=90 step=any |
| `cavities` | Number of cavities | number | 30 | min=1 max=100000 step=1 |
| `cavityWidth` | Clear cavity width | number | 14.5 | min=0 step=any |
| `cavityLength` | Cavity length | number | 7.75 | min=0 step=any |
| `packageMode` | Package size from | select | "Coverage per package" | Allowed: Coverage per package, Pieces and piece size |
| `coverageUnit` | Coverage unit | select | "ft²" | Allowed: ft², m² |
| `coverage` | Coverage per package | number | 40 | min=0 step=any |
| `pieces` | Pieces per package | number | 10 | min=1 max=1000 step=1 |
| `pieceWidth` | Piece width | number | 15 | min=0 step=any |
| `pieceLength` | Piece length | number | 93 | min=0 step=any |
| `allowance` | Extra allowance (%) | number | 5 | min=0 max=50 step=any |

### Browser-agent workflow

1. Open the human page in a browser that supports WebMCP.
2. Discover the interface exposed by that page; use its actual schema.
3. Select files on the page first when the tool requires files.
4. Call `run_current_tool` with valid input and settings.
5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.

Calls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.

### Planning specification

Surface length and height up to 1,000 m, 1 to 100,000 cavities with widths up to 2 m and lengths up to 100 m, framing spacing up to 2 m, member thickness up to 0.5 m, framing share from 0 to 90%, package coverage up to 1,000 m², 1 to 1,000 pieces per package up to 3 m wide and 30 m long, and allowance from 0 to 50%. Calculated on your device; download a JSON report and a results CSV.

This describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.

### Complete machine-readable capability record

```json
{
  "id": "insulation-calculator",
  "category": "calculators",
  "built": true,
  "requirements": "Surface length and height up to 1,000 m, 1 to 100,000 cavities with widths up to 2 m and lengths up to 100 m, framing spacing up to 2 m, member thickness up to 0.5 m, framing share from 0 to 90%, package coverage up to 1,000 m², 1 to 1,000 pieces per package up to 3 m wide and 30 m long, and allowance from 0 to 50%. Calculated on your device; download a JSON report and a results CSV.",
  "implementation": {
    "fields": [
      {
        "key": "mode",
        "label": "Measure",
        "value": "Wall or ceiling dimensions",
        "type": "select",
        "values": [
          "Wall or ceiling dimensions",
          "Cavity count and size"
        ]
      },
      {
        "key": "lengthUnit",
        "label": "Length unit",
        "value": "ft",
        "type": "select",
        "values": [
          "ft",
          "in",
          "m",
          "cm",
          "mm"
        ]
      },
      {
        "key": "sizeUnit",
        "label": "Framing and batt size unit",
        "value": "in",
        "type": "select",
        "values": [
          "in",
          "mm",
          "cm"
        ]
      },
      {
        "key": "length",
        "label": "Wall length or ceiling length",
        "value": 40,
        "type": "number",
        "min": 0,
        "step": "any",
        "showWhen": {
          "mode": [
            "Wall or ceiling dimensions"
          ]
        }
      },
      {
        "key": "height",
        "label": "Wall height or ceiling width",
        "value": 8,
        "type": "number",
        "min": 0,
        "step": "any",
        "showWhen": {
          "mode": [
            "Wall or ceiling dimensions"
          ]
        }
      },
      {
        "key": "areaUnit",
        "label": "Opening area unit",
        "value": "ft²",
        "type": "select",
        "values": [
          "ft²",
          "m²"
        ],
        "showWhen": {
          "mode": [
            "Wall or ceiling dimensions"
          ]
        }
      },
      {
        "key": "openings",
        "label": "Openings to subtract",
        "value": 0,
        "type": "number",
        "min": 0,
        "step": "any",
        "help": "Total area of windows, doors and other uninsulated openings. Enter 0 for none.",
        "showWhen": {
          "mode": [
            "Wall or ceiling dimensions"
          ]
        }
      },
      {
        "key": "framingBasis",
        "label": "Framing from",
        "value": "Spacing and member thickness",
        "type": "select",
        "values": [
          "Spacing and member thickness",
          "Framing percentage"
        ],
        "showWhen": {
          "mode": [
            "Wall or ceiling dimensions"
          ]
        }
      },
      {
        "key": "spacing",
        "label": "Framing spacing, centre to centre",
        "value": 16,
        "type": "number",
        "min": 0,
        "step": "any",
        "showWhen": {
          "mode": [
            "Wall or ceiling dimensions"
          ],
          "framingBasis": [
            "Spacing and member thickness"
          ]
        }
      },
      {
        "key": "memberThickness",
        "label": "Stud or joist thickness",
        "value": 1.5,
        "type": "number",
        "min": 0,
        "step": "any",
        "help": "Actual thickness, such as 1.5 in for 2x lumber.",
        "showWhen": {
          "mode": [
            "Wall or ceiling dimensions"
          ],
          "framingBasis": [
            "Spacing and member thickness"
          ]
        }
      },
      {
        "key": "framingShare",
        "label": "Framing share of the surface (%)",
        "value": 15,
        "type": "number",
        "min": 0,
        "max": 90,
        "step": "any",
        "help": "Share of the net surface taken by studs, plates, headers and blocking, if you know it.",
        "showWhen": {
          "mode": [
            "Wall or ceiling dimensions"
          ],
          "framingBasis": [
            "Framing percentage"
          ]
        }
      },
      {
        "key": "cavities",
        "label": "Number of cavities",
        "value": 30,
        "type": "number",
        "min": 1,
        "max": 100000,
        "step": 1,
        "showWhen": {
          "mode": [
            "Cavity count and size"
          ]
        }
      },
      {
        "key": "cavityWidth",
        "label": "Clear cavity width",
        "value": 14.5,
        "type": "number",
        "min": 0,
        "step": "any",
        "help": "Inside width between framing members, such as 14.5 in at 16 in spacing.",
        "showWhen": {
          "mode": [
            "Cavity count and size"
          ]
        }
      },
      {
        "key": "cavityLength",
        "label": "Cavity length",
        "value": 7.75,
        "type": "number",
        "min": 0,
        "step": "any",
        "help": "Inside height or length of one cavity, in the length unit.",
        "showWhen": {
          "mode": [
            "Cavity count and size"
          ]
        }
      },
      {
        "key": "packageMode",
        "label": "Package size from",
        "value": "Coverage per package",
        "type": "select",
        "values": [
          "Coverage per package",
          "Pieces and piece size"
        ]
      },
      {
        "key": "coverageUnit",
        "label": "Coverage unit",
        "value": "ft²",
        "type": "select",
        "values": [
          "ft²",
          "m²"
        ],
        "showWhen": {
          "packageMode": [
            "Coverage per package"
          ]
        }
      },
      {
        "key": "coverage",
        "label": "Coverage per package",
        "value": 40,
        "type": "number",
        "min": 0,
        "step": "any",
        "help": "Insulation area in one package. If you are unsure what the label means, use pieces and piece size instead.",
        "showWhen": {
          "packageMode": [
            "Coverage per package"
          ]
        }
      },
      {
        "key": "pieces",
        "label": "Pieces per package",
        "value": 10,
        "type": "number",
        "min": 1,
        "max": 1000,
        "step": 1,
        "help": "Batts in the package, or 1 for a roll.",
        "showWhen": {
          "packageMode": [
            "Pieces and piece size"
          ]
        }
      },
      {
        "key": "pieceWidth",
        "label": "Piece width",
        "value": 15,
        "type": "number",
        "min": 0,
        "step": "any",
        "showWhen": {
          "packageMode": [
            "Pieces and piece size"
          ]
        }
      },
      {
        "key": "pieceLength",
        "label": "Piece length",
        "value": 93,
        "type": "number",
        "min": 0,
        "step": "any",
        "showWhen": {
          "packageMode": [
            "Pieces and piece size"
          ]
        }
      },
      {
        "key": "allowance",
        "label": "Extra allowance (%)",
        "value": 5,
        "type": "number",
        "min": 0,
        "max": 50,
        "step": "any",
        "help": "Extra for trimming around boxes, pipes and short cavities. Enter 0 for none."
      }
    ],
    "registrationFamily": "roof-and-cladding",
    "input": false,
    "live": true,
    "presentation": "metrics",
    "note": "Calculated on your device for surfaces up to 1,000 m on a side, up to 100,000 cavities and packages from 1 to 1,000 pieces. R-values and energy codes are not checked.",
    "experience": {
      "automatic": true,
      "single": true,
      "inputMaxLength": 1000000,
      "inputMode": "text",
      "label": "Wall, ceiling and package sizes",
      "placeholder": "Use the fields below",
      "help": "This calculator uses the measurement fields only. 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"
  }
}
```

## Page guide

Estimate the cavity area to fill with batt or roll insulation and the packages to buy, from wall or ceiling dimensions with framing, or from a count of cavities.

How can we improve this tool?

Report a problem or share an idea.

Please leave out private information. Your message and the tool name go to our team via PostHog.

### How to use Insulation calculator

1. Enter the wall or ceiling dimensions and openings, or the number and size of cavities.
2. Describe the framing with its spacing and thickness, or enter a framing percentage.
3. Enter the coverage per package, or the pieces per package and their size.
4. Review the cavity area, packages and surplus, then download the JSON report or the CSV.

## Useful next steps

- [Square footage](https://happytails.ai/en/calculators/square-footage/) ([Markdown](https://happytails.ai/en/calculators/square-footage.md))

- [Flooring calculator](https://happytails.ai/en/calculators/flooring-calculator/) ([Markdown](https://happytails.ai/en/calculators/flooring-calculator.md))

- [Paint calculator](https://happytails.ai/en/calculators/paint-calculator/) ([Markdown](https://happytails.ai/en/calculators/paint-calculator.md))

## Cavity area

Studs and joists take up part of every wall and ceiling, and that lumber blocks space that could hold insulation (Building America Solution Center, Advanced Framing: Minimum Wall Studs, PNNL, checked 16 October 2026). The calculator takes the surface after openings and removes the framing share: 1.5 in members at 16 in centres take 1.5 ÷ 16 = 9.375%, so a 40 × 8 ft wall has 290 ft² of cavity.

### Framing share

Spacing and thickness count only the evenly spaced studs or joists. Plates, headers, blocking and extra studs at corners and openings add more framing, so if you have measured or been given a framing percentage, enter that instead. Counting cavities directly, each with its clear width and length, avoids the question.

### Packages

Coverage per package is the insulation face area in one package: pieces × width × length, or the figure you enter. Packages are rounded up after the extra allowance. If you are unsure whether a label means the insulation area or the wall area at a framing spacing, use the pieces and piece size option.

### Limits

The calculator does not choose an R-value, check an energy code or cover vapour control, fire stopping or loose-fill depth. Unit conversions use NIST SP 811.
