TL;DR
Price a roof backward from your profit, not forward from your costs: direct job cost ÷ (1 − overhead % − sales commission % − target net profit %).
Example: a 25-square re-roof with $9,600 in direct costs, 20% overhead, 8% commission, and a 10% net target prices at $15,484, or about $619 a square. Cost plus 30% on the same roof is $12,480 and loses $614.
The formula is only as good as its inputs. Compare estimate vs. actual on every finished job, and update labor, waste, and overhead before the next bid.
Your rep comes back with a signed contract on a 25-square tear-off. It was priced the way the company has always priced roofs: materials plus labor, then 30% on top. The crew wraps in two days, the final check clears, and the job goes in the win column without anyone looking at it again. Nobody subtracts the commission and the overhead that came out of that 30%, so nobody finds out the roof lost money.
That is the trap in most roofing pricing advice. It stops at “add your markup.” But the two costs that decide whether a roof makes money, overhead and sales commission, get paid out of the selling price. They are not stacked on top of your costs. A markup can look healthy on the estimate and be gone before the job earns a dollar of profit.
This guide covers how to price roofing jobs for profit by working backward from your target net profit. You get the formula, a full re-roof example worked line by line, a quick per-square check, and the habit that keeps your prices honest: comparing every finished job against its estimate. If you have not set a profit target yet, start with how much profit a contractor should make, then come back with your number.
The Formula for Pricing Roofing Jobs for Profit
Most roofers price forward. They add up the job, put a percentage on top, and hope what is left covers the office and pays the owner. Pricing for profit runs the other direction. You decide what the job has to leave behind first, then set the price that makes it happen.
The Formula
Price = direct job cost ÷ (1 – overhead % – sales commission % – target net profit %)
Example: $9,600 ÷ (1 – 0.20 – 0.08 – 0.10) = $9,600 ÷ 0.62 = $15,484
You divide because overhead, commission, and profit are all shares of the selling price, not of your costs. Your rep is paid a percentage of the contract amount. Your overhead percentage was figured against revenue. Your profit target is a share of revenue too. All three come out of the final check, so the price has to be big enough that what is left after taking them out still pays for the roof.
If you have read our roofing overhead guide, you have seen this math once already for overhead and profit. The difference here is commission. It comes out of the same check, so all three get set aside together. On $9,600 in direct cost, adding 38% to the cost gets you $13,248. Dividing by 0.62 gets you $15,484. Price the roof at $13,248 and, after commission and overhead, it loses about $60. The same 38%, calculated the wrong way, wipes out the entire profit.
Here is what goes into each piece of the formula:
- Direct job cost: everything this roof needs that you would not spend without it. That means materials with waste, crew labor with payroll taxes and workers’ comp, tear-off, dumpster and dump fees, permits, and equipment rental.
- Overhead percentage: your annual overhead divided by realistic annual revenue, pulled from actual numbers rather than a figure that felt right. If you have never calculated yours, here is how to find your real construction overhead percentage.
- Sales commission percentage: what you pay your rep as a share of the contract price. If your reps are paid on gross profit instead, Step 3 covers how to handle it.
- Target net profit: the share of the price you want to keep after every bill is paid. This is a decision you make before you price, not whatever happens to be left over.
Add the last three together and you get the gross margin the job has to clear. In this example that is 20% overhead plus 8% commission plus 10% net, or 38%. Sell below 38% and you are giving up part of your profit. Sell below 28% and the job is not even covering overhead and commission, so you are paying to install that roof.
Plenty of roofers, and a lot of estimating software, run this in one step: total job cost ÷ (1 – target gross margin). It is the same formula with the three percentages already added together. Below is a real estimate built that way on an 11-square roof. It is priced at a 45% gross margin, and the breakdown underneath shows what that margin has to pay for: 22% for overhead, then the remaining 23% split evenly between the rep’s commission and the company’s profit.

Your percentages will not match these, and they should not. They come from your own books, which is why the steps below start with getting each input right.
Step 1: Build the Real Direct Cost of the Roof
Everything else in how you price a roofing job sits on top of this number, so a mistake here does not stay small. Leave $500 of dump fees off the estimate and the price comes out $806 too low, because the missing cost gets divided by 0.62 along with the rest. Most roofs that lose money were not underpriced at the markup. They were underpriced at the cost line.
Direct job cost is anything you would not spend if you had not sold this roof. Roofers come up short in three places more than anywhere else.
Labor is the biggest miss. What a crew costs you is not their hourly wage. Add payroll taxes, workers’ comp (roofing carries one of the most expensive classifications in construction), and any benefits, and the real hourly cost lands well above the number on the paycheck. Then count paid hours, not roof hours. If a crew is paid for 10 hours and spends 8 of them on the roof, your labor cost per square has to be built on the 10.
Waste is the second. Most estimators add about 10% to the measured squares on a simple gable roof and 15% to 20% on a cut-up roof with hips, valleys, and dormers. Order to the bare measurement and the difference comes out of your margin on the second supply run.
The third is the small stuff that never feels like part of the job:
- The dumpster.
- The extra dump run when tear-off turns up a second layer.
- The permit.
- The rooftop delivery fee.
- The sheets of decking you replaced because the old ones were soft.
Each one is a few hundred dollars. Together they decide whether the margin on the estimate ever shows up in the bank.
Here is how the 25-square re-roof from the formula example builds to $9,600 in direct cost, line by line, along with what tends to get missed in each line.
| Cost Line | What to Include | What Gets Missed | Example (25 squares) |
|---|---|---|---|
| Materials | Shingles, underlayment, ice and water shield, drip edge, flashing, ridge cap, vents, nails | Waste factor, starter strip, accessories added as an afterthought | $4,300 |
| Crew labor, burdened | Tear-off and install wages, payroll taxes, workers’ comp | Labor burden, drive and load time, hours off the roof | $4,200 |
| Disposal | Dumpster rental and dump fees | Extra layers found at tear-off, overweight charges | $600 |
| Permit | Local permit and inspection fees | Re-inspection fees | $250 |
| Delivery and equipment | Rooftop delivery, lift or equipment rental | Booked to overhead instead of the job | $250 |
| Total direct cost | $9,600 |
These figures are for illustration. Material prices, wage rates, and dump fees vary by market, so your lines will look different. What matters is that every line goes on the estimate as its own number. That itemized estimate is your plan, and the job costing you do after the roof is finished is your actual. Plan vs. actual only works on lines you wrote down, which is why the correction loop later in this guide starts here.
Step 2: Plug In Your Real Overhead Percentage
Overhead is the second input in the formula, and it has to be your real number. Use the last 12 months: total overhead divided by total revenue over the same stretch. If you have never worked it out, or the number you use came from another roofer at the supply house, the roofing overhead guide walks through the calculation step by step. The formula expects overhead as a share of revenue, so a figure calculated against job costs will throw the price off.
Use that 12-month number on every bid, in every month. A busy July can make overhead feel half its real size, and roofs priced off that feeling never pay for the winter you know is coming.
The percentage has one blind spot in roofing: small jobs. It recovers overhead well on re-roofs and breaks down on repairs. A $1,500 leak repair at 20% overhead recovers $300. That job still takes an intake call, a trip, a slot on the schedule, an invoice, and often a follow-up visit, which is much of the same office time a full replacement uses. Run enough small jobs at the percentage and they quietly eat overhead your re-roofs were supposed to fund.
Give repairs and small jobs a minimum charge instead of running them through the formula alone. Then check that the minimum holds up when you review job profitability by job type. If repairs keep coming in under target, raise the floor and stop guessing.
Step 3: Price In Sales Commission and the Cost to Win the Job
Commission is the slice most roofing pricing guides leave out, and it is often bigger than the profit. On the example roof, an 8% commission is $1,239 of a $15,484 contract. The company’s 10% net is $1,548. Leave commission out of the formula and it does not disappear. It comes straight out of the profit line on every roof the rep sells.
If you pay a flat percentage of the contract, put it straight into the formula. The same goes for anything else paid as a share of the sale, like a financing fee you absorb or a referral fee owed when the job closes. All of them grow with the price, so they belong in the formula next to overhead, not buried in direct cost.
When Reps Are Paid on Gross Profit
Plenty of roofing companies pay reps a split of the profit instead. A common version is 10/50/50: take 10% off the top for overhead, then split what is left after job costs evenly between the rep and the company. It sounds fair to both sides. The problem is the 10%. If your real overhead is 20%, the split hands the rep half of the money the company needed to cover its own bills.
Run it on the example roof. Start with $15,484. Take out $9,600 in direct cost and $1,548 (the 10% off the top), and $4,336 is left to split. The rep earns $2,168. The company keeps the other $2,168, but it still owes another $1,548 in overhead that the 10% did not cover. That leaves $620, or 4% net, on a roof priced for 10%.
Paying on profit is not the mistake. It ties the rep to margin, which is exactly what you want. The mistake is an off-the-top number that does not match your real overhead. Set it to your actual overhead percentage. Then take the commission you actually paid as a share of revenue and use that rate in the formula. The real estimate in the formula section is built exactly this way: 22% off the top for overhead, then the profit split 50/50.
What It Costs to Win the Roof
Commission is the cost of closing the sale. Marketing is the cost of getting in the door, and most owners never connect it to a single job. If marketing sits in your overhead, it is already in the price, so do not add it twice. What you need to know is whether that spend is producing roofs at a cost the price can carry.
Two numbers answer that. The first is cost per lead, divided by your close rate, which gives you the cost per signed job.
- $200 leads closed at 25% cost $800 per roof sold, about 5% of a $15,484 job.
- $350 leads that close at 15% cost $2,333 per roof sold. That is 15% of the same job, more than the entire profit target.
A channel like the second one pushes your overhead percentage up next year, and the formula will not catch it until you update the input. The second number is revenue per lead, which flips the math around: average job size times close rate. At $15,484 and a 25% close rate, every lead is worth about $3,871 in revenue.
Then account for the lead-to-sale lag. Roofs are rarely sold the week the lead comes in, and they get installed later still. Ad money spent in March can show up as roofs installed in May or June. Judge March’s spend against March’s revenue and every early-season channel looks like a loser. Judge it against the jobs those leads actually became. Tag every job with its lead source when it is sold, and you know your numbers by channel instead of by feel. That is why TradeBooks tracks leads and marketing ROI alongside job profitability: cost per signed job becomes a number you know as you go, not one you rebuild at year end.

Step 4: Set the Price From Your Target Net Profit
With the three percentages in hand, the price takes one division: $9,600 ÷ 0.62 = $15,484. What separates this price from a markup is that you can account for every dollar of it before the rep leaves the driveway.
Here is the same 25-square roof priced two ways: with the formula, and at cost plus 30% like the job at the start of this guide.
| 25-Square Re-Roof | Formula Price | Cost Plus 30% |
|---|---|---|
| Contract price | $15,484 | $12,480 |
| Direct job cost | $9,600 | $9,600 |
| Sales commission (8%) | $1,239 | $998 |
| Overhead (20%) | $3,097 | $2,496 |
| Net profit | $1,548 | -$614 |
| Net margin | 10% | -4.9% |
| Price per square | $619 | $499 |
A 30% markup sounds generous, and measured against cost it is. But commission and overhead together take 28% of the selling price, and a 30% markup only produces about a 23% gross margin. The job was underwater before the crew pulled up. It also never looks like a loss in the job folder, which shows $2,880 between cost and price. That gap looks like money made until overhead and commission get their share.
Know Your Break-Even Price and Your Floor
Two more numbers belong on every estimate, and your reps should know both.
The break-even price is what the roof has to sell for to cover direct cost, commission, and overhead with nothing left over. Take profit out of the formula: $9,600 ÷ (1 – 0.20 – 0.08) = $13,333. The SBA’s break-even guidance for small businesses applies the same logic to a whole company, and this is the job-level version of it. Anything sold under $13,333 costs you money to install.
The floor is the lowest price you will accept, set somewhere between break-even and your target. If you will take a 5% net when you need to keep crews busy, the floor is $9,600 ÷ 0.67 = $14,328. Most advice on how to bid roofing jobs stops at the target price. Set the floor before the sales call, not in the middle of it.
The floor matters because discounts do not come out of the price evenly. They come out of the profit. Knock $1,000 off the $15,484 roof to close it, and the rep’s commission drops $80, but your overhead bills do not get any smaller. The other $920 comes straight out of a $1,548 profit. A 6% discount just gave away 59% of the profit on the job.
Roofing Markup vs. Margin: Know Which Number You Are Using
Markup and margin describe the same dollars measured against different bases. On the example roof, $5,884 sits between the $9,600 cost and the $15,484 price. Divided by the price, that is a 38% gross margin. Divided by the cost, it is a 61% markup. It is the same job and the same money, described by two numbers 23 points apart.
The confusion matters because every target in this guide is a share of the selling price: overhead, commission, and profit. That is margin language. Most estimating habits run on markup, a percentage added to cost. Use one when you mean the other, and you end up with the cost-plus-30% roof.
If your estimating sheet only takes a markup, convert the gross margin you need with markup = margin ÷ (1 – margin):
| Gross Margin You Need | Markup on Cost to Get There |
|---|---|
| 30% | 42.9% |
| 35% | 53.8% |
| 38% (the example roof) | 61.3% |
| 40% | 66.7% |
Here is a quick gut check you can run on any estimate: markup is always the bigger number. If a rep or a spreadsheet shows a margin larger than its markup, one of them is mislabeled. Find out which before the price goes out.
Roofing Price per Square: A Check, Not a Pricing Method
Price per square is how roofers talk, how reps quote on the spot, and how a client compares bids. It is a useful number. It just should not be where your price comes from. Let the formula set the price, then use price per square to check it.
The trouble with pricing straight off a per-square number is that not every cost scales with squares. On the example roof, about $1,100 of the direct cost changes little whether the roof is 15 squares or 25: the dumpster and disposal, the permit, and the rooftop delivery. Spread across 25 squares, that is $44 a square. Spread across 15, it is $73.
Run a 15-square roof through the formula with the same materials and labor per square, and the direct cost comes to $6,200. The price comes to $10,000, or $667 a square. Quote that roof at the $619 a square that worked on the bigger job and you bring in $9,285. After commission and overhead, profit drops from $1,000 to $485, about 5% net on a roof you meant to price at 10%.
Per square earns its keep as a check, in three places:
- Against your own history. Compare the formula’s price per square to what you actually sold and earned on your last ten comparable roofs. A big gap means one of your inputs moved, and you want to know which one.
- Against like work. Steep pitch, extra layers, and cut-up roofs push labor per square up. Compare a walkable gable to other walkable gables, not to your company-wide average.
- Against the market. If the formula keeps landing well above what your market will pay, cutting the price only moves the loss somewhere else. Look at the inputs instead: labor per square, overhead spread over too little volume, or a commission structure that is out of line.
If your reps need a per-square sheet to quote from, build it from the formula by roof size and pitch, and rebuild it whenever an input changes. The sheet should come out of your numbers, not stand in for them.
Why Roofing Jobs Lose Money After You Price Them Right
A correct price is a plan. The roof still has to be built at the cost you estimated, and on most jobs something drifts. None of it looks like a disaster on the day. It shows up as a smaller profit that nobody can explain.
Take the example roof, priced at $15,484 to net $1,548, and let three ordinary things happen:
- The tear-off takes longer than estimated. An extra layer, a steeper back slope, or a slow afternoon pushes labor 12% over the $4,200 estimate. That is $504, and profit falls to $1,044.
- Rotted decking gets replaced and never billed. Nobody stopped to get a change order signed, and $300 in sheets and labor is eaten. Profit falls to $744.
- The dumpster fills early. An extra haul and dump fee add $200. Profit falls to $544.
Nothing went wrong that anyone would call a problem, and the crew did good work. The job still netted 3.5% instead of 10%, and if it is never compared against its estimate, the next roof gets priced the same way and leaks the same amount.
Use Finished Jobs to Fix the Next Bid
This is where the line-by-line estimate from Step 1 pays off. Every finished roof gets compared to its estimate on the same lines: labor per square, materials and waste, disposal, and anything done but not billed. That is plan vs. actual at the job level. It turns a vague sense that margins are down into a specific line you can fix.
Fix patterns, not single jobs. One slow tear-off is weather or a bad day. If your last 20 comparable roofs averaged 12% over on labor, that is your real labor cost, and the estimating template should say so. On the example roof, labor goes from $168 to $188 a square, direct cost rises to $10,104, and the formula price becomes $16,297, about $652 a square. Raise the input. Do not wait for the crew to get faster. Unbilled extras get a different fix: a signed change order before the extra work starts, every time.
A workable rhythm is to review finished jobs against their estimates every week and update your estimating inputs every quarter. That includes overhead percentage and commission rate from the trailing 12 months. Weekly is fast enough to catch a leak while the crew still remembers the job. Quarterly is slow enough that one bad roof does not swing your pricing.
All of this depends on actual costs landing on the right job. Most accounting setups record what you spent but not which roof you spent it on. That is the piece TradeBooks handles by allocating your transactions to jobs within 48 hours, so the estimate vs. actual comparison is ready while the job is still fresh.
How to Price Roofing Jobs for Profit: Your Questions Answered
What net profit should a roofing job make?
Most well-run contracting companies target 8% to 10% net profit before taxes, and top performers clear 12% or more. Pick your number on purpose and build it into the formula on every roof. A target that stays out of the formula is not a target. It becomes whatever is left after the job, which is how roofs end up netting 3% without anyone deciding they should.
Should I mark up materials and labor separately?
You can, as long as the blended margin on the whole job still hits your target. The risk is that a healthy material markup hides labor priced at cost. A 25% markup on $4,300 in materials adds about $1,075, far short of the $5,884 in gross profit the example roof needs. Check the total gross margin on every estimate, whatever markups built it.
How do I price insurance roofing jobs for profit?
On most insurance jobs, the carrier’s approved estimate sets the price, not you. Run that approved scope through the formula anyway so you know what the roof nets at the carrier’s number. If it lands under your floor, look for missed line items, document them with photos, and file the supplement as soon as you find them, not after the job closes.
How do I raise my roofing prices without hurting my close rate?
Raise them where your numbers say to, not across the board. Start with the job types and roof sizes where estimate vs. actual shows margin slipping, update those inputs, then watch close rate by rep and lead source for the next 30 to 60 days. If close rate holds and margin climbs, the old price was the problem.
Should I give the client a price per square or one total?
Quote one total price. A per-square number invites the client to stack it against another bid and compare on squares alone, which ignores tear-off, decking, ventilation, and warranty. Keep price per square as your internal check, and present the full scope and the total in writing so the comparison happens on the whole roof.
What net profit should a roofing job make?
Most well-run contracting companies target 8% to 10% net profit before taxes, and top performers clear 12% or more. Pick your number on purpose and build it into the formula on every roof. A target that stays out of the formula is not a target. It becomes whatever is left after the job, which is how roofs end up netting 3% without anyone deciding they should.
Should I mark up materials and labor separately?
You can, as long as the blended margin on the whole job still hits your target. The risk is that a healthy material markup hides labor priced at cost. A 25% markup on $4,300 in materials adds about $1,075, far short of the $5,884 in gross profit the example roof needs. Check the total gross margin on every estimate, whatever markups built it.
How do I price insurance roofing jobs for profit?
On most insurance jobs, the carrier’s approved estimate sets the price, not you. Run that approved scope through the formula anyway so you know what the roof nets at the carrier’s number. If it lands under your floor, look for missed line items, document them with photos, and file the supplement as soon as you find them, not after the job closes.
How do I raise my roofing prices without hurting my close rate?
Raise them where your numbers say to, not across the board. Start with the job types and roof sizes where estimate vs. actual shows margin slipping, update those inputs, then watch close rate by rep and lead source for the next 30 to 60 days. If close rate holds and margin climbs, the old price was the problem.
Should I give the client a price per square or one total?
Quote one total price. A per-square number invites the client to stack it against another bid and compare on squares alone, which ignores tear-off, decking, ventilation, and warranty. Keep price per square as your internal check, and present the full scope and the total in writing so the comparison happens on the whole roof.
Price Every Roof From Numbers You Can Trust
The formula is the easy part. One division sets a roof’s price from its real cost, your real overhead, what you pay to sell it, and the profit you decided to keep. What makes it hold up is the loop behind it: an itemized estimate, a finished job compared against it, and inputs that change when the pattern does. Run that loop, and the next signed contract comes back with a price you can defend and a profit you can actually find.
TradeBooks gives roofing owners that loop without piling more work on the office. Your team supplies a few daily inputs. TradeBooks keeps job profitability, overhead, and lead numbers current on top of the accounting program you already use. If you want to see what your own roofs are really netting, book a free 30-minute demo. There are no contracts, you can cancel anytime, and setup takes days, not months.