The quote that comes in far below everyone else's

A significantly lower quote is not a deal. It's almost always a signal that something is being left out. Maybe it's the cost of permits. Maybe it's proper disposal of the old materials. Maybe it's the quality of underlayment or the shingle grade. Maybe it's labor from a crew that's not covered by proper insurance.

When you ask a contractor to explain a number that's significantly lower than other quotes, the answer tells you everything. A good contractor can walk you through every line and explain exactly where the difference comes from. One who can't, or who deflects, is not someone you want on your roof.

No breakdown of what's included

A professional estimate shows materials, quantities, labor, disposal, and permit costs as separate line items. If a quote is a single number or a paragraph description without specifics, you have no way to compare it with other quotes or verify that the full scope is covered.

Ask for a line-by-line breakdown. A legitimate contractor provides one without hesitation. If they push back on this request, that's itself a red flag.

Roofing estimate documents laid out on table

A complete estimate has line items for materials, quantities, labor, disposal, and permits separately. Anything less makes comparison impossible.

No mention of permits

Most full roof replacements require a permit. A contractor who says you don't need one, or who suggests skipping it to save money, is asking you to carry the liability. An unpermitted roof can affect your homeowners insurance coverage, complicate a future sale, and make it harder to file claims down the road.

Permits typically cost $150 to $500 depending on your municipality. A contractor who excludes them to lower their number is passing risk to you, not saving you money.

Ask specifically whether permits are included and who pulls them. The contractor should pull the permit, not the homeowner.

Pressure to sign before you're ready

A legitimate contractor doesn't need you to sign the same day they give you a quote. "This price is only good until tonight" or "I have another job that will take this crew if you don't commit now" are pressure tactics. They're not accurate descriptions of how roofing businesses work.

Take the time you need to compare quotes and ask questions. Any contractor who makes you feel bad about doing that is not someone you want doing a $10,000 to $20,000 job on your home.

A large deposit before work starts

Deposits on roofing jobs are normal. Asking for 50 percent or more of the full contract price before any work begins is not. A reasonable deposit covers materials, which is typically 30 to 40 percent of the total at most. A contractor who wants most of the money upfront has removed most of their financial incentive to actually finish.

In many jurisdictions, there are legal limits on how much a contractor can require as a deposit. Look up your local rules before signing. If the requested deposit exceeds what's allowed, that's not just a red flag. It's illegal.

No license number or proof of insurance

Ask for both before you sign anything. A licensed contractor can give you their license number in under a minute. If they hesitate or give you a number that doesn't verify in your state's contractor lookup database, stop there.

For insurance, ask for a certificate of insurance that names you as an additional insured. If someone on their crew is injured on your property and the contractor isn't properly insured, you may be liable. This is not a small issue.

Anything verbal that should be written

If the scope of work, the materials being used, the timeline, or the payment schedule has been discussed verbally but isn't in the written contract, it doesn't exist for practical purposes. A contractor who resists putting things in writing is a contractor who's leaving themselves room to do things differently than you agreed.

Everything goes in writing. The full scope. The specific materials. The start date. The payment schedule. What happens if there are delays. If it matters to you, it needs to be in the contract before you sign it.