Skip to content
Prices last checked Sep 26, 2026
Kitfinch
Best software forPlumbersHVAC companiesElectriciansRoofersLandscapersDentistsSalons & spasRestaurants

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.

By Amine from KitFinchHow we pick

Advertiser disclosure

Kitfinch is free to use. Some links on this site are affiliate links: if you buy through them, we may earn a commission at no extra cost to you.

Commissions never decide our picks or the order of a list, and vendors cannot pay to change a price we show. Every outbound vendor link is marked as sponsored.

Read the full disclosure

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?
A roofing bid is built, not looked up: fully loaded labor hours times your loaded hourly cost, plus materials at a marked-up price, plus a per-job share of overhead, plus a margin. Roofers then divide that total by the number of squares (100 sq ft units) on the roof to get a per-square rate, which makes bids comparable across different roof sizes and pitches.
How much should a small roof cost?
There is no fixed number, because cost depends on your local labor rate, material choice, roof pitch, tear-off layers and access difficulty. Instead of quoting a market average, calculate your own per-square cost: labor hours per square times your loaded wage, plus marked-up material cost per square, plus overhead and margin, then multiply by the roof's square count.
What is a typical hourly rate for a roofing crew?
There is no single published hourly rate for roofing crews; it depends on local wages, crew size and whether workers are employees or subcontractors. To find your own rate, start from each worker's wage, add employer payroll taxes such as the employer share of Social Security and Medicare and the federal unemployment tax, then divide by billable (not paid) hours.
How much markup should roofers add to material costs?
Markup on materials should cover handling, waste, warranty support and the profit built into your business plan, and it varies by contractor and region, so there is no single correct figure. A common approach is to price materials at cost plus a set percentage, track actual waste on past jobs, and adjust the percentage until margin targets are consistently met.
Should roofers price steep-slope or tear-off work differently?
Yes. Steep-slope work slows crews down and increases fall-protection needs, and multi-layer tear-offs add disposal cost and labor hours that a standard roof does not have. Build a per-square rate for standard low-slope or single-layer work, then apply defined add-ons for pitch, layer count and access so every estimator prices these jobs the same way.
What is the difference between markup and margin in a roofing bid?
Markup is the percentage added to cost to set your price; margin is the percentage of the final price that is profit, and the two numbers are never equal at the same profit level. A job priced with a 25% markup on cost yields a margin below 25% of the sale price, which is why roofers should confirm which one a target refers to.
How should roofing companies build overhead into a bid?
Add up annual overhead, such as insurance, vehicles, office costs and non-billable staff time, then divide by expected billable hours or expected job volume for the year to get an overhead rate per hour or per job. Add that rate to every bid alongside labor and materials so overhead is recovered across all jobs instead of being an afterthought.
Why do two roofing companies quote different prices for the same job?
Differences usually come from labor cost assumptions, material brand and markup, how much overhead is allocated per job, and the margin target each company needs to hit its goals. A company with higher payroll taxes, more overhead per job, or a higher margin target will bid higher even when using the same measurements and materials.

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.

  1. irs.gov — irs.gov/businesses/small-businesses-self-employed/understanding-employment-taxes
  2. irs.gov — irs.gov/taxtopics/tc751
  3. irs.gov — irs.gov/taxtopics/tc759
  4. bls.gov — bls.gov/ooh/construction-and-extraction/roofers.htm

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