How to Compare 3 Contractor Bids Apples-to-Apples (Free Scoring Framework)
Bids can’t be compared until they’re normalized — same scope, same materials, same exclusions. Then score on six weighted factors where price counts for just 30%, because the cheapest bid wins exactly until the change orders start. The $9,000 spread between three roofing bids is usually a scope difference wearing a price costume. Here’s the framework.
Step 1: Normalize Before You Compare
Build a simple grid — one row per scope item, one column per bidder (quote anatomy here):
- List every line item any bid mentions. Bid A includes haul-away, B doesn’t, C “includes” it unpriced? Now you know one reason for the spread.
- Match materials by name: “GAF Timberline HDZ” vs. “architectural shingles” vs. “30-yr shingles” — call and pin each to a brand/grade.
- Surface the exclusions: ask each bidder the same question — “what happens to the price if you find rotted decking / old wiring / hidden mold?” The answers reveal who bid honestly and who bid to win.
- Add the missing costs to each bid: permits, dumpster, allowance shortfalls — so every column shows a complete number.
Only now do the prices mean anything — and check them against honest ranges: roofing, HVAC, windows, flooring, foundation.
Step 2: Score on Six Factors (Price Is Only 30%)
| Factor | Weight | What scores high |
|---|---|---|
| Normalized price | 30% | Within the honest range — not the lowest number |
| License + insurance verified | 20% | State lookup clean, certs from the insurer |
| Scope completeness | 15% | Itemized everything, named the exclusions, priced the what-ifs |
| Warranty | 15% | Written workmanship warranty (2+ yrs trades, 5–10 roofing), separate from manufacturer’s |
| References & track record | 10% | Reviews older than 18 months, local jobs you can drive past |
| Communication | 10% | Showed up on time, answered the decking question straight, no pressure tactics |
Score each bid 1–5 per factor, multiply by weights, highest total wins. It takes 20 minutes and it has a specific superpower: it catches the bid that’s cheap because it’s missing things.
What Is a Too-Low Bid Telling You?
A bid 25%+ under the others (after normalizing) has exactly four explanations: the contractor missed something (their mistake becomes your change order), plans cheaper materials/labor than quoted, is buying the job to fill a schedule gap (the one benign case — verify timing claims), or is running the low-ball-then-extras playbook. Ask one question: “Walk me through how you got to this number when two other bids came in at $X.” A confident line-by-line answer is reassuring; “we just want your business” is not. Then re-verify deposit terms — low bid + big deposit is the classic vanish setup.
Step 3: Decide and Close
- Winner ≠ end of negotiation: a fair ask is matching one line item (“B included gutter guards at this price — can you?”) — see negotiation scripts
- Tell the losers honestly and briefly; you may want them next year
- Lock everything into the written contract: normalized scope, named materials, payment milestones, warranty
- Just got your bids? Share the numbers anonymously — your data points calibrate these guides for the next homeowner
Frequently Asked Questions
How many bids should I get for a home project? Three written, itemized bids for anything over ~$1,000 — two minimum for mid-size repairs, more adds little beyond confusion. Under $500, one vetted handyman quote is usually sufficient.
Should I just take the middle bid? No — “middle” is only meaningful after normalizing scope. A middle bid with weak warranty and unverified insurance loses to a slightly higher bid with both. That’s why the framework weights price at 30%.
Is it okay to show one contractor another’s bid? Share the number and scope when asking for a match; don’t hand over a competitor’s full document (their pricing structure is their work product). Honest signaling, not document swapping.
Why is one bid so much cheaper than the others? Missed scope, downgraded materials, schedule-gap pricing, or the low-ball-then-change-order play. The “walk me through your number” question separates them — and the answer’s quality is itself a data point.
How long are contractor bids valid? Commonly 30 days, sometimes less in volatile material markets. A bid that “expires today” isn’t a deadline, it’s a pressure tactic.
Last updated: June 10, 2026. Sources: cost ranges per our BLS-anchored guides; FTC contractor-hiring guidance; state licensing lookups per our verification directory. This article is consumer information, not legal advice.