Whether you are pouring a new patio, a driveway, or a foundation slab, calculating the correct amount of concrete is crucial. Ordering too little can result in a structural disaster known as a "cold joint," while ordering too much is a waste of money.
Our Concrete Slab Calculator helps you determine exactly how many cubic yards or pre-mix bags you need based on the dimensions of your project.
The Concrete Formula
To calculate the volume of concrete required for a slab, you need to determine the volume in cubic feet and then convert that to cubic yards (which is how ready-mix trucks measure volume).
The math follows this logic:
Step 1: Convert the thickness from inches to feet (divide inches by 12).
Step 2: Multiply Length (ft) × Width (ft) × Thickness (ft) to get Cubic Feet.
Step 3: Divide Cubic Feet by 27 to get Cubic Yards (since there are 27 cubic feet in 1 cubic yard).
Recommended Slab Thickness
Choosing the right thickness depends on what the concrete will support:
4 Inches: Standard for walkways, patios, and shed floors. Suitable for foot traffic and light furniture.
5-6 Inches: Recommended for driveways that hold passenger vehicles/SUVs.
8+ Inches: Heavy-duty commercial aprons or areas supporting heavy machinery.
Bags vs. Ready-Mix Truck
When should you buy bags from the hardware store versus calling a concrete truck?
Use Bags (Pre-mix): For small projects requiring less than 1 cubic yard (approx. 45-60 bags of 60lbs). It is labor-intensive to mix by hand.
Use a Truck (Ready-mix): For any project over 1 cubic yard. It is generally cheaper per yard and saves immense physical labor. Be aware that many concrete companies have a "short load fee" for orders under 4-6 yards.
function calculateConcrete() {
// Get Inputs
var length = parseFloat(document.getElementById('slabLength').value);
var width = parseFloat(document.getElementById('slabWidth').value);
var thickInches = parseFloat(document.getElementById('slabThickness').value);
var wastePercent = parseFloat(document.getElementById('wasteFactor').value);
var price = parseFloat(document.getElementById('pricePerYard').value);
var bagSize = parseInt(document.getElementById('bagSize').value);
// Validation
if (isNaN(length) || isNaN(width) || isNaN(thickInches)) {
alert("Please enter valid numbers for Length, Width, and Thickness.");
return;
}
// Logic
// 1. Calculate Cubic Feet (Length * Width * (Thickness/12))
var thickFeet = thickInches / 12;
var cubicFeetRaw = length * width * thickFeet;
// 2. Add Waste
var wasteMultiplier = 1 + (wastePercent / 100);
var totalCubicFeet = cubicFeetRaw * wasteMultiplier;
// 3. Calculate Cubic Yards (27 cubic feet in 1 cubic yard)
var totalCubicYards = totalCubicFeet / 27;
// 4. Calculate Bags
// Yield estimates:
// 80lb bag ~= 0.60 cubic feet
// 60lb bag ~= 0.45 cubic feet
// 40lb bag ~= 0.30 cubic feet
var bagYield = 0.45; // default 60
if (bagSize === 80) bagYield = 0.60;
if (bagSize === 40) bagYield = 0.30;
var totalBags = Math.ceil(totalCubicFeet / bagYield);
// 5. Calculate Cost
var totalCost = 0;
if (!isNaN(price)) {
totalCost = totalCubicYards * price;
}
// Display Results
document.getElementById('resYards').innerHTML = totalCubicYards.toFixed(2);
document.getElementById('resFeet').innerHTML = totalCubicFeet.toFixed(2) + " ft³";
document.getElementById('resBags').innerHTML = totalBags + " (" + bagSize + "lb bags)";
if (totalCost > 0) {
document.getElementById('resCost').innerHTML = "$" + totalCost.toFixed(2);
} else {
document.getElementById('resCost').innerHTML = "N/A";
}
// Show result box
document.getElementById('calc-results').style.display = "block";
}