"That's more than I expected" is not a rejection. It's an invitation to have a real conversation about what the customer actually needs versus what they assumed they'd pay. The contractors who lose this job are the ones who either cave on price immediately or get defensive and start re-explaining line items nobody asked about. The ones who win treat it as a scoping conversation, not a pricing argument.
Here's the short version: never cut your number just to make the number feel better. Change what's included until the price and the scope match what the customer is actually willing to spend. That single shift — from discounting to re-scoping — is the difference between protecting your margin and training every future customer to expect a markdown.
{"h2": "Why discounting is the wrong first move"}
When you drop your price without changing anything else, you teach the customer two things at once: that your original number had fat in it, and that pushing back works. Both of those cost you on this job and the next one. If you knock $800 off a $4,200 estimate just because someone made a face, you've signaled the real price was $3,400 all along — so why would they ever accept your first number again, or refer you as someone who prices fairly?
Discounting also doesn't fix the actual problem, which is usually one of three things: the customer has a different budget in mind, they don't understand what's driving the cost, or they're comparing your number to a much thinner quote from someone else. A flat discount addresses none of that. Re-scoping addresses all of it, because it forces the conversation into specifics instead of staying stuck on a single number.
{"h2": "Find out what \"too high\" actually means"}
Before you offer anything, ask a direct question: "Help me understand — is this more than you budgeted, or is there a specific part of the job you'd want to rework?" That question alone splits the conversation into two very different paths, and most contractors skip straight past it.
If the customer has a hard number in mind — say they expected $3,000 and you quoted $4,500 — you're not negotiating a discount, you're deciding together what $1,500 of work to remove. If they're unclear on what's driving the cost, you walk them through it: materials, labor hours, permits, disposal, whatever applies. A lot of sticker shock disappears once someone understands that a $4,500 bathroom remodel includes demo, plumbing rough-in, tile, fixtures, and two coats of paint, not just "redo the bathroom."
{"h2": "The script: explain what's included, then offer options"}
Once you know what's driving the pushback, walk it back to the scope. A version that works in person or over the phone:
"Totally understand — let me break down what's in this number so you can see where the cost is coming from. [Walk through 3-4 major cost drivers in plain language.] Now, if the budget's the issue, there are a few ways we can bring this down without cutting corners on the parts that matter most. Want me to put together some options?"
That last line matters. You're not promising a lower price — you're promising options. This keeps you in control of the conversation instead of reacting to their number.
{"h2": "Give them good, better, best — not one discounted number"}
The fastest way to resolve sticker shock without eating your margin is to hand the customer three versions of the job instead of one. For a fence job, that might look like:
{"ul": ["Good: pressure-treated pine, standard post spacing, no gate hardware upgrade", "Better: cedar, same layout, upgraded self-closing gate hinges", "Best: cedar with a stain package and decorative post caps included"]}
For a paint job it might be fewer coats or one room deferred to next year. For a roof, it might be architectural shingles instead of premium, or doing the tear-off in phases. The point isn't to make the job worse — it's to make the price match a real version of the job that still gets built correctly. Customers almost always pick the middle option, and you've kept your rate per hour and per square foot exactly where it needs to be.
If you're building these estimates from a price book instead of guessing on the spot, this whole exercise takes minutes instead of a return trip to redo the math. That's part of why free calculators like the AI roofing estimate generator and the AI fence estimate generator exist — so you can rough out a revised number on the spot, anchored to real unit costs, instead of promising to "get back to them with something cheaper."
{"h2": "What to say when they compare you to a cheaper quote"}
This is different from a budget objection, and it needs a different response. If the customer says "the other guy quoted $2,800," don't match it and don't trash the competitor. Ask what's included in that number. Nine times out of ten, the cheaper quote is missing permit fees, cleanup, a warranty, or is using lower-grade materials than what you specced. Say it plainly: "I can't speak to what's in their number, but here's exactly what's in mine, and here's why I build it that way." Then offer to walk through their quote side-by-side if they have it in writing. Most won't take you up on it, but offering shows confidence instead of defensiveness.
If after that comparison they're still leaning toward the cheaper option, let them go. Chasing a price war against a quote you haven't seen is a losing position every time.
{"h2": "When to walk away"}
Not every estimate objection is solvable, and you shouldn't try to solve all of them. Walk away when:
{"ul": ["The customer wants the full scope at a price that doesn't cover your real costs, not a trimmed-down version at a fair price", "They keep pushing after you've already offered good/better/best options", "They ask you to leave things off the invoice or quote a lower number \"for the paperwork\"", "The back-and-forth has gone on for multiple rounds with no movement on their end"]}
A polite exit line works better than silence: "I want to make sure whoever does this job for you does it right — if this budget is firm, I may not be the best fit, but I'm happy to send over the scaled-back version we talked about if you want to reconsider." That keeps the door open without you chasing a job that would lose money the moment the first unexpected cost shows up.
{"h2": "Keep the conversation moving after the estimate goes out"}
A lot of "too high" conversations don't happen in person — they happen (or don't happen) over text and email after you've already left the site. If a customer goes quiet instead of pushing back directly, that's its own problem with its own fix; see estimate follow-up templates that win pending jobs for the exact messages to send instead of just re-sending the same PDF. And if the objection comes up before you've even written the number — during the first call, when someone asks what something will cost before you've seen the job — that's a separate script worth having ready too; it's covered in what to say when a customer asks how much will it cost.
{"h2": "Where Trusso fits in"}
The re-scoping conversation above only works fast if you can actually rebuild the estimate on the spot instead of promising to email something later. Trusso's AI estimating is anchored to your own price book, so when a customer wants a good/better/best breakdown, you can generate the alternate version in the room, show them the number, and send it before you leave the driveway. That's the difference between closing the job that afternoon and losing it to whoever responds first with a revised quote. Trusso runs flat at $29, $59, or $99 a month depending on crew size, with no per-user fees and a 14-day free trial, so there's no real cost to testing whether faster re-scoping actually wins you more of these conversations.
Run your business the simple way
Try Trusso free for 14 days and send your first estimate in minutes.
Start 14-Day Free TrialKeep reading
Estimate Follow-Up Templates: 7 Messages That Win Pending Jobs
Copy-paste text and email scripts for every stage of a pending estimate — day 2, day 5, day 10, price objections, lost jobs, and the seasonal re-engage that brings dead leads back.
Read articleLead CaptureWhat Happens to Calls a Contractor Doesn't Answer?
A missed call doesn't sit quietly in voicemail waiting for you. Here's the chain reaction it sets off — and the funnel math that shows what it actually costs.
Read article