Your 45% Job Could Really Be a 24% Job. Here's Where the Margin Goes.
Illustrative job-costing walk-through
The margin on your bid sheet is not the margin you earn. The gap is labor burden you didn't fully load, callbacks nobody charged to the job, material that drifted after you quoted, and receivables you're financing for free.
Based on operator lessons from research across 2,200+ contractors and $13.25B in job revenue; the waterfall is an illustration, not a measured population result
The short answer
In a fictional illustration, a contractor service job quoted at a 45% gross margin lands between about 24% and 29% once you load the real costs that never make it onto the job: fully burdened labor beyond the billed hour (payroll tax, workers comp, benefits, plus whatever share of the paid day is non-billable drive and admin time, which you should measure from your own payroll and job records), callback and warranty labor, material price drift between bid and buy, and the financing cost of slow collections. The 24-to-29% range is a directional illustration built on illustrative planning assumptions, not a measured survey. Wage, benefit, price and interest references below link to named public sources. Burden multipliers, callback rates, billable share and the size of each leak are assumptions you replace with your own. The fix is to re-cost a job with fully burdened labor and reconcile the costs that never land on it.
Key takeaways
- Fully burdened labor knocks off the most in this illustration. The example assumes burden of 35 to 60% on top of base wage (an illustrative planning assumption, not a measured median). A RunClockwork vendor estimate, whose population is not stated here, puts billable time around 61% of paid time. That is not a Level benchmark. Compute your own ratio as billable hours divided by payroll paid hours for the same period. If it is well below 100%, the true cost per billable hour is far above the wage.
- Callbacks and warranty labor (use your own measured return-visit rate) get booked as new dispatches, so the original job keeps its clean margin on paper.
- Material drifts up between the fixed-price bid and the actual buy; construction input prices have moved several points in six months (BLS PPI).
- The AR carry on a collection cycle of, say, 35 to 55 days (an illustrative assumption; use your own days to collect) is a financing cost (the article used about 6.75% bank prime plus a small-business spread; check the current rate) that never lands on the job P&L and sits below gross margin on a normal income statement.
Commercial and residential service jobs get bid on a margin that feels real. The estimate says 45% gross. You win the work, you do the work, and at year-end the company margin is nowhere near 45%. The money did not vanish. It leaked out through four costs that almost never get allocated back to the specific job that incurred them.
Here is the waterfall, and how to rebuild it from your own numbers.
The 45% that becomes 24%
Start with a fictional job bid at a 45% gross margin, say $10,000 of revenue and $4,500 of planned gross profit. Watch what happens as the real costs land. The point range in each leak heading below is an illustrative planning assumption, not a measured median from any population.
Leak 1: labor that was never fully burdened (about 9 to 11 points)
Most bids price the billable on-site hour at something close to the tech's wage plus a rough markup. Two things get missed. First, the burden: payroll taxes, workers comp, and benefits add materially to base wage. BLS Employer Costs for Employee Compensation puts total benefits near 30% of compensation, and construction workers-comp class rates push the all-in load higher than that (BLS ECEC). Second, the non-billable day: a meaningful share of a paid day never reaches an invoice. The Level Index measures the invoiced end of that directly: across 963 companies with at least 100 logged hours, the median contractor invoices 97.1% of the hours logged against jobs, and the bottom decile only 66.9%. That billing capture figure divides hours invoiced by hours logged on jobs, not by total paid hours, so it is not a billable share or utilization rate. Hours that never make it onto a job at all sit outside it. When you divide the fully burdened daily cost across only the billable hours, the true cost per billable hour is well above the wage you bid against.
For reference, the BLS median wage is about $29 per hour for HVAC mechanics (SOC 49-9021), $31 for plumbers (47-2152), and $30 for electricians (47-2111) (BLS OEWS). Multiply by an illustrative 1.35 to 1.60 for burden (payroll taxes, workers comp, and benefits; your payroll register, workers comp policy and benefit invoices give your real multiplier), then load only the billable hours, and the real number climbs fast. Only the gap between this loaded cost and the labor cost already in the bid reduces margin. If the bid already used a loaded rate, do not subtract the burden a second time.
Leak 2: callbacks and warranty labor (about 4 to 6 points)
Return trips get booked as new dispatches or absorbed silently, so the original job keeps its clean margin on paper while a second crew visit eats the profit. We have no defensible public figure for callback rates, and the vendor numbers circulating for it are not sourced well enough to publish. Measure your own: count return visits against first-time completions for one month. If you are not charging that return labor back to the original job, that job's real margin is lower than the report shows.
Leak 3: material price drift between bid and buy (about 2 to 3 points)
Fixed-price bids lock the sell price, but the material cost floats between the estimate and the purchase. Construction input prices have moved several points over six-month windows in recent years (BLS Producer Price Index, inputs to construction). On a job quoted weeks before the material is bought, that drift comes straight out of margin.
Leak 4: the financing cost of slow receivables (about 1 point)
A job you collect on in 35 to 55 days (an illustrative range) is a job you financed for the customer. At a bank prime rate around 6.75% when this was written (Federal Reserve H.15; check the current figure) plus a small-business spread, the carry on that receivable is a real cost that never shows up on the job P&L. Fictional arithmetic: a $10,000 job collected in 45 days at a 10% all-in cost of capital costs 45 / 365 x 0.10 x $10,000 = about $123, or about 1.2 points of revenue. It is small per job and large across a year of open receivables.
Add the four illustrative leaks and the fictional 45% bid margin lands between about 24% (top of every range: 11 + 6 + 3 + 1 = 21 points) and about 29% (bottom of every range: 9 + 4 + 2 + 1 = 16 points). On the $10,000 job, that is $2,400 to $2,900 of profit instead of $4,500. The AR carry is a financing cost below gross margin, so the result is an economic job margin, not the gross margin on a standard P&L, and it is profit, not cash in the bank.
Free benchmark review
See how your margins benchmark.
Start with a free conversation about your priorities. With agreed access to the relevant records, we compare your numbers with applicable benchmarks and identify what to review first.
How to rebuild your true margin from your own books
You do not need new software to check this. You need one job and four adjustments.
- Start from the quoted gross margin on a representative recent job (say 45%).
- Re-cost the labor. Take the field wage, multiply by 1.35 to 1.60 for burden (payroll taxes, workers comp, and benefits), then divide the day's cost across only the billable hours (compute this from your own paid, job-logged and invoiced-hour records, with matching periods), not the clock hours. Recompute the job at that rate, and subtract only the difference between this loaded labor cost and the labor cost already in the bid. If the bid already used a loaded rate, that difference may be near zero.
- Subtract callbacks. Multiply your own measured callback rate by the average return-trip labor cost, and spread it across your jobs, or charge each return visit back to the original job.
- Subtract material drift. Compare the purchase-order or vendor-bill cost with the estimate line for the same materials on the same job. The difference is that job's drift.
- Subtract the AR carry. Take (average days to collect divided by 365) times your annual cost of capital (roughly 9 to 11% all-in is an illustrative assumption; use your actual borrowing cost) times the job's revenue.
The gap between the bid margin and the rebuilt margin is where the business quietly loses money on jobs that looked fine. This is the same phantom-margin problem that appears when direct costs are not allocated to each job, and it traces back to systems that never reconcile, which is why your field platform and accounting never agree.
Why this is directional, and why that is fine
The 45-to-24-to-29% walk is an illustration of the mechanism, not a measured population statistic. Wage and benefit references have named external sources; callback rate and billable share need your own measured inputs, and the illustrative point impacts are not published population measurements; the specific point-impact of each leak depends on your trade, mix, and discipline. The point is not the exact number. The point is that the gap is real, it is large, and it is invisible until you rebuild the job with fully loaded costs.
Related reading:
Get the next one
Want next week's benchmark in your inbox?
One email a week. Real numbers from 2,200+ contractors in the research universe. No fluff. Unsubscribe anytime.
Related reads
Job Costing
Contractor Finance KPIs Ranked by Profit Impact (2026)
The 8 financial KPIs that move a contractor's bottom line, in an editorial priority order by profit leverage, with Level Index benchmarks where a measured sample exists and measurement steps where one does not.
Job Costing
Landscaping Route Margin: Rebuild Labor Cost Correctly
Rebuild landscaping route margin using loaded labor, drive time, equipment per crew-hour, and seasonal capacity. Includes Level job-data context.
Job Costing
5 Questions to Ask Before Hiring a Bookkeeper for Your Contracting Business
A generalist bookkeeper who doesn't grasp job costing, WIP, and retainage quietly costs you margin. The 5 questions that reveal a trades specialist.

About the author
Sam Yang
Founder & CEO
Founder of Level, the always-on finance team for contractors, service businesses, and ecommerce brands. Ex-CFO across trades, SaaS, and service businesses. 4 years as Director of Growth Product at BuildOps, building financial tooling used by 1,000+ commercial contractors. Four years in PE and investment banking rolling up and acquiring service businesses, $2.5B in total transactions including M&A and IPOs. Stanford MBA, Brown undergrad. The Level founding team's analysis of 2,200+ contractors ($13.25B in job revenue) across operating, private-equity, and CFO roles anchors the Level Index benchmark research.
LinkedIn