Whether you are pouring a patio, a driveway, or a shed foundation, determining the correct amount of concrete is crucial. Ordering too little can result in a "cold joint" and structural weakness, while ordering too much wastes money.
The Concrete Formula
To find the volume of concrete needed for a rectangular slab, you must calculate the cubic volume in feet and then convert it to cubic yards, which is the standard unit for ordering ready-mix concrete.
The math follows these steps:
Calculate Volume in Cubic Feet: Multiply Length (ft) × Width (ft) × Thickness (ft). Note: You must convert thickness from inches to feet by dividing by 12.
Convert to Cubic Yards: Divide the cubic feet by 27 (since there are 27 cubic feet in one cubic yard).
Add Safety Margin: Always add 5-10% for spillage, uneven subgrade, and settling.
Example: For a 10′ x 10′ patio that is 4 inches thick:
10 × 10 = 100 sq ft area.
4 inches / 12 = 0.33 feet thickness.
100 × 0.33 = 33 cubic feet.
33 / 27 = 1.22 Cubic Yards.
Premix Bags vs. Ready-Mix Truck
Should you mix it yourself or call a truck? As a general rule of thumb:
Under 1 Yard: Use premix bags (60lb or 80lb). It is labor-intensive but cheaper for small volumes.
Over 1 Yard: It is usually better to order ready-mix concrete from a supplier. The consistency will be better, and it saves immense physical labor.
Standard Thickness Guide
4 Inches: Standard for sidewalks, patios, and residential driveways (passenger cars only).
5-6 Inches: Recommended for heavier driveways (trucks/SUVs) or hot tub pads.
6+ Inches: Heavy-duty commercial aprons or foundations supporting heavy machinery.
function calculateConcrete() {
// 1. Get Input Values
var length = parseFloat(document.getElementById("cscLength").value);
var width = parseFloat(document.getElementById("cscWidth").value);
var thicknessInches = parseFloat(document.getElementById("cscThickness").value);
var wastePercent = parseFloat(document.getElementById("cscWaste").value);
var priceYard = parseFloat(document.getElementById("cscPrice").value);
var priceBag = parseFloat(document.getElementById("cscPremixPrice").value);
// 2. Validate Inputs
if (isNaN(length) || isNaN(width) || isNaN(thicknessInches)) {
alert("Please enter valid numbers for Length, Width, and Thickness.");
return;
}
if (length <= 0 || width <= 0 || thicknessInches 0) {
costYardTotal = totalCubicYards * priceYard;
// Many suppliers have a minimum load charge (e.g. 3 yards), but we calculate raw material cost here.
showYardCost = true;
}
if (!isNaN(priceBag) && priceBag > 0) {
costBagTotal = bags80 * priceBag;
showBagCost = true;
}
// 4. Update UI
document.getElementById("resYards").innerHTML = totalCubicYards.toFixed(2) + " Cubic Yards";
document.getElementById("resFeet").innerHTML = totalCubicFeet.toFixed(2) + " cu ft";
document.getElementById("resBags80″).innerHTML = bags80 + " bags";
document.getElementById("resBags60″).innerHTML = bags60 + " bags";
var costRowYard = document.getElementById("costRowYard");
var costRowBag = document.getElementById("costRowBag");
if (showYardCost) {
document.getElementById("resCostYard").innerHTML = "$" + costYardTotal.toFixed(2);
costRowYard.style.display = "flex";
} else {
costRowYard.style.display = "none";
}
if (showBagCost) {
document.getElementById("resCostBag").innerHTML = "$" + costBagTotal.toFixed(2);
costRowBag.style.display = "flex";
} else {
costRowBag.style.display = "none";
}
// Show results container
document.getElementById("cscResults").style.display = "block";
}