Concrete Slab & Footing Calculator
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
line-height: 1.6;
color: #333;
max-width: 800px;
margin: 0 auto;
padding: 20px;
}
.calculator-wrapper {
background-color: #f8f9fa;
border: 1px solid #e9ecef;
border-radius: 8px;
padding: 25px;
margin-bottom: 30px;
box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}
.calc-title {
text-align: center;
color: #2c3e50;
margin-top: 0;
margin-bottom: 25px;
}
.input-group {
margin-bottom: 15px;
display: flex;
flex-direction: column;
}
.input-row {
display: flex;
gap: 20px;
flex-wrap: wrap;
}
.input-col {
flex: 1;
min-width: 200px;
}
label {
font-weight: 600;
display: block;
margin-bottom: 5px;
color: #495057;
}
input[type="number"], select {
width: 100%;
padding: 10px;
border: 1px solid #ced4da;
border-radius: 4px;
font-size: 16px;
box-sizing: border-box;
}
input[type="number"]:focus {
border-color: #0056b3;
outline: none;
}
.calc-btn {
background-color: #e67e22;
color: white;
border: none;
padding: 12px 20px;
font-size: 18px;
font-weight: bold;
border-radius: 4px;
cursor: pointer;
width: 100%;
margin-top: 10px;
transition: background-color 0.2s;
}
.calc-btn:hover {
background-color: #d35400;
}
#results-area {
display: none;
background-color: #fff;
border: 1px solid #dee2e6;
border-radius: 6px;
padding: 20px;
margin-top: 25px;
}
.result-row {
display: flex;
justify-content: space-between;
border-bottom: 1px solid #eee;
padding: 10px 0;
}
.result-row:last-child {
border-bottom: none;
}
.result-label {
color: #6c757d;
}
.result-value {
font-weight: 700;
color: #2c3e50;
font-size: 1.1em;
}
.highlight {
color: #e67e22;
font-size: 1.3em;
}
.article-content h2 {
color: #2c3e50;
border-bottom: 2px solid #e67e22;
padding-bottom: 10px;
margin-top: 40px;
}
.article-content h3 {
color: #34495e;
margin-top: 25px;
}
.info-box {
background-color: #e8f4f8;
border-left: 4px solid #3498db;
padding: 15px;
margin: 20px 0;
}
@media (max-width: 600px) {
.input-row {
flex-direction: column;
gap: 0;
}
}
Concrete Slab Calculator
Calculate Materials
Estimated Materials Needed
Volume (Cubic Yards):
–
Volume (Cubic Feet):
–
Premix Bags Needed (80 lb):
–
Estimated Truck Concrete Cost:
–
*Includes safety margin for spillage and uneven ground.
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 foundation footing. Ordering too little can result in a "cold joint" and structural weakness, while ordering too much wastes money.
The Golden Rule: Always add a safety margin (waste factor) of 5-10% to your calculation to account for spillage, slab depth variations, and settling of the subgrade.
The Concrete Formula
Concrete is measured by volume, typically in Cubic Yards (for truck delivery) or Cubic Feet (for bagged concrete). The basic formula is:
Length (ft) × Width (ft) × Thickness (ft) = Cubic Feet
Since thickness is usually measured in inches, you must divide the inches by 12 to convert it to feet before multiplying.
Converting to Cubic Yards
There are 27 cubic feet in 1 cubic yard. To determine how many yards to order from a ready-mix truck:
Calculate total Cubic Feet.
Divide by 27.
How Many Bags Do I Need?
If you are mixing concrete yourself using pre-mixed bags (like Quikrete or Sakrete), the yield depends on the weight of the bag:
80lb Bag: Yields approximately 0.60 cubic feet.
60lb Bag: Yields approximately 0.45 cubic feet.
40lb Bag: Yields approximately 0.30 cubic feet.
This calculator automatically applies these yield rates along with your selected safety margin to ensure you buy enough bags for the job.
Common Thickness Guidelines
4 Inches: Standard for sidewalks, patios, and residential driveways (passenger cars).
5-6 Inches: Reinforced driveways for heavier vehicles or poor soil conditions.
6+ Inches: Heavy-duty foundations or commercial aprons.
function calculateConcrete() {
// Get Input Values
var length = parseFloat(document.getElementById('slabLength').value);
var width = parseFloat(document.getElementById('slabWidth').value);
var thickInches = parseFloat(document.getElementById('slabThick').value);
var wastePct = parseFloat(document.getElementById('wastePct').value);
var priceYard = parseFloat(document.getElementById('pricePerYard').value);
var bagWeight = parseInt(document.getElementById('bagSize').value);
// Validation
if (isNaN(length) || isNaN(width) || isNaN(thickInches)) {
alert("Please enter valid numbers for Length, Width, and Thickness.");
return;
}
// Default waste to 0 if empty
if (isNaN(wastePct)) {
wastePct = 0;
}
// Logic
// 1. Convert thickness to feet
var thickFeet = thickInches / 12;
// 2. Calculate Cubic Feet
var cubicFeetRaw = length * width * thickFeet;
// 3. Add Waste Margin
var wasteMultiplier = 1 + (wastePct / 100);
var totalCubicFeet = cubicFeetRaw * wasteMultiplier;
// 4. Calculate Cubic Yards
var totalCubicYards = totalCubicFeet / 27;
// 5. Calculate Bags
// Yields: 80lb ~ 0.60 cu ft, 60lb ~ 0.45 cu ft, 40lb ~ 0.30 cu ft
var bagYield = 0.60; // default for 80lb
if (bagWeight === 60) bagYield = 0.45;
if (bagWeight === 40) bagYield = 0.30;
var totalBags = Math.ceil(totalCubicFeet / bagYield);
// 6. Calculate Cost (if price provided)
var totalCost = 0;
var showCost = false;
if (!isNaN(priceYard) && priceYard > 0) {
totalCost = totalCubicYards * priceYard;
showCost = true;
}
// Display Results
document.getElementById('resFeet').innerText = totalCubicFeet.toFixed(2);
document.getElementById('resYards').innerText = totalCubicYards.toFixed(2);
document.getElementById('resBags').innerText = totalBags;
document.getElementById('resBagSizeLabel').innerText = bagWeight;
if (showCost) {
document.getElementById('resCost').innerText = "$" + totalCost.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFractionDigits: 2});
document.getElementById('costRow').style.display = 'flex';
} else {
document.getElementById('costRow').style.display = 'none';
}
document.getElementById('results-area').style.display = 'block';
}