Back to All Blogs
Roofing Tips

Your Standard Markup Is Killing Your Roofing Profit Floor

Mar 28, 2026 6 min read
Your Standard Markup Is Killing Your Roofing Profit Floor

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.

14.7%
Average "profit slippage" on unaudited residential roofing projects

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

Material waste
Estimated
5%
Audited
12%
Labor hours
Estimated
40 hrs
Audited
48.5 hrs
Permit / misc fees
Estimated
$250
Audited
$415
Net profit (of revenue)
Estimated
22%
Audited
9.4%

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.

1

Pull every job that signed within the week. Match the estimator takeoff to supplier invoices—if you bought extra squares, document why.

2

Scan time logs against the production plan. Flag unlogged touch-up or punch hours before payroll locks.

3

Reconcile change orders: anything done in the field must either be billed or explicitly written off with owner approval.

4

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 Credits

Tight 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.

Common Questions

Most healthy shops aim for a 10% to 15% net profit after all expenses, including the owner's salary. If you're below 8%, one bad workers' comp claim or a rainy month could put you in the red.
Share