*Includes selected waste margin. Always consult with a professional contractor for precise structural requirements.
How to Calculate Concrete for Your Slab
Planning a new driveway, patio, or shed foundation requires accurate measurements to ensure you order enough concrete without overspending. This calculator helps you determine the exact volume needed in cubic yards, cubic feet, and cubic meters, as well as the number of pre-mix bags required for smaller jobs.
The Concrete Volume Formula
To calculate the concrete volume for a rectangular slab, use the following formula:
Once you have the cubic footage, you can convert it to cubic yards, which is the standard unit for ordering ready-mix concrete trucks:
Cubic Yards = Cubic Feet ÷ 27
Understanding Thickness Requirements
4 Inches: Standard for residential sidewalks, patios, and garage floors (light vehicles).
5-6 Inches: Recommended for driveways holding heavier vehicles, RVs, or heavy machinery.
6+ Inches: Heavy-duty commercial applications.
Why Add a Waste Factor?
Concrete projects rarely go exactly according to the theoretical math. Uneven subgrades, spilling during the pour, and slight form bowing can increase the amount of material needed. It is industry standard to add a 5% to 10% safety margin (waste factor) to ensure you don't run short in the middle of a pour.
Pre-mix Bags vs. Ready-Mix Truck
If your project requires less than 1 cubic yard of concrete, buying pre-mix bags (60lb or 80lb) from a hardware store is usually more economical. For projects requiring more than 1-2 cubic yards, ordering a ready-mix truck is often cheaper and saves significant manual labor.
Frequently Asked Questions
How many 80lb bags of concrete are in a yard?
It takes approximately 45 bags of 80lb concrete to make one cubic yard. If you are using 60lb bags, you will need approximately 60 bags per cubic yard.
Do I need rebar or mesh?
For most driveways and structural slabs, reinforcing with rebar or wire mesh increases tensile strength and helps prevent cracking. Consult local building codes for specific requirements.
function calculateConcrete() {
// Get input values
var length = document.getElementById('slabLength').value;
var width = document.getElementById('slabWidth').value;
var thickness = document.getElementById('slabThickness').value;
var wastePercent = document.getElementById('wasteFactor').value;
var price = document.getElementById('pricePerYard').value;
var bagWeight = document.getElementById('bagType').value;
// Clean inputs
length = parseFloat(length);
width = parseFloat(width);
thickness = parseFloat(thickness);
wastePercent = parseFloat(wastePercent);
price = parseFloat(price);
bagWeight = parseFloat(bagWeight);
// Validation
if (isNaN(length) || isNaN(width) || isNaN(thickness)) {
alert("Please enter valid numbers for Length, Width, and Thickness.");
return;
}
if (isNaN(wastePercent)) wastePercent = 0;
if (isNaN(price)) price = 0;
// Logic: Calculate Volume in Cubic Feet
// Thickness inches to feet = thickness / 12
var thicknessFt = thickness / 12;
var cubicFeet = length * width * thicknessFt;
// Add Waste Factor
var totalCubicFeet = cubicFeet * (1 + (wastePercent / 100));
// Logic: Convert to Cubic Yards
var cubicYards = totalCubicFeet / 27;
// Logic: Convert to Cubic Meters
var cubicMeters = totalCubicFeet * 0.0283168;
// Logic: Calculate Bags
// Yields: 80lb ~ 0.6 cu ft, 60lb ~ 0.45 cu ft, 50lb ~ 0.375 cu ft
// A standard rule of thumb is roughly 133 lbs per cubic foot for cured concrete
// So 1 cubic foot = 133 lbs.
// Bags needed = (Total Cubic Feet * 133) / Bag Weight
// Or using yield per bag:
// 80lb yields approx 0.60 cu ft
// 60lb yields approx 0.45 cu ft
var bagYield = 0;
if (bagWeight === 80) bagYield = 0.60;
else if (bagWeight === 60) bagYield = 0.45;
else if (bagWeight === 50) bagYield = 0.375;
var totalBags = 0;
if (bagYield > 0) {
totalBags = Math.ceil(totalCubicFeet / bagYield);
}
// Logic: Calculate Cost
// If volume 0) {
document.getElementById('resCost').innerText = "$" + totalCost.toFixed(2).replace(/\d(?=(\d{3})+\.)/g, '$&,');
} else {
document.getElementById('resCost').innerText = "Enter price to calculate";
}
// Show result div
document.getElementById('results-area').style.display = 'block';
}