Concrete Slab Calculator | Estimate Cubic Yards & Premix Bags
:root {
–primary-color: #f39c12;
–secondary-color: #2c3e50;
–background-color: #f4f6f7;
–text-color: #333;
–border-radius: 8px;
}
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
line-height: 1.6;
color: var(–text-color);
background-color: var(–background-color);
margin: 0;
padding: 20px;
}
.container {
max-width: 800px;
margin: 0 auto;
background: #fff;
padding: 40px;
border-radius: var(–border-radius);
box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}
h1, h2, h3 {
color: var(–secondary-color);
}
.calculator-box {
background: #fdfdfd;
border: 2px solid #e0e0e0;
padding: 30px;
border-radius: var(–border-radius);
margin-bottom: 40px;
}
.input-group {
margin-bottom: 20px;
}
label {
display: block;
margin-bottom: 8px;
font-weight: 600;
color: var(–secondary-color);
}
input[type="number"], select {
width: 100%;
padding: 12px;
border: 1px solid #ccc;
border-radius: 4px;
font-size: 16px;
box-sizing: border-box; /* Ensures padding doesn't affect width */
}
input[type="number"]:focus, select:focus {
border-color: var(–primary-color);
outline: none;
}
.calc-btn {
background-color: var(–primary-color);
color: #fff;
border: none;
padding: 15px 30px;
font-size: 18px;
font-weight: bold;
border-radius: 4px;
cursor: pointer;
width: 100%;
transition: background 0.3s ease;
}
.calc-btn:hover {
background-color: #e67e22;
}
#results-area {
margin-top: 30px;
padding: 20px;
background-color: #ecf0f1;
border-left: 5px solid var(–secondary-color);
display: none;
}
.result-row {
display: flex;
justify-content: space-between;
margin-bottom: 10px;
font-size: 18px;
}
.result-row strong {
color: var(–secondary-color);
}
.highlight-result {
font-size: 24px;
color: var(–primary-color);
font-weight: bold;
}
article {
margin-top: 50px;
border-top: 1px solid #eee;
padding-top: 30px;
}
.info-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px;
margin-top: 20px;
}
@media (max-width: 600px) {
.info-grid {
grid-template-columns: 1fr;
}
.container {
padding: 20px;
}
}
Concrete Slab Calculator
Accurately estimate the volume of concrete required for your slab, patio, or driveway project. Calculate cubic yards and the number of 60lb or 80lb premix bags needed.
Slab Length (Feet)
Slab Width (Feet)
Slab Thickness (Inches)
Waste Margin (%)
0% (Exact)
5% (Recommended)
10% (Complex shapes)
Calculate Concrete Needed
Estimated Materials
Volume in Cubic Yards:
–
Volume in Cubic Feet:
–
For Pre-Mix Bags:
80lb Bags Needed:
–
60lb Bags Needed:
–
How to Calculate Concrete for Slabs
Whether you are pouring a patio, a driveway, or a shed foundation, calculating the correct amount of concrete is crucial. Ordering too little can lead to disastrous "cold joints," while ordering too much wastes money.
The Concrete Formula
Concrete is measured in volume, specifically in Cubic Yards . To find this, you need to determine the volume of your slab in cubic feet first and then convert it.
The formula used in this calculator is:
Step 1: Convert thickness from inches to feet (Divide inches by 12).
Step 2: Multiply Length × Width × Thickness (in feet) = Cubic Feet.
Step 3: Divide Cubic Feet by 27 (since 1 cubic yard = 27 cubic feet) = Cubic Yards.
Common Slab Thicknesses
4 Inches
Standard for residential sidewalks, patios, and garage floors used for passenger cars. This provides sufficient strength for light to medium loads.
6 Inches
Recommended for driveways that hold heavy trucks, RVs, or for shed foundations supporting heavy machinery. Provides higher structural integrity.
Understanding Pre-Mix Yields
If you are using pre-mixed bags (like Quikrete or Sakrete) instead of ordering a truck, you need to know how much each bag yields:
80lb Bag: Yields approximately 0.60 cubic feet.
60lb Bag: Yields approximately 0.45 cubic feet.
Note: It is always recommended to add a 5-10% safety margin for spillage, uneven subgrade, or form bowing.
function calculateConcrete() {
// 1. Get input values strictly by ID
var lengthInput = document.getElementById("slabLength");
var widthInput = document.getElementById("slabWidth");
var thicknessInput = document.getElementById("slabThickness");
var wasteInput = document.getElementById("wasteMargin");
var length = parseFloat(lengthInput.value);
var width = parseFloat(widthInput.value);
var thicknessInches = parseFloat(thicknessInput.value);
var wasteMultiplier = parseFloat(wasteInput.value);
// 2. Validate inputs
if (isNaN(length) || isNaN(width) || isNaN(thicknessInches) || length <= 0 || width <= 0 || thicknessInches <= 0) {
alert("Please enter valid positive numbers for all dimensions.");
return;
}
// 3. Calculation Logic
// Convert thickness to feet
var thicknessFeet = thicknessInches / 12;
// Calculate Cubic Feet
var cubicFeet = length * width * thicknessFeet;
// Apply Waste Margin
var totalCubicFeet = cubicFeet * wasteMultiplier;
// Calculate Cubic Yards (27 cubic feet per cubic yard)
var cubicYards = 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.60);
var bags60 = Math.ceil(totalCubicFeet / 0.45);
// 4. Update UI
document.getElementById("resYards").innerHTML = cubicYards.toFixed(2) + " yd³";
document.getElementById("resFeet").innerHTML = totalCubicFeet.toFixed(2) + " ft³";
document.getElementById("res80lb").innerHTML = bags80 + " bags";
document.getElementById("res60lb").innerHTML = bags60 + " bags";
// Show results container
document.getElementById("results-area").style.display = "block";
}