#concrete-calculator-wrapper .calc-box {
background: #f9f9f9;
padding: 30px;
border-radius: 8px;
box-shadow: 0 4px 15px rgba(0,0,0,0.05);
margin-bottom: 40px;
}
#concrete-calculator-wrapper .form-group {
margin-bottom: 20px;
}
#concrete-calculator-wrapper label {
display: block;
font-weight: 600;
margin-bottom: 8px;
color: #333;
}
#concrete-calculator-wrapper input[type="number"],
#concrete-calculator-wrapper select {
width: 100%;
padding: 12px;
border: 1px solid #ddd;
border-radius: 4px;
font-size: 16px;
box-sizing: border-box;
}
#concrete-calculator-wrapper .btn-calc {
background-color: #d35400;
color: white;
border: none;
padding: 15px 30px;
font-size: 18px;
font-weight: bold;
border-radius: 4px;
cursor: pointer;
width: 100%;
transition: background 0.3s;
}
#concrete-calculator-wrapper .btn-calc:hover {
background-color: #e67e22;
}
#concrete-calculator-wrapper .results-box {
display: none;
background: #fff;
border: 1px solid #e0e0e0;
margin-top: 25px;
border-radius: 4px;
overflow: hidden;
}
#concrete-calculator-wrapper .result-header {
background: #333;
color: #fff;
padding: 15px;
text-align: center;
font-size: 18px;
font-weight: 600;
}
#concrete-calculator-wrapper .result-row {
padding: 15px;
border-bottom: 1px solid #eee;
display: flex;
justify-content: space-between;
align-items: center;
}
#concrete-calculator-wrapper .result-row:last-child {
border-bottom: none;
}
#concrete-calculator-wrapper .result-label {
color: #555;
font-size: 16px;
}
#concrete-calculator-wrapper .result-value {
font-weight: 700;
color: #d35400;
font-size: 18px;
}
#concrete-calculator-wrapper .article-content h2 {
color: #2c3e50;
border-bottom: 2px solid #d35400;
padding-bottom: 10px;
margin-top: 30px;
}
#concrete-calculator-wrapper .article-content p {
line-height: 1.6;
color: #444;
margin-bottom: 15px;
}
#concrete-calculator-wrapper .article-content ul {
margin-bottom: 20px;
padding-left: 20px;
}
#concrete-calculator-wrapper .article-content li {
margin-bottom: 8px;
color: #444;
}
@media (max-width: 600px) {
#concrete-calculator-wrapper .result-row {
flex-direction: column;
text-align: center;
}
}
How to Calculate Concrete for Slabs
Whether you are pouring a patio, a driveway, or footings for a deck, calculating the correct amount of concrete is crucial to the success of your project. Ordering too little can result in catastrophic "cold joints" where fresh concrete meets hardened concrete, creating a weak point. Ordering too much wastes money.
This Concrete Slab Calculator helps you estimate exactly how much premix or ready-mix concrete you need by converting your dimensions into Cubic Yards and total bag counts.
The Concrete Formula
To calculate the volume of concrete required, you must determine the volume of the space in cubic feet and then convert it to cubic yards (the standard unit for ordering from a truck).
The Math:
Length (ft) × Width (ft) × Thickness (ft) = Cubic Feet
Note that thickness is usually measured in inches, so you must divide the inches by 12 before multiplying. For example, a 4-inch slab is 0.33 feet thick.
Converting to Cubic Yards:
Since there are 27 cubic feet in 1 cubic yard, divide your total cubic feet by 27.
How Many Bags Do I Need?
If you are using pre-mixed bags (like Quikrete or Sakrete) instead of a mixer truck, the yield depends on the bag size:
- 80lb Bag: Yields approximately 0.60 cubic feet of cured concrete.
- 60lb Bag: Yields approximately 0.45 cubic feet of cured concrete.
Our calculator automatically divides your total required volume by these yields to tell you exactly how many bags to buy.
Why Include a Waste Margin?
No sub-base is perfectly flat. If your ground is slightly uneven, or if your forms bow out slightly under the weight of the wet mix, you will need more concrete than the perfect geometric calculation suggests. Spillage during the pour is also common.
We recommend a 5% safety margin for flat, well-prepared sites, and 10% for irregular sites or deeper footings. It is always cheaper to buy a few extra bags than to pause a job to run to the hardware store.
function calculateConcrete() {
var len = document.getElementById("slabLength").value;
var wid = document.getElementById("slabWidth").value;
var thick = document.getElementById("slabThickness").value;
var marginStr = document.getElementById("wasteMargin").value;
// Validation
if (len === "" || wid === "" || thick === "") {
alert("Please enter Length, Width, and Thickness.");
return;
}
var lengthFt = parseFloat(len);
var widthFt = parseFloat(wid);
var thicknessIn = parseFloat(thick);
var marginPercent = parseFloat(marginStr);
if (lengthFt <= 0 || widthFt <= 0 || thicknessIn <= 0) {
alert("Please enter positive values greater than zero.");
return;
}
// Calculations
// Convert thickness from inches to feet
var thicknessFt = thicknessIn / 12;
// Volume in Cubic Feet (Raw)
var volCuFtRaw = lengthFt * widthFt * thicknessFt;
// Apply Margin
var multiplier = 1 + (marginPercent / 100);
var volCuFtTotal = volCuFtRaw * multiplier;
// Volume in Cubic Yards
var volCuYards = volCuFtTotal / 27;
// Bags Calculation
// Standard yield: 80lb bag = 0.6 cu ft, 60lb bag = 0.45 cu ft
var bags80 = volCuFtTotal / 0.6;
var bags60 = volCuFtTotal / 0.45;
// Display Results
// Use toFixed(2) for volume decimals, Math.ceil for bags (can't buy half a bag)
document.getElementById("resYards").innerHTML = volCuYards.toFixed(2) + " yd³";
document.getElementById("resFeet").innerHTML = volCuFtTotal.toFixed(2) + " ft³";
document.getElementById("resBags80").innerHTML = Math.ceil(bags80) + " bags";
document.getElementById("resBags60").innerHTML = Math.ceil(bags60) + " bags";
// Show result box
document.getElementById("resultsArea").style.display = "block";
}