Concrete Labor Cost Calculator
Estimate Your Concrete Project’s Labor Expenses
Enter the details of your concrete project below to get an accurate estimate of the labor costs involved. This calculator helps you budget for the workforce required for placement, finishing, and curing.
Total surface area of the concrete slab in square feet.
Desired thickness of the concrete slab in inches. (e.g., 4 for a patio, 6 for a driveway)
Average hourly wage for a skilled concrete laborer in your region.
The number of workers typically assigned to this type of concrete job.
Estimated man-hours required to place one cubic yard of concrete. (Typical: 1.0 – 2.5)
Estimated man-hours required for finishing and curing 100 square feet of concrete. (Typical: 1.5 – 3.0)
Factor accounting for breaks, setup, and minor delays. (e.g., 90 for 90% efficiency)
Calculation Results
$0.00 Total Labor Cost
Total Concrete Volume: 0.00 cubic yards
Estimated Placement Man-Hours: 0.00 hours
Estimated Finishing Man-Hours: 0.00 hours
Total Estimated Man-Hours: 0.00 hours
Formula Used:
Total Man-Hours = ( (Project Area * Thickness / 12 / 27 * Placement Rate) + (Project Area / 100 * Finishing Rate) ) / (Efficiency Factor / 100)
Total Labor Cost = Total Man-Hours * Average Labor Rate per Hour
| Task | Estimated Man-Hours | Estimated Labor Cost |
|---|---|---|
| Concrete Placement | 0.00 hours | $0.00 |
| Finishing & Curing | 0.00 hours | $0.00 |
| Total Labor | 0.00 hours | $0.00 |
Concrete Labor Cost Breakdown
What is Concrete Labor Cost?
The concrete labor cost calculator is an essential tool for anyone planning a concrete project, from homeowners to professional contractors. It provides an estimate of the expenses associated with the human workforce required to complete a concrete job. This includes tasks such as site preparation, concrete pouring, spreading, leveling, finishing, and curing. Unlike material costs, which are often straightforward based on volume, labor costs can fluctuate significantly due to various factors like project complexity, regional wage rates, crew efficiency, and specific finishing requirements.
Understanding your concrete labor cost is crucial for accurate budgeting and project management. It helps prevent unexpected expenses and ensures you allocate sufficient funds for skilled workers. Without a clear estimate of the concrete labor cost, projects can easily run over budget, leading to delays and financial strain.
Who Should Use the Concrete Labor Cost Calculator?
- Homeowners: Planning a new patio, driveway, or foundation and want to understand the labor component of the total cost.
- General Contractors: Bidding on projects that involve concrete work and need to accurately sub-contract or estimate in-house labor.
- Concrete Subcontractors: Preparing detailed quotes for clients, ensuring all labor aspects are covered.
- Project Managers: Monitoring project budgets and resource allocation for construction sites.
- DIY Enthusiasts: Considering a concrete project and want to compare the cost of hiring professionals versus doing it themselves (factoring in their own time as labor).
Common Misconceptions About Concrete Labor Cost
- It’s just about pouring: Many assume concrete labor cost only covers the actual pouring. In reality, it includes extensive preparation (formwork, rebar), skilled finishing (troweling, brooming), and crucial curing processes.
- One size fits all: Labor rates and efficiency vary wildly by region, crew experience, and project type. A simple per-square-foot estimate often misses critical details.
- Materials are the main cost: While materials are significant, labor can often account for 40-60% or even more of the total concrete project cost, especially for intricate designs or difficult access sites.
- Faster means cheaper: A larger crew might finish faster, but if not managed efficiently, it could lead to higher total man-hours and thus higher concrete labor cost.
Concrete Labor Cost Formula and Mathematical Explanation
Our concrete labor cost calculator uses a comprehensive formula to estimate the total man-hours required for a project, then multiplies that by the average labor rate. This approach provides a more accurate estimate than simple per-square-foot averages.
Step-by-Step Derivation:
- Calculate Concrete Volume: First, determine the volume of concrete needed.
Volume (cubic feet) = Project Area (sq ft) * Thickness (inches) / 12
Volume (cubic yards) = Volume (cubic feet) / 27 - Estimate Placement Man-Hours: This is the time required for pouring, spreading, and initial leveling.
Placement Man-Hours = Volume (cubic yards) * Placement Rate (man-hours per cubic yard) - Estimate Finishing Man-Hours: This covers the skilled work of troweling, brooming, edging, joint cutting, and initial curing.
Finishing Man-Hours = (Project Area (sq ft) / 100) * Finishing Rate (man-hours per 100 sq ft) - Calculate Total Raw Man-Hours: Sum of placement and finishing hours.
Total Raw Man-Hours = Placement Man-Hours + Finishing Man-Hours - Adjust for Efficiency: Account for non-productive time like breaks, setup, and minor delays.
Total Adjusted Man-Hours = Total Raw Man-Hours / (Efficiency Factor / 100) - Calculate Total Labor Cost: Multiply the total adjusted man-hours by the average hourly labor rate.
Total Labor Cost = Total Adjusted Man-Hours * Average Labor Rate per Hour
Variables Table:
| Variable | Meaning | Unit | Typical Range |
|---|---|---|---|
| Project Area | Total surface area of the concrete slab. | Square Feet (sq ft) | 50 – 50,000+ |
| Concrete Thickness | Desired thickness of the concrete slab. | Inches (in) | 3 – 12 |
| Average Labor Rate | Average hourly wage for a skilled concrete laborer. | Dollars per Hour ($/hr) | $25 – $60 |
| Crew Size | Number of workers on the job. (Affects project duration, not total man-hours directly in this formula) | Workers | 1 – 10+ |
| Placement Rate | Man-hours required to place one cubic yard of concrete. | Man-Hours per Cubic Yard | 1.0 – 2.5 |
| Finishing Rate | Man-hours required for finishing and curing 100 sq ft. | Man-Hours per 100 Sq Ft | 1.5 – 3.0 |
| Efficiency Factor | Percentage reflecting actual productive time vs. total time. | Percent (%) | 75% – 95% |
Practical Examples (Real-World Use Cases)
Let’s illustrate how the concrete labor cost calculator works with a couple of realistic scenarios.
Example 1: Small Backyard Patio
A homeowner wants to install a new 15 ft x 20 ft (300 sq ft) concrete patio, 4 inches thick, with a standard broom finish.
- Project Area: 300 sq ft
- Concrete Thickness: 4 inches
- Average Labor Rate: $30/hour
- Crew Size: 2 workers
- Placement Rate: 1.8 man-hours per cubic yard (slightly higher for smaller pours)
- Finishing Rate: 2.2 man-hours per 100 sq ft (for broom finish)
- Efficiency Factor: 85%
Calculation Steps:
- Volume (cu ft) = 300 * 4 / 12 = 100 cu ft
- Volume (cu yd) = 100 / 27 ≈ 3.70 cu yd
- Placement Man-Hours = 3.70 * 1.8 = 6.66 hours
- Finishing Man-Hours = (300 / 100) * 2.2 = 6.60 hours
- Total Raw Man-Hours = 6.66 + 6.60 = 13.26 hours
- Total Adjusted Man-Hours = 13.26 / (85 / 100) ≈ 15.60 hours
- Total Labor Cost = 15.60 * $30 = $468.00
Interpretation: For this patio, the estimated concrete labor cost is approximately $468. This helps the homeowner budget for the workforce, knowing that this figure doesn’t include materials, equipment, or profit margins for a contractor.
Example 2: Standard Residential Driveway
A contractor is bidding on a 20 ft x 50 ft (1000 sq ft) driveway, 6 inches thick, requiring a durable finish.
- Project Area: 1000 sq ft
- Concrete Thickness: 6 inches
- Average Labor Rate: $40/hour
- Crew Size: 4 workers
- Placement Rate: 1.2 man-hours per cubic yard (more efficient for larger pours)
- Finishing Rate: 2.5 man-hours per 100 sq ft (for a more durable finish)
- Efficiency Factor: 90%
Calculation Steps:
- Volume (cu ft) = 1000 * 6 / 12 = 500 cu ft
- Volume (cu yd) = 500 / 27 ≈ 18.52 cu yd
- Placement Man-Hours = 18.52 * 1.2 = 22.22 hours
- Finishing Man-Hours = (1000 / 100) * 2.5 = 25.00 hours
- Total Raw Man-Hours = 22.22 + 25.00 = 47.22 hours
- Total Adjusted Man-Hours = 47.22 / (90 / 100) ≈ 52.47 hours
- Total Labor Cost = 52.47 * $40 = $2,098.80
Interpretation: The estimated concrete labor cost for this driveway is around $2,099. This figure is crucial for the contractor to factor into their overall bid, ensuring profitability and competitive pricing. It highlights the significant labor investment in larger projects.
How to Use This Concrete Labor Cost Calculator
Our concrete labor cost calculator is designed for ease of use, providing quick and reliable estimates. Follow these simple steps to get your project’s labor cost:
- Input Project Area: Enter the total square footage of the concrete slab you plan to pour. For example, a 10×10 foot slab would be 100 sq ft.
- Input Concrete Thickness: Specify the desired thickness in inches. Common thicknesses range from 4 inches for patios to 6 inches for driveways and up to 8-12 inches for heavy-duty foundations.
- Input Average Labor Rate: Provide the average hourly wage for a skilled concrete laborer in your local area. This can vary significantly by region and experience level.
- Input Crew Size: Enter the number of workers you anticipate will be on the job. While this doesn’t directly affect total man-hours in the formula, it’s a key assumption for project planning.
- Input Placement Man-Hours per Cubic Yard: This is an estimate of how many man-hours it takes to place one cubic yard of concrete. Smaller, more complex pours might require more man-hours per cubic yard than large, open slabs.
- Input Finishing Man-Hours per 100 Sq Ft: Enter the estimated man-hours needed to finish and cure 100 square feet of concrete. Intricate finishes (e.g., stamped, exposed aggregate) will require more time than a simple broom finish.
- Input Efficiency Factor: This percentage accounts for non-productive time like breaks, equipment setup, and unforeseen delays. A typical range is 80-95%.
- Review Results: The calculator will instantly display the “Total Labor Cost” as the primary highlighted result. You’ll also see intermediate values like total concrete volume, estimated placement man-hours, finishing man-hours, and total man-hours.
- Analyze the Breakdown: The table below the results provides a clear breakdown of man-hours and costs for placement versus finishing, helping you understand where the labor effort is concentrated.
- Utilize the Chart: The dynamic chart visually represents the distribution of labor costs, offering another perspective on your budget.
- Copy Results: Use the “Copy Results” button to easily transfer your estimates to a spreadsheet or document for further budgeting.
How to Read Results and Decision-Making Guidance:
The results from the concrete labor cost calculator provide a solid foundation for your project planning. The “Total Labor Cost” is your primary budget figure for the workforce. The “Total Estimated Man-Hours” gives you an idea of the overall effort required, which can help in scheduling. If the estimated cost is higher than expected, consider adjusting your inputs, such as exploring more efficient placement/finishing methods or re-evaluating the scope of work. Remember, this calculator focuses solely on labor; you’ll need to add material costs, equipment rental, and any contractor overhead/profit for a complete project budget. For more detailed budgeting, consider using a concrete project budgeting tool.
Key Factors That Affect Concrete Labor Cost Results
Several variables can significantly influence the final concrete labor cost. Understanding these factors allows for more accurate estimations and better project management.
- Project Size and Complexity: Larger, simpler slabs (like a warehouse floor) often have a lower man-hour per cubic yard rate due to economies of scale and easier access. Smaller, intricate projects (e.g., curved pathways, multiple small pours) require more setup, detailed formwork, and precise finishing, increasing the man-hours per unit.
- Concrete Type and Mix: Specialty concrete mixes (e.g., high-strength, lightweight, colored) can be more challenging to work with, potentially requiring more skilled labor and longer finishing times. Fast-setting concrete, while speeding up the overall project, demands very quick and efficient labor, which can sometimes increase the hourly rate or require more crew members.
- Site Accessibility: Projects with difficult access (e.g., backyard with no vehicle access, elevated slabs) will incur higher labor costs. Workers may need to wheelbarrow concrete long distances or use pumps, which adds time and effort.
- Finishing Requirements: The desired finish significantly impacts labor. A basic broom finish is less labor-intensive than a smooth troweled finish, stamped concrete, exposed aggregate, or polished concrete, all of which require specialized skills and more time.
- Regional Labor Rates: Wages for skilled concrete laborers vary widely by geographic location. Urban areas with higher costs of living typically have higher hourly rates than rural areas.
- Crew Experience and Efficiency: An experienced, well-coordinated crew will work more efficiently, reducing the total man-hours required. Conversely, an inexperienced crew may take longer, leading to higher labor costs. Our calculator’s “Efficiency Factor” helps account for this.
- Weather Conditions: Extreme heat, cold, rain, or high winds can slow down concrete work, requiring protective measures or even halting operations, thereby increasing the total labor time and cost.
- Site Preparation: While often considered a separate cost, the quality and extent of site preparation (grading, compaction, formwork installation, rebar placement) directly impact the efficiency of the concrete pour and finish. Poor preparation can lead to delays and increased labor during the pour.
Frequently Asked Questions (FAQ)
Q: Does this concrete labor cost calculator include material costs?
A: No, this calculator specifically focuses on the concrete labor cost. It estimates the expenses related to the workforce (man-hours and hourly rates) for placing, finishing, and curing concrete. Material costs (concrete mix, rebar, formwork lumber, etc.) need to be calculated separately. For a comprehensive budget, you might need a concrete material cost estimator.
Q: How accurate is the concrete labor cost calculator?
A: The accuracy depends heavily on the quality of your input data. Using realistic average labor rates, placement rates, finishing rates, and efficiency factors for your specific region and project type will yield a highly accurate estimate. It provides a strong baseline for budgeting, but always consider getting multiple quotes from local contractors for final pricing.
Q: What are typical values for Placement Man-Hours per Cubic Yard?
A: This can range from 1.0 to 2.5 man-hours per cubic yard. For large, open, easy-access pours, it might be closer to 1.0-1.5. For smaller, more complex, or difficult-access pours, it could be 1.8-2.5 or even higher.
Q: What are typical values for Finishing Man-Hours per 100 Sq Ft?
A: For a basic broom finish, expect around 1.5-2.0 man-hours per 100 sq ft. For a smooth troweled finish, it might be 2.0-2.5. More intricate finishes like stamped or exposed aggregate can easily push this to 3.0-5.0+ man-hours per 100 sq ft due to the specialized skills and time required.
Q: How does site preparation affect concrete labor cost?
A: While site prep (excavation, grading, compaction, formwork) is often a separate line item, poor preparation can significantly increase the labor cost during the concrete pour itself. If the site isn’t level, forms aren’t secure, or access is difficult, the crew will spend more time correcting issues, leading to higher overall man-hours for the concrete work.
Q: Can I use this calculator for commercial projects?
A: Yes, the principles apply to commercial projects as well. However, commercial projects often involve larger volumes, specialized equipment, and potentially different labor rates or union requirements. Ensure your input values (especially labor rates and efficiency factors) reflect commercial project realities for an accurate concrete labor cost estimate.
Q: What if my project has multiple thicknesses or areas?
A: For projects with varying thicknesses or distinct areas, it’s best to break them down into separate calculations. Calculate the labor cost for each section individually and then sum them up for the total project. This provides a more precise estimate than averaging.
Q: How can I save on concrete labor costs?
A: To reduce your concrete labor cost, consider:
- Ensuring excellent site preparation to minimize on-site delays.
- Choosing a simpler finish if aesthetics allow.
- Optimizing concrete delivery and access to reduce manual labor.
- Hiring an experienced and efficient crew.
- Scheduling during optimal weather conditions.
Related Tools and Internal Resources
To further assist with your concrete project planning and budgeting, explore these related tools and articles:
// For this exercise, I'm assuming Chart.js is available or will be added.
// If Chart.js is strictly forbidden, I would implement a pure canvas drawing function.
// Given the prompt says "Native
function drawPureCanvasChart(placementCost, finishingCost) {
var canvas = document.getElementById('laborCostChart');
var ctx = canvas.getContext('2d');
var width = canvas.width;
var height = canvas.height;
var centerX = width / 2;
var centerY = height / 2;
var radius = Math.min(width, height) / 2 * 0.7; // 70% of min dimension
ctx.clearRect(0, 0, width, height); // Clear canvas
var total = placementCost + finishingCost;
if (total === 0) {
ctx.fillStyle = '#ccc';
ctx.beginPath();
ctx.arc(centerX, centerY, radius, 0, Math.PI * 2);
ctx.fill();
ctx.fillStyle = '#666';
ctx.font = '14px Arial';
ctx.textAlign = 'center';
ctx.fillText('No Data', centerX, centerY);
return;
}
var startAngle = 0;
var colors = ['#004a99', '#28a745'];
var data = [
{ value: placementCost, label: 'Placement Labor' },
{ value: finishingCost, label: 'Finishing Labor' }
];
// Draw slices
for (var i = 0; i < data.length; i++) {
var sliceAngle = (data[i].value / total) * Math.PI * 2;
ctx.fillStyle = colors[i];
ctx.beginPath();
ctx.moveTo(centerX, centerY);
ctx.arc(centerX, centerY, radius, startAngle, startAngle + sliceAngle);
ctx.closePath();
ctx.fill();
startAngle += sliceAngle;
}
// Draw legend
var legendX = centerX - radius;
var legendY = centerY + radius + 20;
ctx.font = '12px Arial';
ctx.textAlign = 'left';
for (var i = 0; i < data.length; i++) {
var percentage = (data[i].value / total * 100).toFixed(1);
var text = data[i].label + ' ($' + data[i].value.toFixed(2) + ' - ' + percentage + '%)';
ctx.fillStyle = colors[i];
ctx.fillRect(legendX, legendY + i * 20, 10, 10);
ctx.fillStyle = '#333';
ctx.fillText(text, legendX + 15, legendY + i * 20 + 9);
}
}
function validateInput(id, min, max, fieldName) {
var inputElement = document.getElementById(id);
var errorElement = document.getElementById(id + 'Error');
var value = parseFloat(inputElement.value);
if (isNaN(value) || inputElement.value.trim() === '') {
errorElement.textContent = fieldName + ' cannot be empty.';
inputElement.style.borderColor = '#dc3545';
return false;
}
if (value < min) {
errorElement.textContent = fieldName + ' must be at least ' + min + '.';
inputElement.style.borderColor = '#dc3545';
return false;
}
if (value > max) {
errorElement.textContent = fieldName + ' cannot exceed ' + max + '.';
inputElement.style.borderColor = '#dc3545';
return false;
}
errorElement.textContent = '';
inputElement.style.borderColor = '#ced4da';
return true;
}
function calculateConcreteLaborCost() {
var isValid = true;
isValid = validateInput('projectArea', 1, 100000, 'Project Area') && isValid;
isValid = validateInput('concreteThickness', 1, 24, 'Concrete Thickness') && isValid;
isValid = validateInput('laborRate', 10, 100, 'Average Labor Rate') && isValid;
isValid = validateInput('crewSize', 1, 20, 'Crew Size') && isValid;
isValid = validateInput('placementRate', 0.5, 5.0, 'Placement Man-Hours per Cubic Yard') && isValid;
isValid = validateInput('finishingRate', 0.5, 10.0, 'Finishing Man-Hours per 100 Sq Ft') && isValid;
isValid = validateInput('efficiencyFactor', 1, 100, 'Efficiency Factor') && isValid;
if (!isValid) {
document.getElementById('totalLaborCostResult').textContent = '$0.00';
document.getElementById('totalVolumeResult').textContent = '0.00';
document.getElementById('placementManHoursResult').textContent = '0.00';
document.getElementById('finishingManHoursResult').textContent = '0.00';
document.getElementById('totalManHoursResult').textContent = '0.00';
document.getElementById('tablePlacementHours').textContent = '0.00 hours';
document.getElementById('tablePlacementCost').textContent = '$0.00';
document.getElementById('tableFinishingHours').textContent = '0.00 hours';
document.getElementById('tableFinishingCost').textContent = '$0.00';
document.getElementById('tableTotalHours').textContent = '0.00 hours';
document.getElementById('tableTotalCost').textContent = '$0.00';
drawPureCanvasChart(0, 0); // Clear chart
return;
}
var projectArea = parseFloat(document.getElementById('projectArea').value);
var concreteThickness = parseFloat(document.getElementById('concreteThickness').value);
var laborRate = parseFloat(document.getElementById('laborRate').value);
var crewSize = parseFloat(document.getElementById('crewSize').value); // Not used in man-hour calculation, but good to have
var placementRate = parseFloat(document.getElementById('placementRate').value);
var finishingRate = parseFloat(document.getElementById('finishingRate').value);
var efficiencyFactor = parseFloat(document.getElementById('efficiencyFactor').value) / 100;
// 1. Calculate Concrete Volume
var volumeCuFt = projectArea * concreteThickness / 12;
var volumeCuYd = volumeCuFt / 27;
// 2. Estimate Placement Man-Hours
var placementManHoursRaw = volumeCuYd * placementRate;
// 3. Estimate Finishing Man-Hours
var finishingManHoursRaw = (projectArea / 100) * finishingRate;
// 4. Calculate Total Raw Man-Hours
var totalRawManHours = placementManHoursRaw + finishingManHoursRaw;
// 5. Adjust for Efficiency
var totalAdjustedManHours = totalRawManHours / efficiencyFactor;
// 6. Calculate Total Labor Cost
var totalLaborCost = totalAdjustedManHours * laborRate;
// Calculate individual task costs for table/chart
var placementLaborCost = (placementManHoursRaw / efficiencyFactor) * laborRate;
var finishingLaborCost = (finishingManHoursRaw / efficiencyFactor) * laborRate;
// Display results
document.getElementById('totalLaborCostResult').textContent = '$' + totalLaborCost.toFixed(2);
document.getElementById('totalVolumeResult').textContent = volumeCuYd.toFixed(2);
document.getElementById('placementManHoursResult').textContent = (placementManHoursRaw / efficiencyFactor).toFixed(2);
document.getElementById('finishingManHoursResult').textContent = (finishingManHoursRaw / efficiencyFactor).toFixed(2);
document.getElementById('totalManHoursResult').textContent = totalAdjustedManHours.toFixed(2);
// Update table
document.getElementById('tablePlacementHours').textContent = (placementManHoursRaw / efficiencyFactor).toFixed(2) + ' hours';
document.getElementById('tablePlacementCost').textContent = '$' + placementLaborCost.toFixed(2);
document.getElementById('tableFinishingHours').textContent = (finishingManHoursRaw / efficiencyFactor).toFixed(2) + ' hours';
document.getElementById('tableFinishingCost').textContent = '$' + finishingLaborCost.toFixed(2);
document.getElementById('tableTotalHours').textContent = totalAdjustedManHours.toFixed(2) + ' hours';
document.getElementById('tableTotalCost').textContent = '$' + totalLaborCost.toFixed(2);
// Update chart
drawPureCanvasChart(placementLaborCost, finishingLaborCost);
}
function resetCalculator() {
document.getElementById('projectArea').value = '500';
document.getElementById('concreteThickness').value = '4';
document.getElementById('laborRate').value = '35';
document.getElementById('crewSize').value = '3';
document.getElementById('placementRate').value = '1.5';
document.getElementById('finishingRate').value = '2.0';
document.getElementById('efficiencyFactor').value = '90';
// Clear error messages and reset border colors
var inputs = document.querySelectorAll('.input-group input');
for (var i = 0; i < inputs.length; i++) {
inputs[i].style.borderColor = '#ced4da';
var errorElement = document.getElementById(inputs[i].id + 'Error');
if (errorElement) {
errorElement.textContent = '';
}
}
calculateConcreteLaborCost(); // Recalculate with default values
}
function copyResults() {
var projectArea = document.getElementById('projectArea').value;
var concreteThickness = document.getElementById('concreteThickness').value;
var laborRate = document.getElementById('laborRate').value;
var crewSize = document.getElementById('crewSize').value;
var placementRate = document.getElementById('placementRate').value;
var finishingRate = document.getElementById('finishingRate').value;
var efficiencyFactor = document.getElementById('efficiencyFactor').value;
var totalLaborCost = document.getElementById('totalLaborCostResult').textContent;
var totalVolume = document.getElementById('totalVolumeResult').textContent;
var placementManHours = document.getElementById('placementManHoursResult').textContent;
var finishingManHours = document.getElementById('finishingManHoursResult').textContent;
var totalManHours = document.getElementById('totalManHoursResult').textContent;
var resultsText = "Concrete Labor Cost Calculation Results:\n\n" +
"--- Inputs ---\n" +
"Project Area: " + projectArea + " sq ft\n" +
"Concrete Thickness: " + concreteThickness + " inches\n" +
"Average Labor Rate: $" + laborRate + "/hour\n" +
"Crew Size: " + crewSize + " workers\n" +
"Placement Man-Hours per Cubic Yard: " + placementRate + "\n" +
"Finishing Man-Hours per 100 Sq Ft: " + finishingRate + "\n" +
"Efficiency Factor: " + efficiencyFactor + "%\n\n" +
"--- Outputs ---\n" +
"Total Labor Cost: " + totalLaborCost + "\n" +
"Total Concrete Volume: " + totalVolume + " cubic yards\n" +
"Estimated Placement Man-Hours: " + placementManHours + " hours\n" +
"Estimated Finishing Man-Hours: " + finishingManHours + " hours\n" +
"Total Estimated Man-Hours: " + totalManHours + " hours\n\n" +
"--- Detailed Breakdown ---\n" +
"Concrete Placement Labor Cost: " + document.getElementById('tablePlacementCost').textContent + "\n" +
"Finishing & Curing Labor Cost: " + document.getElementById('tableFinishingCost').textContent + "\n";
navigator.clipboard.writeText(resultsText).then(function() {
alert('Results copied to clipboard!');
}).catch(function(err) {
console.error('Could not copy text: ', err);
alert('Failed to copy results. Please try manually.');
});
}
// Initial calculation on page load
document.addEventListener('DOMContentLoaded', function() {
calculateConcreteLaborCost();
});