How to Compare Three Contractor Quotes
Three quotes for the same project rarely agree, and that is fine. What makes them comparable is the scope: the same size, the same material grade, the same extras. Once the scope matches, a published range shows whether a quote is in the normal band.
Step 1: write the scope down once
Before asking anyone, write the size and the material. For a deck that means area, decking material, railing, stairs, and whether an old deck comes off. Give every contractor the same sheet.
Step 2: put the quotes in one table
| Line | Quote A | Quote B | Quote C |
|---|---|---|---|
| Size and material | |||
| Removal and disposal | |||
| Permit (who pulls it, fee) | |||
| Start date and duration | |||
| Payment schedule | |||
| Warranty (labor, material) | |||
| Total |
Step 3: check against a published range
Worked example: a 16 by 20 foot (320 sq ft) pressure-treated deck in Salem. HomeGuide prices pressure-treated decks at $25 to $50 per square foot installed, labor $11 to $22. Salem is in the Boston-Cambridge-Newton wage area, where carpenters earn +24.2% against the US median, so the range is $8,850 to $17,700. Salem's schedule charges decks $0.40 per square foot with a $100 minimum: $128.
A quote well outside that band is a reason to ask what it includes, not proof that it is wrong. Full numbers are on the Salem deck cost page.
Step 4: confirm the permit yourself
The town building department says for free whether a permit is required. Fee schedules for 19 towns are linked from the town list and compared in permit fees by town.
Sources
- HomeGuide: Cost to build a deck (Feb 10, 2026)
- O*NET OnLine, Carpenters, New Hampshire local wages
- Salem Permit Schedule
Questions
Why get three quotes?
Two quotes can disagree without showing which is out of line; a third shows where the middle is. Comparing them only works when each quote prices the same scope.
Should the cheapest quote win?
Not on price alone. A low quote may leave out removal, disposal, permits or a material grade the others include; listing the scope line by line shows whether the quotes are for the same job.