Concrete Slab & Bag Calculator
Calculate cubic yards and pre-mix bags needed for your project.
Length (Feet)
Width (Feet)
Thickness (Inches)
Standard sidewalk: 4″, Driveway: 6″
Waste/Margin (%)
Recommended: 5-10% for spills/uneven ground
Calculate Materials
Please enter valid numbers for dimensions.
Project Material Requirements
Volume Needed
0
Cubic Yards
(0 Cubic Feet)
Pre-Mix Bags (80lb)
0
Bags Required
Or 0 of the 60lb bags
*Results include your specified waste margin.
How to Calculate Concrete for Your Project
Planning a patio, walkway, or driveway requires precise measurements to ensure you order enough concrete without overspending. Concrete is measured by volume, specifically in Cubic Yards for truck deliveries, or in Cubic Feet when purchasing pre-mix bags (like Quikrete or Sakrete) from a hardware store.
The Concrete Formula
To determine the amount of concrete needed for a slab, you need to calculate the volume using this logic:
Volume (Cu. Ft.) = Length (ft) × Width (ft) × Thickness (ft)
Note: Since thickness is usually measured in inches, you must divide the inches by 12 to get feet (e.g., 4 inches ÷ 12 = 0.33 feet).
Cubic Yards vs. Bags
Ordering a Truck: Concrete trucks deliver in Cubic Yards. 1 Cubic Yard = 27 Cubic Feet.
Buying Bags: If you are mixing it yourself, you need to know bag yields:
An 80lb bag yields approximately 0.60 cubic feet.
A 60lb bag yields approximately 0.45 cubic feet.
Recommended Thickness Guidelines
Choosing the right thickness is crucial for the longevity of your slab:
4 Inches: Standard for walkways, patios, and residential garage floors.
5-6 Inches: Recommended for driveways that hold heavier vehicles or RVs.
8+ Inches: Heavy-duty industrial foundations or commercial aprons.
function validateInput(input) {
// Remove non-numeric chars except dot
input.value = input.value.replace(/[^0-9.]/g, ");
}
function calculateConcrete() {
// 1. Get Elements
var lenInput = document.getElementById('conc_length');
var widInput = document.getElementById('conc_width');
var thickInput = document.getElementById('conc_thick');
var wasteInput = document.getElementById('conc_waste');
var errorMsg = document.getElementById('error-msg');
var resultDiv = document.getElementById('conc-results');
// 2. Parse Values
var length = parseFloat(lenInput.value);
var width = parseFloat(widInput.value);
var thickInches = parseFloat(thickInput.value);
var wastePercent = parseFloat(wasteInput.value);
// 3. Validation
if (isNaN(length) || isNaN(width) || isNaN(thickInches) || length <= 0 || width <= 0 || thickInches <= 0) {
errorMsg.style.display = 'block';
resultDiv.style.display = 'none';
return;
} else {
errorMsg.style.display = 'none';
}
if (isNaN(wastePercent)) {
wastePercent = 0;
}
// 4. Calculations
// Convert thickness to feet
var thickFeet = thickInches / 12;
// Calculate Volume in Cubic Feet
var cubicFeetRaw = length * width * thickFeet;
// Apply Waste Factor
var wasteFactor = 1 + (wastePercent / 100);
var cubicFeetTotal = cubicFeetRaw * wasteFactor;
// Calculate Cubic Yards
var cubicYards = cubicFeetTotal / 27;
// Calculate Bags
// 80lb bag yields approx 0.6 cu ft
var bags80 = cubicFeetTotal / 0.6;
// 60lb bag yields approx 0.45 cu ft
var bags60 = cubicFeetTotal / 0.45;
// 5. Update DOM
// We use Math.ceil for bags because you can't buy half a bag
// We use toFixed(2) for yards for precision
document.getElementById('res-yards').innerHTML = cubicYards.toFixed(2);
document.getElementById('res-feet').innerHTML = cubicFeetTotal.toFixed(2);
document.getElementById('res-bags80').innerHTML = Math.ceil(bags80);
document.getElementById('res-bags60').innerHTML = Math.ceil(bags60);
// Show results
resultDiv.style.display = 'block';
}