All guides

Pricing 7 min read

How to price a roof replacement: a simple formula for small roofing companies

Squares, waste, materials, labor, tear-off, disposal, overhead and profit, and the margin-vs-markup mistake that quietly eats your profit.

Most small roofing companies don't lose money because they're bad roofers. They lose it because every bid is priced a little differently, from memory, late at night. A simple, written formula fixes that: the same inputs every time, so every roof covers your costs and leaves the profit you meant to make.

Here's a straightforward way to build one. Your numbers will differ by market, but the structure works anywhere.

1. Start with measured squares and a waste factor

A roofing square is 100 square feet of roof surface. Start from the measured area, whether from your own take-off or a measurement report, and convert it to squares.

Then add waste for cuts, starter and ridge. Simple gable roofs need less; roofs cut up with hips, valleys and dormers need more. Many roofers use around 10% on simple roofs and 15% or more on complex ones. Whatever you use, use it every time, and check it against what you actually order on a few jobs.

2. Price the materials

List everything that goes on the roof, not just the shingles:

Keep a current price per square for each shingle line you install, and update it when your supplier's prices change. A bid priced on last year's shingle cost can wipe out the margin on its own.

3. Price the labor, with pitch and height

Labor is usually priced per square, then adjusted for what makes a roof slower and riskier:

If you pay crews by the square, your labor cost is easy to see. If you pay by the hour or the day, track how many squares a crew actually installs per day so you can turn that into a per-square number.

4. Don't forget tear-off, disposal and permits

These are the costs that get forgotten on a rushed bid:

Tip: Put the decking price per sheet right on the bid. When you find rotted decking after tear-off, the homeowner has already agreed to the price, and there's no awkward phone call.

5. Add overhead and profit the right way

Overhead is everything that isn't on the roof: your truck, insurance, phone, software, marketing, office time. Work out roughly what that costs you per job, or as a percentage of sales, and include it.

Then add profit, and watch the most common pricing mistake in the trades: confusing markup with margin.

If you've been adding 30% and thinking you make 30%, you've been making closer to 23%. Over a year of jobs, that difference is real money.

6. Set a minimum job charge

Small repairs still mean loading the truck, driving out and setting up. A minimum job charge makes sure a quick leak repair isn't a loss. Many roofers set it at whatever a half day of a crew plus travel costs them.

7. Write it down and use it every time

The formula only works if it's the same on every bid. Put your rates in one place: price per square for each service and shingle, waste percentage, pitch and height surcharges, tear-off per layer, disposal, permit and minimum job. Then every estimate is consistent, and you can raise a rate once instead of remembering it on every bid.

That's exactly how Ridgewise prices bids: you enter your rates once, then squares, pitch, layers and stories for each roof, and the total is worked out from your numbers. AI writes the scope of work, but it never sets a price.