Overview of a well-constructed roof deck featuring plywood and OSB materials
Roofing

Hidden Roof Costs: The Decking Surprise and Change Orders Minneapolis Homeowners Miss

9 Minute

Updated: 04.20.26

Last fall a Kingfield homeowner called us two weeks into her roof tear-off, after her original contractor handed her a $4,200 change order on a $17,500 signed contract. “Rotted decking,” the foreman said. “Nothing we could’ve seen from the ground.” She paid it because her house was half-torn-off and the skies were graying. Three weeks later the roof was done and she was $4,200 over budget.

Every Minneapolis roofing contractor who’s been in the business more than a year has a version of that story. Some are legit — decking does rot, and nobody can see it until the shingles come off. Many are not. This article walks through the hidden roof costs that regularly catch Twin Cities homeowners out in 2026, and how to neutralize them at bid time so your signed number is actually your final number.

The big hidden roof costs: decking, ventilation, and flashing

Three cost categories account for roughly 80% of Minneapolis change orders:

  1. Decking replacement. Rotted, soft, or delaminating plywood or OSB under the shingles. Typical discovery rate in a 20+ year Minneapolis roof: 3–8 sheets. At $65–$95 per sheet installed, that’s $200–$750 in surprise cost — or $1,000–$3,000+ if the damage is extensive.
  2. Ventilation upgrades. Minneapolis code (and most manufacturer warranties) require a minimum net free ventilation area. If your current setup doesn’t meet code or the material warranty, the installer will need to add intake vents, ridge vent, or both. Typical cost: $300–$1,500.
  3. New flashing. Chimney, sidewall, step, and pipe boot flashing is often reused on cheap bids. A reputable install specifies all new flashing. If your bid says “reuse existing,” assume you’ll see a flashing change order when the crew discovers it’s cracked, rusted, or caulked-in. Typical cost: $400–$1,800.

Any bid that doesn’t explicitly handle all three up front is a bid that’s quietly borrowing from your change-order budget. See our roof cost factors and roof labor vs. material cost walk-throughs for the broader picture.

How decking change orders really work (a field-guide story)

Overview of a roof deck that reveals hidden costs like rotted decking
Overview of a roof deck with a mix of original plywood and replacement OSB — the under-the-shingle surprise that drives most Minneapolis change orders.

Here’s what actually happens on a change-order day: the crew tears off shingles in the morning, walks the deck, and flags the soft spots. By 11 a.m. the foreman is on the phone to the homeowner with a number. The homeowner, whose roof is half-exposed and looking at forecasts, has two choices: approve the number or argue while the weather rolls in.

This is why the per-sheet rate needs to be locked in before the job starts. A reputable Minneapolis bid will list something like “Decking repair: $85/sheet, first 2 sheets included, additional sheets billed at rate with photo documentation.” A less-reputable bid says “Decking repair as needed,” which is contractor code for “whatever we feel like charging.”

Bid language What to do
“Decking repair as needed” Ask for a per-sheet rate in writing. Walk if refused.
“$85/sheet, photos required” Accept. This is industry-standard fair.
“No decking allowance” Assume a future change order. Push for an allowance.
“First 3 sheets included” Great — this is a homeowner-friendly bid.
“Decking not covered” Red flag. Decking is always a possibility; exclusion is evasive.

The smaller hidden roof costs that add up

Beyond the big three, here are the hidden roof costs we see regularly on Minneapolis bids:

  1. Chimney pan and cricket. $400–$1,200 if the chimney flashing is failed or a cricket (a small peaked structure uphill of a chimney) is needed for proper drainage.
  2. Skylight re-flashing. $350–$900 per skylight. Most bids assume skylights are fine; most older skylights are not.
  3. Satellite dish re-mount. $75–$200, usually excluded from the main bid.
  4. Gutter protection and drip edge. $3–$5/linear foot. Often bid as a separate line or omitted entirely.
  5. Ice-dam repair from prior winter. Rotted fascia, wet attic insulation, stained drywall — these aren’t roofing costs per se but often surface during a re-roof.
  6. Disposal surcharge. Some Minneapolis contractors bill a separate disposal cost above the dumpster rental if the tear-off exceeds tonnage.
  7. Trip charges for crew returns. Rare on a single-visit job but common when weather splits the install over multiple days.

The industry term for the spread between the signed bid and the final invoice is “creep.” On a clean roof from a reputable contractor, creep is under 5%. On a cheap bid from a volume shop, creep of 20–30% is common. Know which pattern you’re buying before you sign.

— Paraphrased from a Minnesota Department of Commerce 2024 consumer advisory

Neutralizing hidden roof costs before you sign

A short checklist to convert hidden costs into known costs at bid time:

  1. Ask for an itemized bid. Not a lump sum. Labor, material, permit, decking rate, ventilation upgrades, flashing scope — each on its own line.
  2. Ask about the decking repair rate explicitly. A reasonable 2026 Minneapolis rate is $65–$95/sheet with photo documentation. Lock it in writing.
  3. Spec new flashing on any re-roof. Reused flashing is a near-guaranteed leak within 3–7 years.
  4. Confirm code-compliant ventilation. If your current setup is insufficient, the upgrade should be in the main bid, not a change order.
  5. Request a “pricing hold” provision. Some contracts allow contractors to adjust material pricing if the start date is delayed. Request a 30–60 day hold on pricing at minimum.
  6. Know your cancel rights. MN Statute 325G.07 gives a 3-day rescission on door-to-door and certain residential contracts.

For the broader decision framework, see our Minneapolis roof replacement cost pillar and roof financing options walk-through. For vetting the contractor behind the bid, our Minneapolis roofing companies cluster is the right starting point. Further reading: the MN Attorney General home improvement guide, the MN Statute 325G.07 on rescission, and the NRCA consumer center.

Frequently Asked Questions

What are the most common hidden roof costs in Minneapolis?

Decking replacement (3–8 sheets at $65–$95 each), ventilation upgrades ($300–$1,500), and new flashing ($400–$1,800) account for roughly 80% of change orders. Also: chimney pans, skylight re-flashing, gutter protection, disposal surcharges.

How much decking replacement should I expect on a Minneapolis roof?

On a 15–25 year old home, expect 2–8 sheets of decking replacement at $65–$95 per sheet installed. Older homes or roofs with prior leak history can require more. Good bids include an allowance for the first 2–3 sheets.

What’s a fair decking repair rate per sheet in 2026?

$65–$95 per 4×8 sheet of 7/16” OSB or 1/2” plywood installed in Minneapolis. Rates outside this range deserve scrutiny — much higher suggests padding, much lower suggests unqualified labor.

Can I refuse a decking change order after the roof is open?

Practically, no. Once the roof is torn off, replacing unsound decking is a safety issue. You should absolutely require photo documentation and compare the per-sheet rate to what your contract specified.

Should I expect change orders on a Minneapolis roofing project?

On a reputable, itemized bid: rarely more than 5–10% of the total. On a “lump sum” or vague bid: routinely 15–30%. The difference is almost entirely about how well the bid pre-specifies decking, ventilation, and flashing.

Looking for a Minneapolis roofer who holds the bid?

We’re Minneapolis Roofing Company — a licensed, insured, local crew that quotes straight, itemizes every line, and never surprises you with a mid-job change order. If you’re looking for a Minneapolis roofer who holds the bid, we’d love to be the name you recommend to your neighbor.

Get Your Free Roofing Estimate →


About Minneapolis Roofing Company. Minneapolis Roofing Company is a locally and family-owned roofing contractor serving Minneapolis, St. Paul and the west-metro suburbs. We’re licensed in Minnesota (MN Lic. #BC809662), carry general liability and workers’ compensation insurance, are BBB Accredited, and have earned 30+ five-star reviews from local homeowners. Every project is documented with before / during / after photos and backed by a written workmanship warranty. Last reviewed and updated on April 20, 2026.

Written By: Owl Roofing