Most roofing contractors are pricing with a 40% markup habit that still clears less than 7.2% after slippage and overhead. Last month I sat with a Dallas shop owner, Jaxon, who could not reconcile strong sales with a thin bank balance. On paper, a 38-square asphalt job looked like $4,800 in profit. After we added two extra bundles of waste, an unbilled flashing kit, and three hours of "touch-up" labor nobody had logged, he was closer to $1,400. That gap is the line between barely surviving and actually scaling.
Even when you think you are "close enough," a persistent 11.4% gap between estimated margin and deposited cash shows up on the P&L long before you notice it in the field. Estimating is a forecast; job costing is the scoreboard. If you are not reconciling the two on every invoice, you are not running a tight operation—you are donating margin.
What You'll Learn
Why markup math lies to you—and how true margin targets change the price you must quote.
How labor burden (taxes, insurance, trucks, and slow trainees) silently inflates every hour.
A simple weekly audit rhythm to catch waste, misc fees, and unbilled change orders early.
Why accurate job costing lowers CAC pressure and makes paid leads mathematically safe.
Field reality routinely diverges from the spreadsheet until someone forces a reconciliation.
Estimating predicts; job costing decides
A $15,000 roof quote feels definitive until waste, weather, and crew variance chew through the cushion. Across markets, the contractors with the lowest Customer Acquisition Cost are usually the same ones who already know their loaded labor and real material burn. They can answer one question without drama: after the last nail, what is left?
That clarity is what lets you spend on growth without panic. When you know the kept dollars per job, you know how much you can pay for a qualified lead and still protect payroll.
The markup vs. margin mirage
Here is the classic trap: a $10,000 direct cost and a goal of "30% profit." Many teams multiply by 1.30, land at $13,000, and call it a 30% margin. It is not. That is roughly a 23% margin on revenue. A true 30% margin requires dividing cost by 0.70—about $14,285 on the same job.
The thousand-plus dollars between those prices is not theoretical. It is cash that should cover marketing reserves, equipment, or the slow season. I see owners stress about "expensive" leads while quietly donating similar money every week on bad math.
If you mark up like this, you are funding someone else's growth
Multiplying cost by 1.30 when you want a 30% margin understates price every time. Before you blame lead quality, confirm you are not underwriting the gap with a calculator shortcut.
According to the BLS Occupational Outlook Handbook summary for roofers, median pay sits near $50,970 annually—payroll that tight leaves little room for pricing errors. Under-recover burden or margin, and you are not undercutting competitors—you are undercutting your own household runway.
The invisible weight of labor burden
Labor is never just the check you hand the crew. On a five-person audit for Jaxon, the owner assumed $25/hour all-in. Workers' comp, FUTA/SUTA, general liability, trucks, and tools pushed the loaded rate to $38.42. Every estimate built on the lower number was fiction.
Training shows up the same way. The BLS guidance on becoming a roofer highlights substantial on-the-job apprenticeship time for new hires. A green installer who needs 20% longer to dry in a roof is a real cost—usually invisible because nobody logs the extra hours against the task.
The 15% labor buffer
"Add about 15% non-productive time to labor estimates: the morning huddle, the vent-cap supply run, the cleanup that always runs long. If it is not in the bid, your margin eats it."
Where margin leaks: the small-line avalanche
Profit rarely dies in one dramatic failure. It disappears in $50 and $100 increments—the dumpster that sat two extra days, the magnetic sweeper that failed and led to a trailer flat, the quick gutter tweak that never made it into the contract.
- Extended equipment rentals nobody re-billed.
- Field favors billed as "goodwill" instead of change orders.
- Receipts that never left someone's truck cup holder.
If there is no same-day capture in the field, accounting will never see it. I push teams toward our mobile management workflow so foremen can photo receipts and log extra hours when the work happens. Delayed entries do not count; they evaporate.
Spreadsheet assumptions vs. audited job costs
| Cost driver | Estimated costing | Audited field reality |
|---|---|---|
| Material waste | 5% | 12% |
| Labor hours | 40 hrs | 48.5 hrs |
| Permit / misc fees | $250 | $415 |
| Net profit (of revenue) | 22% | 9.4% |
Material waste
Labor hours
Permit / misc fees
Net profit (of revenue)
One-page comparisons like this should be standard after every close—not a quarterly curiosity.
Action Plan
The Friday audit: reclaim margin in under an hour
Close the loop between purchase orders, invoices, and crew reports so the next bid inherits honest numbers.
Pull every job that signed within the week. Match the estimator takeoff to supplier invoices—if you bought extra squares, document why.
Scan time logs against the production plan. Flag unlogged touch-up or punch hours before payroll locks.
Reconcile change orders: anything done in the field must either be billed or explicitly written off with owner approval.
Publish one takeaway per job (waste driver, crew variance, fee spike) and adjust templates before the next bid goes out.
Want to skip the manual work and get exclusive, verified leads instead?
Get $150 in Free CreditsTight costing pairs with clean acquisition math
When you buy verified roofing leads with a defined upfront cost, you can line up CAC against a real break-even—not a fantasy margin. Shops with fuzzy costing bid high to compensate for unknowns and still lose to operators who know their floor to the dollar.
Garbage leads create a second tax: reps burning hours dialing bad numbers instead of booking real homeowners. That chase time belongs in overhead whether or not you want to admit it.
If you want help mapping exclusive pipeline to your market, reach out to our team. Regardless of source, fix the numbers first—otherwise every growth lever just magnifies the leak.
