#concrete-calc-wrapper {
background: #f9fbfd;
border: 1px solid #e1e4e8;
border-radius: 8px;
padding: 30px;
box-shadow: 0 4px 6px rgba(0,0,0,0.05);
margin-bottom: 40px;
}
.cc-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 20px;
}
@media (max-width: 600px) {
.cc-grid { grid-template-columns: 1fr; }
}
.cc-input-group {
margin-bottom: 15px;
}
.cc-input-group label {
display: block;
margin-bottom: 8px;
font-weight: 600;
font-size: 14px;
color: #2c3e50;
}
.cc-input-group input, .cc-input-group select {
width: 100%;
padding: 12px;
border: 1px solid #cbd5e0;
border-radius: 6px;
font-size: 16px;
box-sizing: border-box;
transition: border-color 0.2s;
}
.cc-input-group input:focus {
border-color: #3182ce;
outline: none;
box-shadow: 0 0 0 3px rgba(49, 130, 206, 0.1);
}
#cc-calculate-btn {
background-color: #3182ce;
color: white;
border: none;
padding: 15px 30px;
font-size: 18px;
font-weight: bold;
border-radius: 6px;
cursor: pointer;
width: 100%;
margin-top: 10px;
transition: background-color 0.2s;
}
#cc-calculate-btn:hover {
background-color: #2b6cb0;
}
#cc-results {
display: none;
margin-top: 25px;
background: #fff;
border: 1px solid #e2e8f0;
border-radius: 8px;
padding: 20px;
}
.cc-result-row {
display: flex;
justify-content: space-between;
align-items: center;
padding: 12px 0;
border-bottom: 1px solid #edf2f7;
}
.cc-result-row:last-child {
border-bottom: none;
}
.cc-result-label {
font-weight: 500;
color: #4a5568;
}
.cc-result-value {
font-weight: 800;
color: #2d3748;
font-size: 18px;
}
.cc-highlight {
color: #3182ce;
font-size: 22px;
}
.cc-article h2 {
color: #2d3748;
border-bottom: 2px solid #3182ce;
padding-bottom: 10px;
margin-top: 40px;
}
.cc-article h3 {
color: #4a5568;
margin-top: 25px;
}
.cc-article p, .cc-article li {
line-height: 1.6;
color: #4a5568;
}
.cc-article ul {
padding-left: 20px;
}
.cc-error {
color: #e53e3e;
font-size: 14px;
margin-top: 5px;
display: none;
}
function calculateConcrete() {
// Get inputs
var length = parseFloat(document.getElementById('ccLength').value);
var width = parseFloat(document.getElementById('ccWidth').value);
var depth = parseFloat(document.getElementById('ccDepth').value);
var quantity = parseFloat(document.getElementById('ccQuantity').value);
var waste = parseFloat(document.getElementById('ccWaste').value);
var errorMsg = document.getElementById('cc-error-msg');
var resultsDiv = document.getElementById('cc-results');
// Validation
if (isNaN(length) || length <= 0 || isNaN(width) || width <= 0 || isNaN(depth) || depth <= 0 || isNaN(quantity) || quantity <= 0) {
errorMsg.style.display = 'block';
resultsDiv.style.display = 'none';
return;
}
errorMsg.style.display = 'none';
// Logic
// 1. Convert depth from inches to feet
var depthFeet = depth / 12;
// 2. Calculate base cubic feet
var cubicFeetBase = length * width * depthFeet * quantity;
// 3. Add waste factor
var wasteMultiplier = 1 + (waste / 100);
var totalCubicFeet = cubicFeetBase * wasteMultiplier;
// 4. Convert to Cubic Yards (27 cubic feet in 1 cubic yard)
var totalCubicYards = totalCubicFeet / 27;
// 5. Calculate Bags
// Standard yield: 80lb bag ~= 0.60 cu ft, 60lb bag ~= 0.45 cu ft
var bags80 = Math.ceil(totalCubicFeet / 0.60);
var bags60 = Math.ceil(totalCubicFeet / 0.45);
// Output Results
document.getElementById('resYards').innerText = totalCubicYards.toFixed(2);
document.getElementById('resFeet').innerText = totalCubicFeet.toFixed(2);
document.getElementById('resBags80').innerText = bags80;
document.getElementById('resBags60').innerText = bags60;
resultsDiv.style.display = 'block';
}
How to Calculate Concrete for Slabs and Footings
Whether you are pouring a patio, a driveway, or footings for a new deck, determining the exact amount of concrete required is the first step to a successful project. Ordering too little leads to expensive delays and cold joints, while ordering too much results in wasted money and disposal fees. This concrete calculator helps you determine the volume in cubic yards and the number of pre-mix bags required.
The Concrete Volume Formula
To calculate the concrete volume for a rectangular slab, the math involves three dimensions: Length, Width, and Depth (Thickness). The challenge is that length and width are usually measured in feet, while thickness is measured in inches.
The formula used is:
- Step 1: Convert thickness to feet (Inches / 12).
- Step 2: Multiply Length × Width × Thickness (in feet) to get Cubic Feet.
- Step 3: Divide Cubic Feet by 27 to get Cubic Yards.
Why You Need a Waste Margin
No pour is perfect. In the construction industry, it is standard practice to include a margin of error, often referred to as a "waste factor." Several variables can affect the total volume needed:
- Uneven Subgrade: If the ground isn't perfectly level, some areas of the slab will be thicker than calculated.
- Spillage: Concrete is heavy and can spill during transport from the truck or mixer to the formwork.
- Form Deflection: Wooden forms may bow slightly outward under the weight of the wet concrete, increasing the volume.
For simple rectangular projects on level ground, a 5% safety margin is usually sufficient. For irregular shapes or uneven terrain, consider adding 10% to 15%.
Pre-Mix Bags vs. Ready Mix Truck
Once you have your total volume, you need to decide how to buy the concrete.
Cubic Yards (Truck Delivery): If your project requires more than 1 cubic yard of concrete, it is generally more efficient to order a Ready Mix truck. One cubic yard weighs approximately 4,000 lbs, which is extremely labor-intensive to mix by hand.
Pre-Mix Bags (80lb or 60lb): For smaller projects (like setting posts or small pads), buying bags from a home improvement store is cost-effective. Use the "Bags Needed" output above to determine how many pallets to pick up. Remember, an 80lb bag yields approximately 0.60 cubic feet of cured concrete.