*Includes the selected 5% waste margin for spillage and uneven subgrade.
Pre-Mix Bag Calculator
0
80lb Bags
(0.6 ft³ yield)
0
60lb Bags
(0.45 ft³ yield)
Note: Bag counts are rounded up to the nearest whole bag.
How to Calculate Concrete for Your Project
Calculating the correct amount of concrete is crucial for any construction project, whether you are pouring a patio, a driveway, or a simple shed foundation. Ordering too little results in expensive "short load" fees or cold joints, while ordering too much is a waste of money and resources.
The standard formula for calculating concrete volume is:
Since concrete is sold by the Cubic Yard, you must divide the total cubic feet by 27 (since there are 27 cubic feet in one cubic yard).
Step-by-Step Calculation Guide
Measure the Area: Determine the length and width of your pour site in feet.
Determine Thickness: Most residential patios and sidewalks are 4 inches thick. Driveways or heavy-load areas should be 5 to 6 inches thick.
Convert Units: Ensure your thickness is converted to feet. For example, 4 inches = 4/12 = 0.333 feet.
Calculate Volume: Multiply Length × Width × Thickness (in feet).
Add Waste Margin: It is industry standard to add 5-10% extra to account for spillage, uneven subgrade depths, and form settling.
Cubic Yards vs. Pre-Mix Bags
When should you order a ready-mix truck versus buying bags from the hardware store?
Under 1 Cubic Yard: It is usually more economical and manageable to mix 60lb or 80lb bags yourself using a wheelbarrow or portable mixer.
1 to 2 Cubic Yards: This is the "grey area." Mixing by hand is very labor-intensive. A small tow-behind mixer or a short-load delivery service might be best.
Over 2 Cubic Yards: Ordering a ready-mix truck is highly recommended. The consistency of the mix will be better, and the time saved is significant.
6 Inches: Heavy Equipment Pads, RV Parking, Commercial Aprons.
Why is the "Waste Factor" Important?
A perfectly dug square hole rarely exists in construction. The ground is often uneven, meaning a 4-inch slab might actually be 4.5 inches deep in certain spots. Additionally, concrete can spill over forms or remain stuck in the mixer or wheelbarrow. A 5% margin is standard for flat work on a prepared base, while 10% is safer for deeper footings or irregular excavations.
function calculateConcrete() {
// 1. Get Input Values
var length = parseFloat(document.getElementById('slabLength').value);
var width = parseFloat(document.getElementById('slabWidth').value);
var thicknessInches = parseFloat(document.getElementById('slabThickness').value);
var wastePercent = parseFloat(document.getElementById('wasteFactor').value);
// 2. Validation
if (isNaN(length) || isNaN(width) || isNaN(thicknessInches)) {
alert("Please enter valid numbers for Length, Width, and Thickness.");
return;
}
if (length <= 0 || width <= 0 || thicknessInches <= 0) {
alert("Dimensions must be greater than zero.");
return;
}
// 3. Calculation Logic
// Convert thickness to feet
var thicknessFeet = thicknessInches / 12;
// Calculate Cubic Feet (Base)
var cubicFeetBase = length * width * thicknessFeet;
// Calculate Waste Multiplier (e.g., 5% becomes 1.05)
var wasteMultiplier = 1 + (wastePercent / 100);
// Calculate Total Cubic Feet with Waste
var totalCubicFeet = cubicFeetBase * wasteMultiplier;
// Calculate Cubic Yards (1 Yard = 27 Cubic Feet)
var totalCubicYards = totalCubicFeet / 27;
// Calculate Bags
// 80lb bag yields approx 0.6 cubic feet
// 60lb bag yields approx 0.45 cubic feet
var bags80 = Math.ceil(totalCubicFeet / 0.6);
var bags60 = Math.ceil(totalCubicFeet / 0.45);
// 4. Update UI
// Display Yards (2 decimal places)
document.getElementById('resYards').innerText = totalCubicYards.toFixed(2);
// Display Feet (2 decimal places)
document.getElementById('resFeet').innerText = totalCubicFeet.toFixed(2) + " ft³";
// Display Bag Counts
document.getElementById('bags80').innerText = bags80;
document.getElementById('bags60').innerText = bags60;
// Update text indicating which waste % was used
document.getElementById('displayWaste').innerText = wastePercent;
// Show Results Area
document.getElementById('results-area').style.display = "block";
// Scroll to results for mobile users
document.getElementById('results-area').scrollIntoView({behavior: 'smooth'});
}