TheĀ Evermore Blog

Offers simple, practical tips to help business owners manage finances and grow. From accounting advice to coaching strategies, we provide expert insights to keep you informed and empowered.

What Should a Roofer's Gross Margin Be?

roofer Aug 10, 2026
roofer-gross-margin

By Katie Robinette, CFO and Cofounder, Evermore Accounting & Coaching

I get asked this more than almost any other question, and it usually comes in the same form. A roofer sits down across from me, pulls up his year-to-date numbers, and says some version of "I did eight hundred thousand in revenue, and I have no idea where it went."

He knows he was busy. He knows the crew was out. What he cannot tell me is which roofs made money.

So, let's start with the number that answers that, and then let's talk about what it should actually be.

What gross margin is, and what it is not

Gross margin is what is left after you pay for the job itself. Materials, the labor that installed it, the subs if you used them, dump fees, permits, equipment rental, and any freight or delivery on the shingles.

It is not what is left after your truck payment, your insurance, your office rent, or your own salary. Those are overhead. They come out later, from what your gross margin produced.

The formula is simple. Revenue minus cost of goods sold, divided by revenue.

If a tear off and replace brought in $18,000 and the materials, crew labor, and dump fees came to $11,700, your gross profit is $6,300 and your gross margin is 35 percent.

The number I want to see

For residential roofing, a healthy gross margin generally lands somewhere between 30 and 40 percent. Retail and storm work can push higher. Insurance restoration work and new construction subcontracting tend to run lower, sometimes into the low twenties, because you are working from someone else's scope and someone else's price.

Commercial roofing runs its own math and often sits lower on percentage while producing more gross profit dollars per job, which is a tradeoff worth taking if your overhead can absorb it.

Below 25 percent on residential replacement work, you are usually in one of three situations. You are underpriced, you are eating change orders you never billed for, or your labor is costing more than you think because you are only counting the hourly wage and not the payroll taxes, workers comp, and the drive time.

The mistake I see most often

Markup is not margin, and this one cost roofers' real money.

If your material and labor on a job costs $12,000 and you add 30 percent, you charge $15,600. That feels like a 30 percent job. It is not. Your gross profit is $3,600 on $15,600 of revenue, which is a 23 percent margin.

To actually hit a 30 percent margin on $12,000, you have to charge about $17,143. That is a 43 percent markup.

The gap between those two numbers, roughly $1,543 on a single job, is what disappears quietly all year. Run twelve of those and you have handed away $18,000 without ever seeing it in a report.

Here is the conversion for the margins that matter most in roofing:

  • 25 percent margin requires a 33 percent markup
  • 30 percent margin requires a 43 percent markup
  • 35 percent margin requires a 54 percent markup
  • 40 percent margin requires a 67 percent markup

Print that. Tape it inside the truck.

Why the average tells you almost nothing

A roofer came to us with a 31 percent blended gross margin, which looks perfectly respectable on paper. When we broke it out by job type, his retail replacements were running 38 percent, and his insurance work was running 19 percent.

He was busiest at the insurance work. He was making his money on retail. He had been building his whole schedule around the wrong half of his business without knowing it.

This is why job costing matters more in roofing than almost any trade I work with. Your margin swings hard depending on the pitch, the layers coming off, the crew you sent, and whether the supplier price moved between the bid and the delivery. A blended average smooths all of that into a number that cannot tell you anything useful.

You want a margin on every roof. Not a company average.

What to do this week

Pull your last ten completed jobs. For each one, write down what you invoiced and what it cost you in materials, crew labor including the payroll burden, subs, and dump fees.

Calculate the margin for each. Then sort them from best to worst.

Almost every roofer I do this with finds the same thing. There is a category of work at the bottom of that list that they had been treating as normal, and it is quietly funding itself with the profit from the jobs at the top.

You do not need new software to find that. You need one afternoon and an honest look at ten jobs.

If your books are not set up to give you that breakdown easily, that is a fixable problem, and it is the first thing we set up for the roofing companies we work with. Knowing your margin before you bid the next one is the entire point.

TheĀ Evermore Dispatch

WantĀ to Join Our Newsletter?

Industry news, important dates to look out for, and of course some funny jokes.

You're safe with us. I'll never spam you or sell your contact info.