Estimate the yardage and cost for your concrete project
ft
ft
inches
$
%
Standard waste margin is 5-10% to account for spillage and uneven subgrade.
Please enter valid positive numbers for all fields.
Slab Area:0 sq ft
Concrete Volume (Exact):0.00 cu yards
Concrete Needed (+10% Waste):0.00 cu yards
Estimated Material Cost:$0.00
How to Calculate Concrete Slab Costs
Planning a new driveway, patio, or garage floor requires accurate estimation of materials to avoid budget overruns or mid-project shortages. Our Concrete Slab Cost Calculator helps homeowners and contractors determine exactly how much concrete is required for a project, including necessary safety margins.
The Concrete Volume Formula
Concrete is sold by the cubic yard. To calculate the amount needed for a slab, you must determine the volume in cubic feet and convert it. The mathematical formula used is:
Step 1: Calculate Area in Square Feet = Length (ft) × Width (ft)
Professionals never order the exact amount of concrete calculated mathematically. Real-world conditions affect volume:
Uneven Subgrade: If your dirt base is slightly lower in some spots, you will need more concrete to maintain a level surface.
Form Bowing: Wooden forms may bow outward slightly under the weight of wet concrete.
Spillage: Minor amounts are often lost during the pouring and screeding process.
We recommend a 5% to 10% safety margin for most projects. For complex shapes or very uneven ground, consider increasing this to 15%.
Standard Thickness Guidelines
Choosing the right thickness affects both cost and durability:
4 Inches: Standard for residential sidewalks, patios, and driveways for passenger vehicles.
5-6 Inches: Recommended for driveways anticipating heavy trucks or RVs.
6+ Inches: Heavy-duty commercial applications.
Current Concrete Pricing
Ready-mix concrete prices vary by region, usually ranging between $115 and $150 per cubic yard. Factors influencing price include local availability, fuel costs, and additives (like fiber mesh or accelerators). Always call your local batch plant for a current quote before finalizing your budget.
function calculateConcrete() {
// Get input elements by ID
var lengthInput = document.getElementById('slabLength');
var widthInput = document.getElementById('slabWidth');
var thickInput = document.getElementById('slabThickness');
var priceInput = document.getElementById('pricePerYard');
var wasteInput = document.getElementById('wasteFactor');
var errorMsg = document.getElementById('error-message');
var resultArea = document.getElementById('result-area');
// Parse values
var length = parseFloat(lengthInput.value);
var width = parseFloat(widthInput.value);
var thickness = parseFloat(thickInput.value);
var price = parseFloat(priceInput.value);
var wastePercent = parseFloat(wasteInput.value);
// Validation
if (isNaN(length) || isNaN(width) || isNaN(thickness) || isNaN(price) || isNaN(wastePercent) ||
length <= 0 || width <= 0 || thickness <= 0 || price < 0 || wastePercent < 0) {
errorMsg.style.display = 'block';
resultArea.style.display = 'none';
return;
}
// Hide error if valid
errorMsg.style.display = 'none';
// Calculation Logic
// 1. Calculate Area (sq ft)
var areaSqFt = length * width;
// 2. Calculate Volume in Cubic Feet
// Thickness is in inches, so divide by 12 to get feet
var thicknessFt = thickness / 12;
var volumeCuFt = areaSqFt * thicknessFt;
// 3. Convert to Cubic Yards (27 cu ft in 1 cu yard)
var volumeCuYards = volumeCuFt / 27;
// 4. Apply Waste Factor
var wasteMultiplier = 1 + (wastePercent / 100);
var totalCuYards = volumeCuYards * wasteMultiplier;
// 5. Calculate Cost
var totalCost = totalCuYards * price;
// Update DOM with results
document.getElementById('res-area').innerHTML = areaSqFt.toFixed(2) + " sq ft";
document.getElementById('res-vol-exact').innerHTML = volumeCuYards.toFixed(2) + " cu yards";
document.getElementById('res-waste-txt').innerHTML = wastePercent;
document.getElementById('res-vol-total').innerHTML = totalCuYards.toFixed(2) + " cu yards";
// Format cost as currency
document.getElementById('res-cost').innerHTML = "$" + totalCost.toLocaleString(undefined, {
minimumFractionDigits: 2,
maximumFractionDigits: 2
});
// Show result
resultArea.style.display = 'block';
}