Standard patio/sidewalk is 4 inches. Driveways often 6 inches.
Average local ready-mix price (bulk).
Recommended: 5-10% for spillage and uneven ground.
If mixing yourself using bagged concrete.
Please enter valid positive numbers for dimensions.
Project Summary
Total Area:0 sq ft
Volume Needed:0 cubic yards
Estimated Bulk Cost:$0.00
DIY Bag Calculation (Alternative)
80lb Bags Required:0 bags
60lb Bags Required:0 bags
Est. Cost (80lb Bags):$0.00
How to Calculate Concrete Slab Costs
Planning a new driveway, patio, or shed foundation requires accurate material estimation to avoid ordering too much expensive concrete or, worse, running out in the middle of a pour. This calculator helps determine the exact volume of concrete needed in cubic yards and provides cost estimates for both bulk ready-mix delivery and DIY bagged concrete.
The Formula for Concrete Volume
To calculate the concrete volume, you must determine the volume of the space in cubic feet and then convert it to cubic yards, which is the standard unit for selling ready-mix concrete. The formula is:
Step 3: Calculate Cubic Feet = Area × Thickness (ft)
Step 4: Convert to Cubic Yards = Cubic Feet ÷ 27
Why Include a Waste Margin?
Concrete professionals always order more than the exact mathematical volume. We recommend adding a 5% to 10% safety margin to your order. This accounts for:
Uneven subgrade (dips in the ground)
Spillage during transport from the truck to the form
Settling of the concrete
Form bowing under pressure
Bulk Ready-Mix vs. Pre-Mix Bags
For small projects (less than 1 cubic yard), buying pre-mix bags (60lb or 80lb) from a home improvement store is often more economical. However, for larger projects like driveways (typically 5+ cubic yards), ordering a ready-mix truck is standard. A standard truck holds about 10 cubic yards. If your project requires significantly less than a full truck, you may be charged a "short load fee."
Standard Thickness Guidelines
4 Inches: Standard for walkways, patios, and residential sidewalks.
5-6 Inches: Recommended for residential driveways and garage floors holding passenger vehicles.
8+ Inches: Heavy-duty commercial aprons or areas supporting heavy machinery.
function calculateConcrete() {
// 1. Get Input Values
var length = parseFloat(document.getElementById('slabLength').value);
var width = parseFloat(document.getElementById('slabWidth').value);
var thickInches = parseFloat(document.getElementById('slabThickness').value);
var pricePerYard = parseFloat(document.getElementById('pricePerYard').value);
var wastePercent = parseFloat(document.getElementById('wasteMargin').value);
var bagPrice80 = parseFloat(document.getElementById('premixBagPrice').value);
// 2. Validation
var errorDiv = document.getElementById('error-message');
var resultDiv = document.getElementById('result-area');
if (isNaN(length) || isNaN(width) || isNaN(thickInches) || length <= 0 || width <= 0 || thickInches <= 0) {
errorDiv.style.display = 'block';
resultDiv.style.display = 'none';
return;
}
errorDiv.style.display = 'none';
// 3. Calculation Logic
// Calculate Area
var areaSqFt = length * width;
// Convert thickness to feet
var thickFeet = thickInches / 12;
// Calculate Volume in Cubic Feet
var volCuFt = areaSqFt * thickFeet;
// Convert to Cubic Yards (27 cu ft = 1 cu yd)
var volCuYd = volCuFt / 27;
// Add Waste Margin
var marginMultiplier = 1 + (wastePercent / 100);
var totalYardsNeeded = volCuYd * marginMultiplier;
// Calculate Bulk Cost
var totalBulkCost = totalYardsNeeded * (isNaN(pricePerYard) ? 0 : pricePerYard);
// Calculate Bags
// 1 Cubic Yard of concrete weighs approx 4050 lbs (approx 150lbs/cu ft)
// However, dry mix yield varies.
// Standard rule: One 80lb bag yields approx 0.60 cubic feet.
// One 60lb bag yields approx 0.45 cubic feet.
// Total Volume in Cubic Feet (including waste)
var totalVolCuFt = volCuFt * marginMultiplier;
var bags80Yield = 0.60;
var bags60Yield = 0.45;
var numBags80 = Math.ceil(totalVolCuFt / bags80Yield);
var numBags60 = Math.ceil(totalVolCuFt / bags60Yield);
var totalBagCost = numBags80 * (isNaN(bagPrice80) ? 0 : bagPrice80);
// 4. Update DOM
document.getElementById('res-area').innerText = areaSqFt.toLocaleString(undefined, {minimumFractionDigits: 0, maximumFractionDigits: 2}) + " sq ft";
document.getElementById('res-yards').innerText = totalYardsNeeded.toFixed(2) + " cu yds";
document.getElementById('res-bulk-cost').innerText = "$" + totalBulkCost.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('res-bags-80').innerText = numBags80 + " bags";
document.getElementById('res-bags-60').innerText = numBags60 + " bags";
document.getElementById('res-bag-cost').innerText = "$" + totalBagCost.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
resultDiv.style.display = 'block';
}