{
  "id": "concrete-calculator",
  "version": "20.1.0",
  "name": "Concrete Calculator",
  "shortName": "Concrete",
  "description": "Estimate concrete quantities, explicit waste, supplier bag yields and optional material/labor cost.",
  "category": "Home & Construction",
  "categorySlug": "home-construction",
  "keywords": [
    "concrete yards",
    "concrete bags",
    "slab volume",
    "cubic yards"
  ],
  "status": "live",
  "workStatus": "pending",
  "reviewStatus": "pending",
  "migrationStatus": "new",
  "engine": "native",
  "creator": null,
  "reviewer": null,
  "quality": {
    "availability": "live",
    "technicalReviewRecord": "/reviews/concrete-calculator.json",
    "qualifiedReview": "pending",
    "qualifiedReviewer": null,
    "qualifiedReviewDate": null,
    "formulaVersion": "20.1.0",
    "referenceCoverage": "references-listed",
    "releaseTestScope": "Flagship reference cases are specified in scripts/test-v20-1.mjs; consult release evidence for executed results.",
    "historicalMetadataDate": "2026-08-18",
    "historicalMetadataNotice": "The imported date is not evidence of a completed human review."
  },
  "urls": {
    "page": "/calculator/concrete-calculator/",
    "definition": "/calculator/concrete-calculator/definition.json",
    "schema": "/calculator/concrete-calculator/schema.json",
    "llms": "/calculator/concrete-calculator/llms.txt",
    "legacyDefinition": "/calculator/concrete-calculator.json"
  },
  "queryExample": "https://askcalculators.com/calculator/concrete-calculator/?length=20&width=10&depthInches=4&quantity=1&wastePercent=0&yield60=0.45&yield80=0.6&unitCost=0&laborCost=0&minimumOrderYards=0&orderIncrementYards=0&deliveryCost=0",
  "queryParameters": {
    "length": {
      "label": "Length",
      "type": "number",
      "required": true,
      "default": 20
    },
    "width": {
      "label": "Width",
      "type": "number",
      "required": true,
      "default": 10
    },
    "depthInches": {
      "label": "Depth",
      "type": "number",
      "required": true,
      "default": 4
    },
    "quantity": {
      "label": "Number of equal pours",
      "type": "number",
      "required": true,
      "default": 1
    },
    "wastePercent": {
      "label": "Waste allowance",
      "type": "number",
      "required": false,
      "default": 0
    },
    "yield60": {
      "label": "Yield per 60 lb bag",
      "type": "number",
      "required": false,
      "default": 0.45
    },
    "yield80": {
      "label": "Yield per 80 lb bag",
      "type": "number",
      "required": false,
      "default": 0.6
    },
    "unitCost": {
      "label": "Ready-mix cost per cubic yard",
      "type": "number",
      "required": false,
      "default": 0
    },
    "laborCost": {
      "label": "Total labor cost",
      "type": "number",
      "required": false,
      "default": 0
    },
    "minimumOrderYards": {
      "label": "Supplier minimum order",
      "type": "number",
      "required": false,
      "default": 0
    },
    "orderIncrementYards": {
      "label": "Supplier order increment (0 = none)",
      "type": "number",
      "required": false,
      "default": 0
    },
    "deliveryCost": {
      "label": "Delivery allowance",
      "type": "number",
      "required": false,
      "default": 0
    }
  },
  "inputs": [
    {
      "id": "length",
      "label": "Length",
      "type": "number",
      "required": true,
      "defaultValue": 20,
      "min": 0,
      "step": 0.1,
      "suffix": " ft",
      "width": "half"
    },
    {
      "id": "width",
      "label": "Width",
      "type": "number",
      "required": true,
      "defaultValue": 10,
      "min": 0,
      "step": 0.1,
      "suffix": " ft",
      "width": "half"
    },
    {
      "id": "depthInches",
      "label": "Depth",
      "type": "number",
      "required": true,
      "defaultValue": 4,
      "min": 0,
      "step": 0.1,
      "suffix": " in",
      "width": "half"
    },
    {
      "id": "quantity",
      "label": "Number of equal pours",
      "type": "number",
      "required": true,
      "defaultValue": 1,
      "min": 1,
      "max": 100000,
      "step": 1,
      "width": "half"
    },
    {
      "id": "wastePercent",
      "label": "Waste allowance",
      "type": "number",
      "defaultValue": 0,
      "min": 0,
      "step": 0.01,
      "suffix": " %",
      "width": "half"
    },
    {
      "id": "yield60",
      "label": "Yield per 60 lb bag",
      "type": "number",
      "defaultValue": 0.45,
      "min": 0,
      "step": 0.01,
      "suffix": " ft³",
      "width": "half"
    },
    {
      "id": "yield80",
      "label": "Yield per 80 lb bag",
      "type": "number",
      "defaultValue": 0.6,
      "min": 0,
      "step": 0.01,
      "suffix": " ft³",
      "width": "half"
    },
    {
      "id": "unitCost",
      "label": "Ready-mix cost per cubic yard",
      "type": "number",
      "defaultValue": 0,
      "min": 0,
      "step": 0.01,
      "suffix": " $/yd³",
      "width": "half"
    },
    {
      "id": "laborCost",
      "label": "Total labor cost",
      "type": "number",
      "defaultValue": 0,
      "min": 0,
      "step": 0.01,
      "suffix": " $",
      "width": "half"
    },
    {
      "id": "minimumOrderYards",
      "label": "Supplier minimum order",
      "type": "number",
      "defaultValue": 0,
      "min": 0,
      "step": 0.01,
      "width": "half",
      "suffix": " yd³"
    },
    {
      "id": "orderIncrementYards",
      "label": "Supplier order increment (0 = none)",
      "type": "number",
      "defaultValue": 0,
      "min": 0,
      "step": 0.01,
      "width": "half",
      "suffix": " yd³"
    },
    {
      "id": "deliveryCost",
      "label": "Delivery allowance",
      "type": "number",
      "defaultValue": 0,
      "min": 0,
      "step": 0.01,
      "width": "half",
      "suffix": ""
    }
  ],
  "outputs": [
    {
      "id": "cubicYards",
      "label": "Concrete volume",
      "format": "number",
      "digits": 3,
      "suffix": " yd³",
      "primary": true
    },
    {
      "id": "cubicFeet",
      "label": "Cubic feet",
      "format": "number",
      "digits": 2,
      "suffix": " ft³"
    },
    {
      "id": "allowanceCubicYards",
      "label": "Volume including waste, before supplier rounding",
      "format": "number"
    },
    {
      "id": "bags60",
      "label": "60 lb bags",
      "format": "integer"
    },
    {
      "id": "bags80",
      "label": "80 lb bags",
      "format": "integer"
    },
    {
      "id": "orderCubicYards",
      "label": "Volume including waste",
      "format": "number",
      "suffix": " yd³"
    },
    {
      "id": "materialCost",
      "label": "Ready-mix material estimate",
      "format": "currency"
    },
    {
      "id": "estimatedTotal",
      "label": "Material plus labor estimate",
      "format": "currency"
    }
  ],
  "formula": {
    "expression": "Net ft³ = length × width × depthInches/12 × quantity; order yd³ = net ft³ × (1 + wastePercent/100) / 27; bags = ceil(order ft³ / supplier yield); estimate = order yd³ × price per yd³ + labor.",
    "note": "Net volume, allowance and supplier-rounded order are distinct. Bag counts are purchasing alternatives. Zero prices mean unpriced; no live pricing or structural design."
  },
  "examples": [
    {
      "label": "Reproducible default-input example (not a personal recommendation)",
      "inputs": {
        "length": 20,
        "width": 10,
        "depthInches": 4,
        "quantity": 1,
        "wastePercent": 0,
        "yield60": 0.45,
        "yield80": 0.6,
        "unitCost": 0,
        "laborCost": 0,
        "minimumOrderYards": 0,
        "orderIncrementYards": 0,
        "deliveryCost": 0
      }
    }
  ],
  "sources": [
    {
      "label": "NIST: SI conversion factors",
      "url": "https://www.nist.gov/pml/special-publication-811/nist-guide-si-appendix-b-conversion-factors/nist-guide-si-appendix-b8"
    },
    {
      "label": "OpenStax Prealgebra: geometry and measurement reference",
      "url": "https://openstax.org/details/books/prealgebra-2e"
    }
  ]
}
