HomeConsumer Protection

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):

  1. 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.
  2. Match materials by name: “GAF Timberline HDZ” vs. “architectural shingles” vs. “30-yr shingles” — call and pin each to a brand/grade.
  3. 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.
  4. 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%)

FactorWeightWhat scores high
Normalized price30%Within the honest range — not the lowest number
License + insurance verified20%State lookup clean, certs from the insurer
Scope completeness15%Itemized everything, named the exclusions, priced the what-ifs
Warranty15%Written workmanship warranty (2+ yrs trades, 5–10 roofing), separate from manufacturer’s
References & track record10%Reviews older than 18 months, local jobs you can drive past
Communication10%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

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.