September 14, 2026
How to Price a Roofing Job (Margins That Keep You Profitable)
Author
9 minute read
Share
Learning how to price a roofing job is a different skill from learning how to estimate one. Estimating tells you what the job will take, the squares, the bundles, the crew hours. Pricing is the decision that comes after: what you actually charge, and whether the number you land on leaves you a profit worth getting out of bed for. Two roofers can estimate the same roof to the exact same quantities and still price it worlds apart, and the one who prices with intent is the one who is still in business in five years.
This guide is about that second skill. It covers why pricing is not estimating, how to build a price up from your true cost, how to cover overhead and set a real margin, why markup and margin are not the same number, how to price to your market instead of just your cost, and how to use good, better, best options to win more of the jobs you actually want. No dollar figures, because your numbers are yours. Just the method that turns a bid into a margin.
Pricing is not estimating
Estimating is measuring the job. Pricing is deciding what it is worth to you to do it. They are two separate steps, and treating them as one is where a lot of thin years come from, because a roofer who only estimates ends up charging cost plus a gut-feel cushion and calling it a price.
An estimate answers "what will this take." A price answers "what will I charge, and does it protect my margin." You need both, in that order. This post assumes your takeoff is already solid, and if it is not, our guide on how to estimate a roofing job walks the measurement and material math step by step. Everything below starts where that leaves off, with an accurate quantity in hand and a pricing decision to make.
Start from your true cost, not a number you hope works
The base of every honest price is your true cost to do the job, and true cost is more than materials. It is materials, labor loaded with the real cost of employing a crew, equipment and fuel, dump fees, permits, and the small line items that quietly add up on every roof. Price up from that, never down from a competitor's number you half remember.
True cost has to be accurate at the quantity level, which is why pricing starts from the same measured roof your estimate used. A price built on a roof that was eyeballed instead of measured is wrong before you apply a single percentage, and it is wrong in the direction that costs you money. A price that starts from an accurate measurement of the roof at least begins from reality. From there, the discipline is knowing what each job actually costs you when it is done, not what you assumed going in, and our guide on how to know your true cost on every job is how you close that loop.
Cover your overhead, or you are quietly working for free
Here is the number most roofers underprice: overhead. Your truck payments, your office, your software, your phone, the hours you spend quoting jobs you do not win. None of it shows up on a single job's material list, but all of it has to be paid out of the prices you charge, spread across every job you run.
The fix is to know your overhead as a percentage of the work you do, then build that percentage into every price before you add profit on top. A roofer who prices materials plus labor plus a little extra, with no deliberate overhead load, is not actually making that little extra. They are spending it on rent and fuel and never seeing it. Overhead is not optional and it does not go away in a slow month, so it belongs in the price of every job, good season or bad.
What this means for your business: Sit down once and work out your overhead as a percentage of your yearly volume. Then treat that percentage as a floor that goes into every bid before profit. If you have never done this, the number will surprise you, and that surprise is exactly the margin you have been giving away one job at a time.
Markup and margin are not the same number
This is the single most expensive confusion in roofing pricing, and it is worth slowing down for. Markup is how much you add on top of your cost. Margin is how much of your final price is profit. They sound interchangeable and they are not, and the gap between them is bigger than most roofers expect.
Say you want to make good money on a job so you add a markup to your cost. The margin you actually keep is always smaller than that markup, because margin is measured against the bigger number, the price, while markup is measured against the smaller number, the cost. Mark a job up by 30% and your real margin is closer to 23%. Mark it up by 50% and your margin is about 33%. If you have been setting markups thinking they were margins, you have been earning less on every job than you believed, and the shortfall has been hiding in plain sight on every invoice.
What this means for your business: Decide your target in terms of margin, the profit left in the final price, then back into the markup that gets you there. Pricing off markup and hoping it equals your margin is how profitable-looking roofing companies end a year wondering where the money went.
Price to your market, not just your cost
Cost sets your floor. The market sets your ceiling. A price built only from the bottom up ignores half the picture, because what a roof is worth to a homeowner in your area is shaped by your reputation, your warranty, your speed, and what other roofers nearby are charging, not by your cost sheet alone.
This does not mean chase the lowest bidder down, and it does not mean guess high. It means know where you sit. If your work, your crews, and your follow-through are better than the cheap outfit across town, your price should say so, and you should be ready to explain why in a way a homeowner understands. Being the highest number a customer sees is fine when you are also the roofer they trust most. Being underpriced does not win you loyalty, it just trains customers to expect a number you cannot survive on. Your job is to price at the value you deliver, not at the fear of losing a race to the bottom.
Good, better, best: give the customer a choice
One of the most reliable ways to protect margin is to stop handing customers a single take-it-or-leave-it number and start giving them options. A good, better, best structure presents three versions of the job at three price points, and it changes the customer's question from "yes or no" to "which one."
The mechanics are simple. Good is a solid, honest option that meets the need. Better adds an upgrade a lot of homeowners want once they see it, a longer warranty, a premium shingle, better ventilation. Best is the full package for the customer who wants the top of your line. Most people avoid the cheapest and the most expensive and settle in the middle, which means a well-built middle tier quietly lifts your average job value without a hard sell. It also reframes the conversation around what the customer gets instead of only what they pay, and it gives price-sensitive homeowners a way to say yes to you rather than no to your one number. How you present those three tiers, on paper and in the conversation, matters as much as the tiers themselves.
Keep your prices current as your costs move
A price you set last year is not a price, it is a guess that is getting more wrong by the month. Roofing costs do not sit still. Producer prices for asphalt shingles and roofing coating materials have risen substantially over the past decade according to federal producer-price data, and labor and fuel move too. A pricing model you never revisit slowly turns yesterday's healthy margin into today's break-even.
Build a habit of revisiting your numbers on a schedule, not just when a supplier invoice finally shocks you into it. Check your material costs against what you are actually charging, confirm your overhead percentage still reflects reality, and adjust before the gap eats a season. This is far easier when your costs live in one system instead of a spreadsheet you forget exists, so an updated material cost flows into your next bid automatically. Running your pricing this way in RoofPilot means the number you quote next week reflects what the job costs this week, not what it cost the last time you remembered to look.
Before your next bid, run this check
Before you send your next roofing price, run a short pass so nothing that eats margin slips through. Confirm the quantities came from a measured roof, not a guess. Confirm your cost includes loaded labor, overhead, and the small line items, not just shingles. Confirm you set your target as a margin and worked back to the markup, rather than confusing the two. Confirm the price reflects your market position and the value you deliver, not just your floor. And confirm you gave the customer options instead of a single number to reject.
That pass takes a few minutes and it is the difference between a price you hope works and a price you know works. Do it every time and pricing stops being the nervous part of the job and becomes the part where you decide, on purpose, how much money this roof is going to make you.
The Bottom Line
Pricing a roofing job is a decision, not a calculation. Start from your true, fully loaded cost, build in overhead as a real percentage before profit, and set your target as a margin, not a markup, because the two are not the same and the difference is money you have been leaving behind. Then lift your eyes off the cost sheet and price to your market and your value, give customers good, better, best options instead of one number, and revisit your pricing as your costs climb. Do all of that and your bids stop being hopeful guesses and start being the most reliable margin lever you own.
Related reading:


















