Pricing your work
How to Price Roofing Jobs: A Step-by-Step Method
Price a roofing job by adding your fully loaded labor cost, materials at a marked-up rate, a share of overhead per job, and a margin on top, then convert that total into a rate per square (100 square feet) so every bid uses the same unit. Flat per-square or per-job pricing works for most replacements and repairs; hourly pricing fits only small, unpredictable work like inspections or one-off patch calls.
Hourly vs flat-rate pricing
Most roofing companies price replacements and repairs by the job (flat-rate or per-square) and reserve hourly billing for small, unpredictable work. The table below compares the two approaches on the factors that matter for a bid.
| Factor | Hourly pricing | Flat-rate / per-square pricing |
|---|---|---|
| Best fit | Inspections, small patch repairs, storm-damage assessments, unknown-scope work | Full replacements, tear-offs, and repairs where square footage and materials can be measured up front |
| Customer clarity | Final cost is uncertain until the job is done | Customer sees one number before work starts |
| Efficiency incentive | Crew has less incentive to finish quickly | Crew benefits from finishing efficiently, since the price is fixed |
| Risk of underpricing | Low, since every hour worked is billed | Higher if the estimate misses tear-off layers, deck repair or difficult access |
| Ease of comparison across jobs | Hard to compare, since hours vary by crew speed | Easy to compare bids across jobs using cost per square |
| Insurance and adjuster work | Rarely used; adjusters expect an itemized or per-square estimate | Standard; insurance scopes are typically written in squares |
The practical rule: quote by the square or by the job whenever you can measure the roof and specify materials in advance, because that is what customers and insurance adjusters expect to compare. Reserve hourly billing for work where scope truly cannot be defined until a technician is on site.
Step 1: Calculate your fully loaded hourly labor cost
Your real labor cost is higher than the wage you post, because employment taxes are added on top of every hour you pay for. Employers generally must withhold Social Security and Medicare taxes from employees' wages and also pay the employer share of those same taxes, which is a cost on top of the wage rather than a deduction from it.
The current employer share of Social Security tax is 6.2% of wages and the employer share of Medicare tax is 1.45%, for a combined employer FICA cost of 7.65% on top of wages, matching what is withheld from the employee's paycheck.
On top of FICA, most employers owe federal unemployment tax (FUTA). The standard FUTA rate is 6.0% on the first portion of each employee's yearly wages, though employers who pay state unemployment tax on time and in full typically receive a credit that reduces the effective FUTA cost well below the standard rate.
To get a loaded hourly labor cost, add the wage, the employer share of FICA, your FUTA cost, state unemployment tax, and any workers' compensation premium for roofing (a high-risk trade class), then divide the total by paid hours. That loaded rate, not the wage on the pay stub, is the number that belongs in a bid.
Step 2: Separate billable hours from paid hours
Not every hour you pay a roofer for turns into billable work on a roof. Drive time between jobs, loading materials, safety meetings, equipment setup and slow days between contracts are all paid but not billable. If a crew is paid for 40 hours a week but only 30 of those hours are spent on quoted jobs, your true cost per billable hour is higher than your loaded hourly cost from Step 1, because the same weekly payroll has to be recovered across fewer productive hours.
Track billable hours against paid hours for a full season, then use that ratio going forward: divide loaded weekly labor cost by average billable hours per week, not by paid hours, to get the labor rate you actually charge inside a bid.
Step 3: Price materials with a defined markup
Materials should never go into a bid at your invoice cost. Add a markup that covers delivery, waste (cut-offs, damaged bundles, extra fasteners), storage, and the profit built into your material line separately from labor profit. Because material prices, brands and supplier discounts vary by market, there is no universal markup percentage that fits every roofing company; the right approach is to pick a starting markup, track actual waste and returns on completed jobs, and adjust it until the material line consistently covers its true cost plus its intended contribution to profit.
Step 4: Allocate overhead per job
Overhead is every cost that keeps the business running but is not tied to one specific job: office rent, insurance, vehicles, dispatch software, marketing and salaried staff who are not on roofs. To allocate it fairly, add up annual overhead, then divide by your expected annual billable hours (from Step 2) or by expected job count, whichever your team already tracks. The result is an overhead rate you add to every bid, whether the job is small or large, so overhead is recovered across your whole workload instead of being absorbed into margin on the jobs that happen to be quoted.
Step 5: Apply margin, and convert everything to a rate per square
Once labor, materials and overhead are stacked into a job cost, add a margin (the percentage of the final price that is profit) rather than only a markup (the percentage added to cost), since the two produce different dollar results at the same target. A cost-plus-markup calculation of 25% on cost is not the same as a 25% margin on price; margin will always be the smaller percentage of the two for the same job.
Worked example (fictional, rounded numbers, not a market price): say a job's labor plus materials plus overhead totals 4,000 units of cost, and the company wants a 20% margin on the final price. Divide cost by (1 − 0.20): 4,000 ÷ 0.80 = 5,000. The 1,000-unit difference is the margin, which is 20% of the 5,000 final price, not 20% of the 4,000 cost (that would be a markup, and it would have produced a lower final price).
To turn any job's total price into a rate you can quote quickly on future jobs, divide the final price by the number of squares (100 sq ft units) of roof area. That per-square rate becomes your baseline for standard work, with defined add-ons for steep pitch, extra tear-off layers, difficult access and additional layers of decking repair, so every estimator in the company prices those variables the same way instead of guessing case by case.
What roofers earn
Roofers earn a median wage of $55,440 a year, or $26.65 an hour, according to the Bureau of Labor Statistics, which also reports about 166,900 roofing jobs in the workforce and roughly 12,000 average annual openings projected over the coming decade as the field grows faster than the average for all occupations.
That median wage is a useful sanity check when you build your loaded labor cost in Step 1: if the wage you are paying and loading with taxes sits far below the published median for the trade in a tight labor market, expect turnover and hiring difficulty, both of which quietly raise your real cost per job through retraining and lost productivity.
Pricing mistakes that cost roofing businesses money
- Quoting from memory instead of a per-square rate. Estimators who eyeball a price from experience alone under- or over-bid inconsistently, and the business never learns why some jobs are profitable and others are not.
- Leaving payroll taxes out of the labor rate. A wage-only labor cost understates true cost by the full employer share of FICA and FUTA, which quietly erodes margin on every job.
- Charging billable hours as if they were paid hours. Ignoring the gap between paid and billable time means labor is underpriced across the whole season, not just on slow jobs.
- Spreading overhead unevenly. Adding overhead only to large jobs, or skipping it on small repairs, means small jobs lose money even when they look profitable on paper.
- Confusing markup with margin. Teams that set a markup target while reporting results in margin terms consistently miss their real profit goal without knowing why.
- Not defining add-ons for pitch, layers and access. Without a standard add-on schedule, steep-slope and multi-layer tear-off jobs get bid at the same rate as simple ones and lose money.
- Skipping a deposit structure on larger jobs. Materials for a full roof replacement are a large up-front cost; a defined deposit and progress-payment schedule protects cash flow while the crew works.
Tools that help you quote faster
Once your per-square rate, material markup and overhead allocation are set, the fastest way to keep every estimate consistent is to build them into a price book inside your job software rather than recalculating each bid by hand.
- Housecall Pro lets you save a price book of line items and squares-based pricing so estimators reuse the same rates on every quote, and customers can approve estimates online.
- Jobber offers similar quoting and a client hub where homeowners review and approve pricing, which suits companies that also want self-serve payment collection.
- Buildertrend fits roofing companies running larger, multi-week projects with budgets and change orders, where a fixed per-square rate needs to flex as scope changes mid-project.
- ServiceM8 is a lighter option for smaller roofing crews that want quoting, scheduling and invoicing without the overhead of a larger platform.
See the full roofing software kit for how these tools fit alongside payroll, accounting and marketing, and the estimates and quotes task guide for what to look for in a quoting tool specifically.
Frequently asked questions
How is the price of a roof replacement calculated?
How much should a small roof cost?
What is a typical hourly rate for a roofing crew?
How much markup should roofers add to material costs?
Should roofers price steep-slope or tear-off work differently?
What is the difference between markup and margin in a roofing bid?
How should roofing companies build overhead into a bid?
Why do two roofing companies quote different prices for the same job?
Sources we checked
Every feature and policy on this page comes from these vendor or government pages, last checked Sep 26, 2026. See how we review.
Cite this page
Amine from KitFinch. “How to Price Roofing Jobs: A Step-by-Step Method.” Kitfinch, updated Sep 26, 2026. https://kitfinch.com/guides/how-to-price-roofing-jobs
Plain-text version for AI assistants: /guides/how-to-price-roofing-jobs.md