Pouring a concrete slab is a fundamental step for many construction projects, including driveways, patios, garage floors, and shed foundations. Understanding how to calculate the cost involves more than just measuring the square footage; you must calculate the total volume in cubic yards and account for labor, reinforcement materials, and waste.
Quick Tip: Concrete is typically sold by the cubic yard (27 cubic feet). Most ready-mix trucks hold between 8 to 10 cubic yards. For smaller projects, pre-mixed bags (60lb or 80lb) may be more economical.
How to Calculate Concrete Volume
The formula for calculating concrete volume is straightforward but requires consistent units of measurement.
Volume (Cu. Ft.) = Length (ft) × Width (ft) × Thickness (ft)
Since thickness is usually measured in inches, you must divide the inches by 12 to get feet. For example, a 4-inch slab is 0.33 feet thick.
Determining the Right Thickness
4 Inches: The standard for residential patios, walkways, and shed bases. It supports foot traffic and light equipment.
5-6 Inches: Recommended for driveways that will host standard passenger vehicles or light trucks.
8+ Inches: Necessary for heavy commercial loads, RV parking pads, or industrial foundations.
Cost Factors to Consider
Beyond the cost of the wet concrete mix (which averages between $115 and $150 per cubic yard delivered), consider these additional expenses:
Site Preparation: Grading the land and adding a gravel sub-base (approx. $1-$3 per sq. ft.).
Reinforcement: Rebar or wire mesh to prevent cracking.
Finishing: Stamped or colored concrete significantly increases labor costs.
Waste Factor: Always order 5-10% more concrete than your exact calculation to account for uneven sub-grade and spillage.
function calculateConcrete() {
// 1. Get Input Values
var length = parseFloat(document.getElementById("slabLength").value);
var width = parseFloat(document.getElementById("slabWidth").value);
var thicknessInches = parseFloat(document.getElementById("slabThickness").value);
var pricePerYard = parseFloat(document.getElementById("pricePerYard").value);
var laborCost = parseFloat(document.getElementById("laborCost").value);
var wasteFactor = parseFloat(document.getElementById("wasteFactor").value);
// 2. Validate Inputs
if (isNaN(length) || isNaN(width) || length <= 0 || width <= 0) {
alert("Please enter valid positive numbers for Length and Width.");
return;
}
if (isNaN(pricePerYard) || pricePerYard < 0) pricePerYard = 0;
if (isNaN(laborCost) || laborCost < 0) laborCost = 0;
if (isNaN(wasteFactor) || wasteFactor < 0) wasteFactor = 0;
// 3. Perform Calculations
// Calculate Area (Sq Ft)
var area = length * width;
// Calculate Volume in Cubic Feet
// Convert thickness to feet: inches / 12
var thicknessFeet = thicknessInches / 12;
var volumeCuFt = area * thicknessFeet;
// Add Waste Factor to Volume
var wasteMultiplier = 1 + (wasteFactor / 100);
var totalVolumeCuFt = volumeCuFt * wasteMultiplier;
// Convert to Cubic Yards (1 Yard = 27 Cubic Feet)
var totalYards = totalVolumeCuFt / 27;
// Calculate Bags (approximate: 1 cubic yard is about 45 bags of 80lb mix)
// 1 bag (80lb) yields ~0.6 cubic feet.
var bagsNeeded = totalVolumeCuFt / 0.6;
// Calculate Costs
var materialCost = totalYards * pricePerYard;
var totalProjectCost = materialCost + laborCost;
// 4. Update Result Elements
document.getElementById("resArea").innerHTML = area.toFixed(1) + " sq ft";
document.getElementById("resVolCuFt").innerHTML = volumeCuFt.toFixed(2) + " cu ft";
document.getElementById("resVolYards").innerHTML = totalYards.toFixed(2) + " cu yds";
document.getElementById("resBags").innerHTML = Math.ceil(bagsNeeded) + " (80lb bags)";
// Format Currency
document.getElementById("resMatCost").innerHTML = "$" + materialCost.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById("resTotalCost").innerHTML = "$" + totalProjectCost.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
// 5. Show Results Section
document.getElementById("results").style.display = "block";
}