{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://askcalculators.com/us/concrete/schema.json",
  "title": "Concrete Calculator inputs",
  "description": "Estimate concrete quantities, explicit waste, supplier bag yields and optional material/labor cost. Add editable USD material and labor prices and compare low, middle and high budget scenarios.",
  "type": "object",
  "properties": {
    "unitSystem": {
      "title": "Dimension units",
      "type": "string",
      "description": "Changing this selector converts dimensions already entered. Prices keep the purchasing unit printed beside each price.",
      "default": "imperial",
      "enum": [
        "imperial",
        "metric"
      ],
      "x-optionLabels": {
        "imperial": "US customary (ft, in)",
        "metric": "Metric (m, cm)"
      }
    },
    "length": {
      "title": "Length (ft / m)",
      "type": "number",
      "default": 20,
      "minimum": 0,
      "x-step": 0.1
    },
    "width": {
      "title": "Width (ft / m)",
      "type": "number",
      "default": 10,
      "minimum": 0,
      "x-step": 0.1
    },
    "depthInches": {
      "title": "Depth (in / cm)",
      "type": "number",
      "default": 4,
      "minimum": 0,
      "x-step": 0.1
    },
    "quantity": {
      "title": "Number of equal pours",
      "type": "number",
      "default": 1,
      "minimum": 1,
      "maximum": 100000,
      "x-step": 1,
      "multipleOf": 1
    },
    "wastePercent": {
      "title": "Waste allowance",
      "type": "number",
      "default": 0,
      "minimum": 0,
      "x-step": 0.01,
      "x-suffix": " %"
    },
    "yield60": {
      "title": "Yield per 60 lb bag",
      "type": "number",
      "default": 0.45,
      "minimum": 0,
      "x-step": 0.01,
      "x-suffix": " ft³"
    },
    "yield80": {
      "title": "Yield per 80 lb bag",
      "type": "number",
      "default": 0.6,
      "minimum": 0,
      "x-step": 0.01,
      "x-suffix": " ft³"
    },
    "unitCost": {
      "title": "Ready-mix cost per cubic yard",
      "type": "number",
      "default": 0,
      "minimum": 0,
      "x-step": 0.01,
      "x-suffix": " $/yd³"
    },
    "laborCost": {
      "title": "Total labor cost",
      "type": "number",
      "default": 0,
      "minimum": 0,
      "x-step": 0.01,
      "x-suffix": " $"
    },
    "minimumOrderYards": {
      "title": "Supplier minimum order",
      "type": "number",
      "default": 0,
      "minimum": 0,
      "x-step": 0.01,
      "x-suffix": " yd³"
    },
    "orderIncrementYards": {
      "title": "Supplier order increment (0 = none)",
      "type": "number",
      "default": 0,
      "minimum": 0,
      "x-step": 0.01,
      "x-suffix": " yd³"
    },
    "deliveryCost": {
      "title": "Delivery allowance",
      "type": "number",
      "default": 0,
      "minimum": 0,
      "x-step": 0.01
    },
    "costSpreadPercent": {
      "title": "Low/high variation around entered subtotal (%)",
      "type": "number",
      "description": "A user-adjustable planning scenario, not a researched local price range.",
      "default": 15,
      "minimum": 0,
      "maximum": 100,
      "x-step": 1,
      "multipleOf": 1,
      "x-unit": "percent"
    }
  },
  "required": [
    "length",
    "width",
    "depthInches",
    "quantity"
  ],
  "additionalProperties": false,
  "x-askcalculators": {
    "version": "20.13.0",
    "calculatorUrl": "https://askcalculators.com/us/concrete/",
    "queryExample": "https://askcalculators.com/us/concrete/?length=9&width=9&depthInches=4&quantity=1&wastePercent=0&unitCost=160&laborCost=250&minimumOrderYards=1.1&orderIncrementYards=0.25&deliveryCost=75&costSpreadPercent=15",
    "migrationStatus": "migrated",
    "reviewStatus": "pending",
    "pageStatus": "live",
    "workStatus": "pending",
    "migratedDate": "2026-09-10",
    "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.; material = unrounded purchase quantity × entered unit price; middle = material + labor + delivery; low/high = middle × (1 ∓ variation/100)",
      "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."
    },
    "quality": {
      "availability": "live",
      "technicalReviewRecord": "/reviews/concrete-calculator.json",
      "qualifiedReview": "pending",
      "qualifiedReviewer": null,
      "qualifiedReviewDate": null,
      "formulaVersion": "20.13.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."
    },
    "outputs": {
      "cubicYards": {
        "title": "Concrete volume",
        "type": "number",
        "x-format": "number",
        "x-suffix": " yd³",
        "x-digits": 3,
        "x-primary": true
      },
      "cubicFeet": {
        "title": "Cubic feet",
        "type": "number",
        "x-format": "number",
        "x-suffix": " ft³",
        "x-digits": 2
      },
      "allowanceCubicYards": {
        "title": "Volume including waste, before supplier rounding",
        "type": "number",
        "x-format": "number"
      },
      "bags60": {
        "title": "60 lb bags",
        "type": "number",
        "x-format": "integer"
      },
      "bags80": {
        "title": "80 lb bags",
        "type": "number",
        "x-format": "integer"
      },
      "orderCubicYards": {
        "title": "Volume including waste",
        "type": "number",
        "x-format": "number",
        "x-suffix": " yd³"
      },
      "materialCost": {
        "title": "Ready-mix material estimate",
        "type": "number",
        "x-format": "currency"
      },
      "estimatedTotal": {
        "title": "Material plus labor estimate",
        "type": "number",
        "x-format": "currency"
      },
      "cubicMetres": {
        "title": "Net volume (m³)",
        "type": "number",
        "x-format": "number",
        "x-digits": 3
      },
      "laborCost": {
        "title": "Labor allowance",
        "type": "number",
        "x-format": "currency",
        "x-currency": "USD"
      },
      "deliveryCost": {
        "title": "Delivery allowance",
        "type": "number",
        "x-format": "currency",
        "x-currency": "USD"
      },
      "unitRate": {
        "title": "Entered USD rate / cubic yard",
        "type": "number",
        "x-format": "currency",
        "x-currency": "USD"
      },
      "costLow": {
        "title": "Low budget scenario",
        "type": "number",
        "x-format": "currency",
        "x-currency": "USD"
      },
      "costMid": {
        "title": "Middle budget scenario",
        "type": "number",
        "x-format": "currency",
        "x-currency": "USD"
      },
      "costHigh": {
        "title": "High budget scenario",
        "type": "number",
        "x-format": "currency",
        "x-currency": "USD"
      },
      "pricingStatus": {
        "title": "Pricing status",
        "type": "string",
        "x-format": "text"
      }
    }
  }
}
