Average Roof Replacement Cost: What a Quote Includes and Omits
A typical roof replacement runs about {cost:roof-replacement-shingles:mid}. Here's what the quote covers, what shows up as change orders, and how to compare.
The average roof replacement cost is $8,500 for a 120 m2 roof (about 1,300 sq ft), and most mid-range quotes fall between $6,650 – $11,100. A bare-bones job starts near $7,050, and a premium specification reaches $10,200. All figures are before sales tax.
The headline number is only useful if you know what it covers. Two quotes that look $2,000 apart often describe different jobs. Here is what sits inside a typical quote, what tends to appear later as a change order, and how to compare bids fairly.
What a typical quote includes
We build our roofing figures from labor hours × local rates, plus materials, then check them against market prices and real quotes. A standard replacement quote should cover:
- Tear-off. Stripping the existing shingles down to the deck.
- Underlayment. The water-resistant layer over the deck, plus ice-and-water protection at eaves and valleys where local practice calls for it.
- New shingles. Usually architectural asphalt on a mid-range job, installed to the manufacturer's pattern.
- Flashing. Reusing or replacing metal at chimneys, walls, valleys and roof edges. Check which of these the bid actually names.
- Ridge and ventilation caps. Ridge cap shingles and basic vents.
- Disposal. Hauling away the old roofing, usually via a dumpster.
- Cleanup. A magnetic sweep of the yard for nails.
If a quote lists only "labor and materials" with no line items, ask for the breakdown. Vague quotes are where most disputes start.
What usually shows up as a change order
The deck underneath is the biggest unknown. Nobody can see it until the old shingles come off, so most contractors price repairs as an add-on once they find them. Typical change-order items:
- Rotted or damaged decking. Replaced by the sheet or by the board, once exposed.
- Extra layers. A second layer of old shingles takes more time and more disposal than one. If you're unsure, check the quote's assumption against the "layers" option in our cost guide.
- Steep pitch or multiple storeys. These are priced in our model. A bid that assumes a walkable one-storey roof can grow if the roof isn't.
- Complex shapes. Hips, valleys and dormers add cutting, flashing and labor.
- Chimney, skylight and pipe-boot work. Re-flashing or rebuilding these is often excluded from a base price.
- Gutters, fascia and soffit. Rotten trim found during the job is rarely covered by the original quote. If you're replacing gutters anyway, our Gutter guards guide shows what protecting new ones costs.
- Permit fees. Structural work usually needs a local permit. Ask whether the contractor pulls it and whether the fee is in the price.
How much the material changes the price
Shingle type is the biggest lever you control. These are our typical mid-range costs for the same roof with different materials:
| Material | Typical cost |
|---|---|
| 3-tab asphalt shingles | $7,350 |
| Architectural shingles | $8,500 |
| Stone-coated steel | $14,200 |
| Standing-seam metal | $17,000 |
| Concrete tile | $17,500 |
| Natural slate | $25,300 |
For the full table, including the usual range and lifespan of each option:
| Material | Typical | Usual range | Lifespan |
|---|---|---|---|
| 3-tab asphalt shingles | $7,350 | $5,750 – $9,550 | 15-20 years |
| Architectural shingles | $8,500 | $6,650 – $11,100 | 20-30 years |
| Designer / luxury shingles | $9,650 | $7,550 – $12,600 | 25-40 years |
| Corrugated metal (exposed fastener) | $11,900 | $9,250 – $15,400 | 30-50 years |
| Metal shingles | $14,200 | $11,000 – $18,400 | 40-70 years |
| Stone-coated steel | $14,200 | $11,000 – $18,400 | 40-70 years |
| Synthetic slate | $14,700 | $11,400 – $19,100 | 40-50 years |
| Standing-seam metal | $17,000 | $13,200 – $22,100 | 40-80 years |
| Concrete tile | $17,500 | $13,700 – $22,800 | 40-50 years |
| Clay tile | $21,700 | $16,900 – $28,200 | 50-100 years |
| Natural slate | $25,300 | $19,800 – $33,000 | 75-150 years |
Lifespan matters when you choose. A pricier material that lasts decades can cost less per year than a cheap one you replace sooner. If you plan to stay, compare cost per year, not just the upfront figure.
Why one quote can differ from another
Check these before deciding a bid is high or low:
- Same material and grade? "Architectural shingles" covers a wide quality range.
- Same scope? Does each bid include underlayment, flashing replacement, ventilation and disposal?
- Deck repair policy. Is there an allowance, a per-sheet price, or nothing?
- Roof assumptions. Pitch, number of storeys and layers should match what is actually on your house.
- Warranty. Separate the manufacturer's material warranty from the contractor's workmanship warranty, and see what is in writing.
A quote that is far below the others usually leaves something out, often flashing, underlayment quality or deck repairs. One far above may include premium products or a cushion for unknowns.
Questions to ask before you sign
- What happens if you find rotted decking, and how is it priced?
- Are all flashings replaced, or reused?
- Who pulls the permit, and is it in the price?
- What is the payment schedule, and is the final payment tied to cleanup and inspection?
No federal credit to offset the cost
The federal 25C credit for energy efficient home improvements doesn't apply to property placed in service after 31 Dec 2025, so don't count on it to reduce a roof bill. Some states and utilities run their own programs, and the DSIRE database lists what exists locally. Programs vary, so check eligibility before you commit.
Planning the rest of the exterior
A new roof is a good time to look at other exterior work, since scaffolding, access and debris handling overlap. Our guides to Siding replacement and Window replacement show how those jobs are priced, and Roof replacement has the full breakdown for roofing.
Already have a bid in hand? Our quote checker ("is my quote fair") compares it against the live cost model for your project, so you can see whether it's in range and which line items to question.