{
  "id": "countertop",
  "version": "2b0dce0d5ab4",
  "status": "published",
  "name": "Countertop Calculator",
  "question": "How much countertop do I need?",
  "summary": "Computes the square feet of countertop for up to three runs, plus backsplash and extra for cuts, how many slabs that is by area, and the cost at a price per square foot.",
  "category": "construction",
  "subcategory": "materials",
  "url": "https://www.acalculator.org/construction/countertop-calculator",
  "markdown": "https://www.acalculator.org/construction/countertop-calculator.md",
  "kind": "function",
  "method": "Counter area = Σ length × depth; backsplash = Σ length × backsplash height; to order = (counter + backsplash) × (1 + extra ÷ 100); slabs = to order ÷ (slab length × slab width), rounded up; cost = to order (ft²) × price.",
  "assumptions": [
    "Each run is a rectangle; measure an L or U as separate runs that do not overlap.",
    "The backsplash runs along the full length of every run, in the same material.",
    "Slabs by area is the least that could work; seams, grain and cutouts often need one more."
  ],
  "inputs": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "n": {
        "title": "Counter runs",
        "description": "How many straight runs of counter: an L-shape is 2, a U-shape 3. Count an island as a run.",
        "type": "string",
        "enum": [
          "1",
          "2",
          "3"
        ]
      },
      "l1": {
        "title": "Run 1 length",
        "description": "The length of the first run along the wall.",
        "type": [
          "number",
          "string"
        ],
        "x-quantity": "length",
        "minimum": 0.001,
        "maximum": 100
      },
      "d1": {
        "title": "Run 1 depth",
        "description": "The depth of the first run, front edge to wall (25.5 in is common).",
        "type": [
          "number",
          "string"
        ],
        "x-quantity": "length",
        "minimum": 0.001,
        "maximum": 100
      },
      "l2": {
        "title": "Run 2 length",
        "description": "The length of the second run, not counting the part the first run covers.",
        "type": [
          "number",
          "string"
        ],
        "x-quantity": "length",
        "minimum": 0.001,
        "maximum": 100
      },
      "d2": {
        "title": "Run 2 depth",
        "description": "The depth of the second run.",
        "type": [
          "number",
          "string"
        ],
        "x-quantity": "length",
        "minimum": 0.001,
        "maximum": 100
      },
      "l3": {
        "title": "Run 3 length",
        "description": "The length of the third run.",
        "type": [
          "number",
          "string"
        ],
        "x-quantity": "length",
        "minimum": 0.001,
        "maximum": 100
      },
      "d3": {
        "title": "Run 3 depth",
        "description": "The depth of the third run.",
        "type": [
          "number",
          "string"
        ],
        "x-quantity": "length",
        "minimum": 0.001,
        "maximum": 100
      },
      "bs": {
        "title": "Backsplash height",
        "description": "The height of a backsplash in the same stone along each run’s length; 0 for none.",
        "type": [
          "number",
          "string"
        ],
        "x-quantity": "length",
        "minimum": 0,
        "maximum": 100
      },
      "extra": {
        "title": "Extra for cuts",
        "description": "Material to add for sink and cooktop cutouts, seams and edge waste.",
        "type": "number",
        "x-unit": "percent",
        "minimum": 0,
        "maximum": 100
      },
      "sl": {
        "title": "Slab length",
        "description": "The length of one slab from your supplier.",
        "type": [
          "number",
          "string"
        ],
        "x-quantity": "length",
        "minimum": 0.001,
        "maximum": 100
      },
      "sw": {
        "title": "Slab width",
        "description": "The width of one slab.",
        "type": [
          "number",
          "string"
        ],
        "x-quantity": "length",
        "minimum": 0.001,
        "maximum": 100
      },
      "price": {
        "title": "Price per square foot",
        "description": "The installed price per square foot, from your quote. Leave empty to skip the cost.",
        "type": "number",
        "x-unit": "USD",
        "minimum": 0,
        "maximum": 100000
      }
    }
  },
  "outputs": {
    "total": {
      "label": "Square feet to order",
      "description": "(Counter area + backsplash area) × (1 + extra ÷ 100), in ft².",
      "format": "number"
    },
    "counter": {
      "label": "Counter area",
      "description": "The sum of length × depth over the runs, in ft².",
      "format": "number"
    },
    "backsplash": {
      "label": "Backsplash area",
      "description": "The sum of the run lengths × backsplash height, in ft².",
      "format": "number"
    },
    "totalM2": {
      "label": "Square meters to order",
      "description": "The area to order, in m².",
      "format": "number"
    },
    "slabs": {
      "label": "Slabs (by area)",
      "description": "Area to order ÷ one slab’s area, rounded up: the fewest slabs that could do it.",
      "format": "integer"
    },
    "cost": {
      "label": "Cost",
      "description": "Square feet to order × price per square foot.",
      "format": "money"
    }
  },
  "defaultAnswer": {
    "inputs": {
      "n": "2",
      "l1": 3.048,
      "d1": 0.6476999999999999,
      "l2": 1.8288,
      "d2": 0.6476999999999999,
      "l3": 1.524,
      "d3": 0.6476999999999999,
      "bs": 0.1016,
      "extra": 10,
      "sl": 3.048,
      "sw": 1.524
    },
    "outputs": {
      "total": 43.266666666666666,
      "counter": 34,
      "backsplash": 5.333333333333333,
      "totalM2": 4.019604864,
      "slabs": 1
    },
    "text": "Order 43.3 ft² of countertop; slabs by area: 1."
  },
  "examples": [
    {
      "given": {
        "n": "2",
        "l1": 3.048,
        "d1": 0.6476999999999999,
        "l2": 1.8288,
        "d2": 0.6476999999999999,
        "bs": 0.1016,
        "extra": 10,
        "sl": 3.048,
        "sw": 1.524,
        "price": 60
      },
      "expect": {
        "counter": 34,
        "backsplash": 5.333333333333333,
        "total": 43.266666666666666,
        "slabs": 1,
        "cost": 2596
      },
      "source": "hand calculation in content.mdx: (120 + 72) × 25.5 = 4,896 in² = 34 ft²; 192 × 4 = 768 in² = 5.33 ft²; 39.33 × 1.1 = 43.27 ft²; one 50 ft² slab by area; 43.27 × $60 = $2,596; NIST SP 811 (2008), Appendix B: 1 ft = 12 in, 1 ft² = 144 in² = 0.09290304 m², https://www.nist.gov/pml/special-publication-811 (retrieved 2026-10-18); OpenStax, Prealgebra 2e, §9.4 (area of a rectangle = length × width), https://openstax.org/books/prealgebra-2e/pages/9-4-use-properties-of-rectangles-triangles-and-trapezoids (retrieved 2026-10-18)"
    },
    {
      "given": {
        "n": "1",
        "l1": 2.4383999999999997,
        "d1": 0.9144,
        "bs": 0,
        "extra": 0,
        "sl": 3.048,
        "sw": 1.524
      },
      "expect": {
        "counter": 24,
        "backsplash": 0,
        "total": 24,
        "slabs": 1,
        "totalM2": 2.22967296
      },
      "source": "hand calculation in content.mdx: 8 × 3 = 24 ft² = 24 × 0.09290304 = 2.23 m²; NIST SP 811 (2008), Appendix B: 1 ft = 12 in, 1 ft² = 144 in² = 0.09290304 m², https://www.nist.gov/pml/special-publication-811 (retrieved 2026-10-18)"
    },
    {
      "given": {
        "n": "3",
        "l1": 3,
        "d1": 0.6,
        "l2": 2,
        "d2": 0.6,
        "l3": 1.5,
        "d3": 0.6,
        "bs": 0.1,
        "extra": 15,
        "sl": 3,
        "sw": 1.4
      },
      "expect": {
        "totalM2": 5.2325,
        "slabs": 2
      },
      "source": "hand calculation in content.mdx: 6.5 × 0.6 = 3.9 m²; 6.5 × 0.1 = 0.65 m²; 4.55 × 1.15 = 5.2325 m²; slab 4.2 m²"
    }
  ],
  "sources": [
    "OpenStax, Prealgebra 2e, §9.4 Use Properties of Rectangles, Triangles, and Trapezoids (area of a rectangle = length × width). https://openstax.org/books/prealgebra-2e/pages/9-4-use-properties-of-rectangles-triangles-and-trapezoids (retrieved 2026-10-18)",
    "NIST SP 811 (2008), Appendix B: 1 ft = 12 in = 0.3048 m exactly, so 1 ft² = 144 in² = 0.09290304 m². https://www.nist.gov/pml/special-publication-811 (retrieved 2026-10-18)"
  ],
  "related": [
    "square-footage",
    "tile"
  ],
  "changelog": []
}
