Why your labor costs keep coming in higher than the estimate
You estimated $21,000 for the framing crew. The books showed $29,004. The crew was not slow. The estimate missed four cost categories above the hourly wage.

A general contractor we work with found the same result on every framing contract he estimated: the books closed with a $6,000 to $9,000 labor overrun, and the crew had not gone over on hours.
The materials were on track. The subcontractors came in fine. The schedule held. But the labor line on the job cost report kept running over budget. He had tried pushing the crew to work faster and, once, replacing a foreman. Neither changed the outcome. The problem was not the crew. The estimate was using the hourly wage. The books were recording the full cost of employment.
What labor burden is
Labor burden is the total cost to employ a worker for one hour, above the base wage. For a framing crew member earning $35 per hour, the wage is one entry on the payroll register. The company’s actual hourly cost includes four additional categories, each billed on a separate invoice from a separate vendor, and each one absent from most job estimates.
Employer payroll taxes. The employer pays a matching share of Social Security and Medicare contributions under the Federal Insurance Contributions Act (FICA) at 7.65 percent of gross wages. State unemployment insurance adds another 2 to 4 percent depending on the company’s claims history. On a $35 base wage, those combined taxes add $3.84 per hour to the cost of that worker, paid by the company on every payroll regardless of which job the worker was on that week.
Workers’ compensation insurance. Workers’ comp premiums are calculated as a rate per $100 of payroll. The rate varies by trade classification. General carpentry and framing typically runs 12 to 18 percent. At 15 percent, a $35 wage generates $5.25 per hour in premium. The bill arrives at the annual audit, which makes it easy to treat as a general overhead cost rather than a job cost.
General liability insurance. A general contractor’s GL policy is partly driven by total payroll. Allocating 5 percent of wages to GL coverage adds $1.75 per hour per worker. When the annual premium rises at renewal, the true per-hour cost of every employee rises with it, whether or not the bid template has been updated.
Health insurance and paid time off. A health plan at $400 per month adds $2.50 per productive hour spread across a standard 160-hour work month. Paid vacation and holidays reduce the number of hours a worker spends on a job, which raises the effective cost per hour actually worked.
What the books show on a 600-hour framing job
Here is the labor cost on one framing package: the estimate against what appeared in QuickBooks when the job closed.
| Cost line | Per hour | 600-hour job |
|---|---|---|
| Base wage | $35.00 | $21,000 |
| Employer payroll taxes | $3.84 | $2,304 |
| Workers’ comp (15%) | $5.25 | $3,150 |
| General liability (5%) | $1.75 | $1,050 |
| Health insurance | $2.50 | $1,500 |
| True labor cost | $48.34 | $29,004 |
The estimate showed $21,000. The books showed $29,004. The margin on the job fell from the planned 20 percent to under 2 percent. The crew hit the budgeted hours. The estimate formula was wrong.
Why the gap matters on larger contracts
At $8,004 of untracked labor cost on a 600-hour job, the effect is visible but containable. On larger work, the same calculation produces a much larger shortfall.
A project with 2,000 crew hours and the same $13.34 per-hour gap between wage and burden produces $26,680 of labor cost the estimate never accounted for. A contractor who bids $600,000 of work per year across multiple labor-intensive jobs can give back $40,000 to $60,000 of planned margin before a single tool is raised.
Job cost reports also lose credibility. When the crew hits the budgeted hours and the job still shows a labor overrun, the contractor stops trusting the numbers. The bookkeeping looks broken when the problem is in the estimate formula.
A third consequence shows up at bid time. When the bid history shows labor running over estimate on every job, the owner adjusts by adding contingency rather than fixing the calculation. That contingency makes bids higher and less competitive. The underlying problem does not go away.
How to calculate and apply a burden rate
The fix has two parts: a calculated burden rate and a process for applying it consistently.
The burden rate is a single percentage applied above the base wage in every estimate. It combines payroll taxes, workers’ comp, general liability, and benefits into one multiplier. For most residential and light commercial contractors, the rate lands between 28 and 42 percent above the base wage depending on trade classification and benefits offered. On a $35 framer at a 38 percent burden rate, the estimating rate becomes $48.30.
In QuickBooks, every dollar of payroll tax, workers’ comp premium, and insurance allocated to payroll should be recorded under the same job or class as the wages it belongs to. If wages for the framing crew go to “Job 214 - Labor,” the taxes and insurance for those payrolls go there as well. When the job closes, the labor cost in the books will match what the estimate was meant to include.
Best practices for labor cost tracking
A few practices that reduce the gap between estimated and actual:
- Calculate a separate burden rate for each trade classification. A framer, a project manager, and a general laborer carry different workers’ comp rates. A single blended rate will overstate costs for some roles and understate them for others.
- Assign payroll taxes and workers’ comp entries in QuickBooks to the same job or class as the wages they came from. This step is the one most often skipped.
- Build an overtime allowance into labor-intensive jobs based on historical patterns. A project that has run 10 percent overtime on similar scope should include that cost in the estimate from the start.
- Update the burden rate at every insurance renewal. A workers’ comp audit that revises the rate for the coming year affects every estimate until the number is corrected.
- Run a job profitability report on every closed job and compare estimated to actual on labor specifically. A consistent overrun of 20 percent or more points to a burden rate that is set too low.
Three questions worth asking
If you are not sure whether your estimates reflect the true cost of labor:
- What multiplier do you apply above base wages when estimating labor, and when was that number last compared against actual payroll tax and insurance costs?
- In QuickBooks, do the payroll tax and workers’ comp entries for each payroll period get assigned to the same job or class as the underlying wages?
- On the last three jobs that closed, what was the dollar difference between estimated and actual labor cost, and was the crew over or under on hours?
If those answers are unclear, the estimates are likely using wages rather than the full cost of employment. Send us one quarter of payroll records and a matching workers’ comp statement. We will calculate the current burden rate and show you how it compares to what has been going into your bids.
- HOURLY WAGE$35.00 per hour for the lead framer
- CREW HOURS600 hours budgeted for the framing package
- LABOR BUDGET$21,000 in the job estimate
- ASSUMED MARGIN20 percent margin on the contract, carried forward
- EMPLOYER PAYROLL TAXFICA and state unemployment: $3.84 per hour
- WORKERS' COMP INSURANCE15 percent rate for framing: $5.25 per hour
- GENERAL LIABILITYAllocated to payroll at 5 percent: $1.75 per hour
- HEALTH INSURANCE$400 per month plan adds $2.50 per hour
Want a second set of eyes on your books?
30 minutes on Zoom. We'll look at your books and tell you what's working and what isn't.
Book a call