Planning a new patio, driveway, or shed foundation requires precise calculations to ensure you order enough concrete without overspending. This Concrete Slab Calculator helps you determine exactly how much volume you need based on your project dimensions.
The Concrete Formula
To calculate the concrete volume, you need to find the cubic footage of the slab and then convert it to cubic yards (the standard unit for ordering ready-mix concrete).
4 Inches: Standard for walkways, patios, and residential sidewalks.
5-6 Inches: Recommended for driveways and garage floors that hold passenger vehicles.
6+ Inches: Necessary for heavy equipment or commercial applications.
Understanding Pre-Mix Bags vs. Ready-Mix Truck
If your project is small (under 1-2 cubic yards), using pre-mixed bags from a hardware store is often more economical. For larger projects, ordering a ready-mix truck is usually better.
80lb Bag: Yields approximately 0.60 cubic feet of concrete.
60lb Bag: Yields approximately 0.45 cubic feet of concrete.
Why Add a Waste Margin?
Professional contractors always include a "margin of safety" or waste percentage, typically 5% to 10%. This accounts for:
Spillage during the pour.
Uneven subgrade (ground) depth.
Settling of the formwork.
It is much cheaper to order slightly more concrete than to run out halfway through the job and pay for a "short load" delivery fee.
Example Calculation
Let's say you are pouring a patio that is 12 feet long, 10 feet wide, and 4 inches thick.
Convert 4 inches to feet: 4 ÷ 12 = 0.33 ft.
Calculate Volume: 12 × 10 × 0.33 = 40 cubic feet.
Convert to Yards: 40 ÷ 27 = 1.48 Cubic Yards.
Add 5% waste: 1.48 × 1.05 = 1.55 Cubic Yards.
function calculateConcrete() {
// Get input values
var length = parseFloat(document.getElementById("slabLength").value);
var width = parseFloat(document.getElementById("slabWidth").value);
var thickness = parseFloat(document.getElementById("slabThickness").value);
var waste = parseFloat(document.getElementById("slabWaste").value);
var price = parseFloat(document.getElementById("pricePerYard").value);
// Validation
if (isNaN(length) || isNaN(width) || isNaN(thickness)) {
alert("Please enter valid numbers for Length, Width, and Thickness.");
return;
}
if (length <= 0 || width <= 0 || thickness 0) {
var totalCost = totalCuYards * price;
document.getElementById("resCost").innerHTML = totalCost.toFixed(2);
costDiv.style.display = "block";
} else {
costDiv.style.display = "none";
}
}