
When you’re comparing bids for sealing and resurfacing across multiple properties, you’re rarely comparing the same job. You’re comparing different assumptions about prep and what “included” really means. The way through is to level every proposal into the same unit prices and the same written scope, so you can spot real value and avoid change orders.
You don’t need more quotes or a magic “pick the middle” rule, How do I compare bids for sealing, crack repair, and resurfacing across multiple properties? Use a repeatable method: translate lump sums into a unit-price schedule for every site, set the scope details that actually drive cost (especially cleaning and crack treatment), then choose between a portfolio award and per-site award based on mobilization and warranty. Think of it like a reserve-study table that stops guessing and starts totaling. Once you do that, the bid differences stop feeling random, and your decision gets a lot easier to defend.
Convert Every Bid to Unit Prices
In one public bid comparison, crack sealing was normalized at $1.00 per linear foot and sealcoating at $0.30 per square foot, showing how “small” prep line items can swing totals fast in a crack repair bid comparison.
If you try to compare multi-property bids as lump sums, you’ll end up comparing formatting and guesswork, not scope. Standardize proposals by mapping every line item into one shared unit-price schedule. Anything else is just vibes, even if it looks clean in Yardi Voyager.
| Line item | Unit to require on bids |
|---|---|
| Sealcoating | $/SF |
| Crack sealing | $/LF |
| Cleaning | $/SF |
| Striping | $/LF or per stall/symbol |
| Resurfacing | $/SY (or $/ton) |
Lock the Scope That Drives Price
Most bid spreads don’t come from “better pricing”. They come from scope creep in disguise, especially around prep and crack treatment. Without those inputs locked, you’re purchasing interpretation, not sealcoating or crack repair.
At minimum, force every bidder to spell out the price-driving details in writing (as many public-owner bid specs do, including calling out defined prep steps and materials). See, for example, this public bid notice and specs. Otherwise the scope reads like wet paint, and everyone leaves a different footprint: surface cleaning method and standard; crack method and material (and what gets routed, blown out, and sealed versus skipped); and explicit exclusions like oil-spot priming or mobilization/remobilization between properties. Case in point: a “cheap” sealcoat number often just means they priced sealing over cracks or assumed minimal cleaning, and that’s exactly what turns into change orders later.
Choose the Best-Value Bid Across Properties
You award “the low bid” across the portfolio, then find out the price assumed one mobilization, perfect weather windows, and a thin warranty that does not match how your sites actually operate.
Decide up front whether you’re awarding as a portfolio or per site, then make bidders price it that way. A portfolio award can legitimately lower unit prices because mobilization and crew time spread across locations, but only if the bid states the assumption (minimum total SF/LF and per-site minimum charges). If they won’t put those assumptions in writing, you’re not running an apples-to-apples comparison. You’re comparing promises, and CAI boards see right through that.
Treat schedule and warranty as part of cost. It’s non-negotiable: require a property-by-property phasing plan that respects cure-time weather windows (for example, sustained 50°F+ surface temps for about 24 hours after sealcoating), and make warranty language specific to what’s covered (materials and workmanship). Use add/deduct alternates (striping and extra crack LF) so you can award confidently without inviting change orders.
Roof not getting any younger? Contact us at Contact us or call 910-241-1152 to find out where you stand.