Why the same flat roof got quoted $9,120 and $21,116
6 min read · Calibrated against real St. Louis bids & paid invoices
I put one roof out to bid and got back a 2.3× spread. Same building, same three roof sections, same week. The low quote was $9,120. The high quote was $21,116. If you've ever stood in a rehab holding two roofing bids that are $12,000 apart and felt your stomach drop — this is the post that explains what's actually going on.
Spoiler: almost none of that $12,000 gap is "one guy is ripping you off." It's that the four contractors weren't quoting the same roof, and three of the four made it nearly impossible to tell. Here's the line-by-line.
What was actually being quoted
A flat roof on a two-family: about 1,300 square feet across the main house, a back addition, and a detached garage. Flat (low-slope) roofs aren't shingles — they're a membrane system, and which membrane is most of the price. Here's where the four bids landed:
| Bid | Price | Roof system quoted | Scope legibility |
|---|---|---|---|
| $9,120 | Modified bitumen, 2-ply (main + addition), 1-ply garage | Line items, but thin | — |
| $13,374 | TPO single-ply (60-mil), full tear-off | Itemized | — |
| $19,560 | Modified bitumen replacement | Itemized | — |
| $21,116 | Modified bitumen (SBS/APP self-adhering cap sheet) | Lump sum — zero line items | — |
Three more roofers came in at patch/partial scope — $4,620, $5,300, $7,407 — for less roof. Throwing those out is itself the first lesson: half of a "cheap bid" is just a smaller job.
The instinct is to anchor on the $9,120 and treat everything above it as padding. That instinct is how rehabbers lose money — not by overpaying, but by buying the cheap number and eating the difference in change orders. Watch.
Reason #1: They're not quoting the same system
These four bids cover two different flat-roof systems. The $13,374 is TPO — a single-ply membrane. The $19,560 and $21,116 are modified bitumen — a multi-ply, asphalt-based system. Different products, different install methods, different lifespans, and on a flat roof the membrane is the roof.
Here's the part that breaks the "you get what you pay for" instinct: the more expensive bids weren't the better system. TPO is a modern single-ply that plenty of roofers consider the longer-lasting choice — and it came in at $13,374, under both modified-bitumen bids at $19,560 and $21,116. The extra money on the high bids didn't buy a better roof. It bought a different system, plus whatever else got folded in — and a lot of that, it turns out, is decking you may not need.
This is the single most common mistake I see: comparing the prices before you've confirmed they're comparing the same product. A TPO roof and a modified-bitumen roof aren't a negotiation — they're two different purchases wearing the same word ("roof").
Reason #2: The lump-sum bid is the real red flag — not the high one
The $21,116 is the most expensive and the least legible. It's a single number. No squares, no unit prices, no breakout for the garage vs. the main house. The scope description is great — it names the system, the warranty, the flashing. But there is nothing on the page you can actually verify or push back on.
A high itemized bid, you can challenge line by line. A lump sum, you can only accept or reject. A bid you can't read is a bid you can't negotiate.
Reason #3: The decking line tells you who's being straight with you
Under a flat roof is decking — plywood or plank — and you can't know how much of it is rotten until the old roof is off. So every honest bid has to say something about decking, and how it says it tells you a lot.
The $9,120 priced it the way I actually prefer: replace decking as necessary, $60 per sheet. You pay for the sheets that are genuinely bad, and you can verify it — a good roofer photographs what they pull ("here are the 10 sheets we replaced"), so the add-on isn't just a number that materializes on the final invoice.
The $21,116 did the opposite. It assumed a full re-deck and folded it into the lump sum, with no line item — I had to call and ask what the decking alone was costing. A full tear-and-replace of decking that's mostly fine is one of the easiest ways to pad a flat-roof bid, and it almost always gets couched as "bringing it up to code." Sometimes the deck really is shot. More often it's good enough and you replace what's needed. "Replace all of it," priced take-it-or-leave-it inside a lump sum, is exactly the line you make them itemize.
A per-sheet decking price you can verify with photos is the transparent version. The bid to push on is the one that quietly assumed the whole deck was trash.
Reason #4: How the roof meets the walls — the part that actually leaks
A flat roof on a St. Louis two-flat is boxed in by low parapet walls, and how a roofer finishes that edge — where the membrane runs up the wall and gets capped — is its own scope decision that mostly stays invisible in the price. Across these bids I counted three different ways of doing it:
- Termination bar — the most basic: a metal strip screwed into the wall to pin the top edge of the membrane. Cheapest, and the least robust — and on old brick that's gone soft, the fasteners don't always hold, which is right where the edge starts to fail.
- Metal cap — the membrane runs up the wall and a metal cap covers the top of it. A step up, but metal caps tend to fail sooner than the traditional finish.
- Tile / ceramic cap — the most traditional finish, and the one the roofer I trust most on flat work preferred. His take: it's the one that lasts.
The edge and the cap are where flat roofs leak first — the highest-failure spot on the whole roof. So a bid that upgrades the edge detail isn't padding, and a bid that's cheap partly because it defaults to a termination bar on soft brick is a bid worth a question. Some of these prices differ right here — and none of them spelled it out.
So what's the roof actually worth?
Once you normalize — same membrane system, decking handled the same way instead of one bid quietly assuming a full re-deck, the same edge and cap detail, comparable warranty — the honest fair range on this roof lands in the mid-teens, not at the $9,120 floor and not at the $21,116 lump sum. The cheap bid is cheap partly because it only prices the decking it actually finds, not a full tear-out. The expensive bid might be fine — but it's structured so you can't prove it, which is its own reason to push back.
Here's the part that pays for itself: the right move wasn't picking a bid. It was going back to three of them with specific asks — match this membrane system, price the decking as replace-as-needed with photos, spell out the edge and cap detail, confirm the garage is included. That's a conversation that routinely moves a roof bid by four figures. You can't have it if you led with "your number's too high."
The questions I'd take back to each contractor
Copy these. They work on any flat-roof bid:
- Which membrane system — TPO or modified bitumen — and how many plies or what thickness? And what's the manufacturer's material warranty, in years?
- What's your workmanship warranty, in writing, and is it transferable to a buyer?
- How are you handling the decking — replace-as-needed at $Y/sheet with photos of what you pull, or are you assuming a full re-deck? If it's a full re-deck, what did you see that calls for it?
- How are you finishing the edges and caps — termination bar, metal cap, or tile/ceramic — and why that choice on this building?
- Itemize it. Tear-off, membrane, flashing, edge and cap detail, decking — as separate lines. If they won't, that's information too.
- Confirm every section — main, addition, and garage — is in this price, with the square count for each.
Ask those six and the $12,000 spread mostly explains itself — and usually shrinks.
Have a bid you're not sure about?
SecondEye gives you an independent second read before you sign — what it should include, where it's thin, and the exact questions to take back to the contractor. Calibrated against real bids and paid invoices.
Get your bid reviewed — $49