{
  "id": "concrete",
  "version": "0c7fb2099933",
  "status": "published",
  "name": "Concrete Calculator",
  "question": "How much concrete to buy?",
  "summary": "Computes the volume of concrete for a slab, a round column or a tube, with extra for waste, in cubic yards, cubic feet and cubic metres, and the number of premix bags.",
  "category": "construction",
  "url": "https://www.acalculator.org/construction/concrete-calculator",
  "markdown": "https://www.acalculator.org/construction/concrete-calculator.md",
  "kind": "function",
  "method": "volume = shape volume × how many × (1 + waste ÷ 100); bags = ⌈volume ÷ bag yield⌉; cubic yards = cubic feet ÷ 27",
  "assumptions": [
    "Slab: length × width × thickness. Round column: π × diameter² ÷ 4 × height. Tube: π × (outer² − inner²) ÷ 4 × height.",
    "Bag yields are from the QUIKRETE Concrete Mix data sheet: 40 lb 0.30 ft³, 50 lb 0.375 ft³, 60 lb 0.45 ft³, 80 lb 0.60 ft³, 90 lb 0.675 ft³.",
    "The weight uses the data sheet’s unit weight of mixed concrete, about 140 lb/ft³."
  ],
  "inputs": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "shape": {
        "title": "Shape",
        "description": "The shape of the pour.",
        "type": "string",
        "enum": [
          "slab",
          "column",
          "tube"
        ]
      },
      "len": {
        "title": "Length",
        "description": "The length of the slab.",
        "type": [
          "number",
          "string"
        ],
        "x-quantity": "length",
        "exclusiveMinimum": 0,
        "maximum": 304.8
      },
      "wid": {
        "title": "Width",
        "description": "The width of the slab.",
        "type": [
          "number",
          "string"
        ],
        "x-quantity": "length",
        "exclusiveMinimum": 0,
        "maximum": 304.8
      },
      "thick": {
        "title": "Thickness",
        "description": "How thick the slab is.",
        "type": [
          "number",
          "string"
        ],
        "x-quantity": "length",
        "exclusiveMinimum": 0,
        "maximum": 304.8
      },
      "dia": {
        "title": "Diameter",
        "description": "The diameter of the column or hole, or the outer diameter of the tube.",
        "type": [
          "number",
          "string"
        ],
        "x-quantity": "length",
        "exclusiveMinimum": 0,
        "maximum": 304.8
      },
      "inner": {
        "title": "Inner diameter",
        "description": "The diameter of the hollow inside the tube.",
        "type": [
          "number",
          "string"
        ],
        "x-quantity": "length",
        "exclusiveMinimum": 0,
        "maximum": 304.8
      },
      "h": {
        "title": "Height or depth",
        "description": "The height of the column, or the depth of the hole.",
        "type": [
          "number",
          "string"
        ],
        "x-quantity": "length",
        "exclusiveMinimum": 0,
        "maximum": 304.8
      },
      "qty": {
        "title": "How many",
        "description": "How many pours of this size.",
        "type": "integer",
        "minimum": 1,
        "maximum": 10000
      },
      "waste": {
        "title": "Extra for waste",
        "description": "Extra concrete for spills and an uneven base, as a percent of the volume.",
        "type": "number",
        "x-unit": "percent",
        "minimum": 0,
        "maximum": 100
      },
      "bag": {
        "title": "Bag size",
        "description": "The weight of the premix bag, which sets how much concrete one bag makes.",
        "type": "string",
        "enum": [
          "40",
          "50",
          "60",
          "80",
          "90"
        ]
      }
    }
  },
  "outputs": {
    "cubicYards": {
      "label": "Concrete",
      "description": "The volume to order, waste included, in cubic yards.",
      "format": "quantity",
      "unit": "yd3"
    },
    "cubicFeet": {
      "label": "Cubic feet",
      "description": "The volume to order, waste included, in cubic feet.",
      "format": "quantity",
      "unit": "ft3"
    },
    "cubicMeters": {
      "label": "Cubic metres",
      "description": "The volume to order, waste included, in cubic metres.",
      "format": "quantity",
      "unit": "m3"
    },
    "bags": {
      "label": "Premix bags",
      "description": "The number of bags of the chosen size, rounded up to a whole bag.",
      "format": "integer"
    },
    "weight": {
      "label": "Weight of the concrete",
      "description": "The volume to order × about 140 pounds per cubic foot.",
      "format": "quantity",
      "unit": "lb"
    }
  },
  "defaultAnswer": {
    "inputs": {
      "shape": "slab",
      "len": 3.048,
      "wid": 3.048,
      "thick": 0.1016,
      "dia": 0.30479999999999996,
      "inner": 0.2032,
      "h": 0.9144000000000001,
      "qty": 1,
      "waste": 5,
      "bag": "80"
    },
    "outputs": {
      "cubicYards": 0.9910896307200001,
      "cubicFeet": 0.9910896307200001,
      "cubicMeters": 0.9910896307200001,
      "bags": 59,
      "weight": 2222.6026130000005
    },
    "text": "You need 1.3 yd³ of concrete, or 59 bags."
  },
  "examples": [
    {
      "given": {
        "shape": "slab",
        "len": 3.048,
        "wid": 3.048,
        "thick": 0.1016,
        "qty": 1,
        "waste": 0,
        "bag": "80"
      },
      "expect": {
        "cubicFeet": 0.9438948864000001,
        "bags": 56,
        "weight": 2116.7643933333334
      },
      "source": "hand calculation in content.mdx: 10 × 10 × 4/12 = 33.33 ft³ = 1.23 yd³; 33.33 ÷ 0.60 = 55.6, so 56 bags of 80 lb (QUIKRETE yield)"
    },
    {
      "given": {
        "shape": "slab",
        "len": 3.6576000000000004,
        "wid": 6.096,
        "thick": 0.15239999999999998,
        "qty": 1,
        "waste": 10,
        "bag": "60"
      },
      "expect": {
        "cubicYards": 3.737823750144,
        "bags": 294
      },
      "source": "hand calculation in content.mdx: 12 × 20 × 0.5 = 120 ft³; × 1.10 = 132 ft³ = 4.89 yd³; 132 ÷ 0.45 = 293.3, so 294 bags"
    },
    {
      "given": {
        "shape": "column",
        "dia": 0.254,
        "h": 0.9144000000000001,
        "qty": 4,
        "waste": 0,
        "bag": "50"
      },
      "expect": {
        "cubicFeet": 0.1853333275547008,
        "bags": 18
      },
      "source": "hand calculation in content.mdx: π × (10/12)² ÷ 4 × 3 = 1.636 ft³ a hole; × 4 = 6.545 ft³; ÷ 0.375 = 17.5, so 18 bags"
    },
    {
      "given": {
        "shape": "tube",
        "dia": 0.6095999999999999,
        "inner": 0.30479999999999996,
        "h": 1.2192,
        "qty": 1,
        "waste": 0,
        "bag": "80"
      },
      "expect": {
        "cubicFeet": 0.26687999167876914,
        "bags": 16
      },
      "source": "hand calculation in content.mdx: π × (2² − 1²) ÷ 4 × 4 = 3π = 9.425 ft³; ÷ 0.60 = 15.7, so 16 bags"
    }
  ],
  "sources": [
    "The QUIKRETE Companies, Concrete Mix No. 1101 data sheet (revised October 2022): bag yields and a unit weight of about 140 lb/ft³ (ASTM C138). https://www.quikrete.com/PDFs/DATA_SHEET-Concrete%20Mix%201101.pdf",
    "NIST SP 811 (2008), Appendix B: 1 ft = 0.3048 m and 1 in = 0.0254 m exactly; 1 yd³ = 27 ft³."
  ],
  "related": [
    "cubic-yards",
    "gravel",
    "cubic-feet"
  ],
  "changelog": []
}
