By The New Flat Rate
When a customer says "that's too expensive," the worst thing a technician can do is drop the price. What sounds like a price objection is almost always something else — a lack of trust, uncertainty about value, or a customer who wasn't given enough options to choose from. Below are six real technician scripts for handling that moment without discounting or losing the sale.
Every experienced contractor has heard it. You finish the diagnosis, present the quote, and the customer's face changes. "Wow, that's a lot." "That's way more than I expected." Or the classic: "that's too expensive."
The instinct is to defend the price, apologize for it, or start discounting. All three lose the job.
Here's what's actually happening. "Too expensive" is rarely about the dollar amount. It's about the customer feeling unsure — about the value, about the necessity, about whether they have any control in the decision. The answer isn't a lower price. It's a better conversation.
Related Reading: HVAC Sales Tips: 7 Proven Techniques to Close More Jobs in 2026
Before we dive in, here's how these scripts are organized. Scripts 1–5 handle the most common versions of the "too expensive" moment — situations where the objection has already surfaced and the tech needs to save the conversation. Script 6 is different. It's the presentation The New Flat Rate teaches techs to use before the objection ever comes up — introducing the customer to options instead of a single number. Watch how the last script changes the entire dynamic.
What NOT to say: "Yeah, prices have gone up a lot..."
The script: "That's a totally normal reaction — most homeowners haven't had this kind of work done before, so there's no reference point. Let me walk you through what's actually driving the price and what you're paying for."
Why it works: You're validating their reaction without apologizing for the price. Then you're grounding the number in concrete value — parts, labor, warranty, expertise — so the price stops feeling arbitrary. Once they understand what they're paying for, "too expensive" often stops being the objection.
What NOT to say: "Well, you get what you pay for..."
The script: "I get it — price matters. Can I ask what was included in the other quote? Sometimes the numbers look different at first, but you're actually comparing two different scopes of work. I want to make sure you can make a fair comparison."
Why it works: You're not attacking the competitor or defending your rate. You're moving the conversation to scope, warranty, and what's actually included — which is almost always where the real difference lives. Low-ball competitor quotes usually leave out something material.
What NOT to say: "Sure, take all the time you need."
The script: "Absolutely, take the time you need. Before I head out — is there a specific piece of this you're unsure about? Sometimes I can save you a callback if we clear up the question right now."
Why it works: "Let me think about it" is almost always a masked objection — usually about price or trust. Asking a specific, low-pressure follow-up question surfaces the real hesitation while you're still in front of them. Half the time, you'll solve the actual concern on the spot.
Related Reading: The HVAC Sales Process Built to Close More Jobs
What NOT to say: "How much did you want to spend?"
The script: "That's a fair question — what do you like about what we're looking at?" (let them answer) "Okay, so what should we do?"
Why it works: Instead of defending the price, you're redirecting the customer to articulate what they actually value. When customers hear themselves say why they like the work, they talk themselves into it — and the conversation doesn't turn into a back-and-forth on the number.
What NOT to say: "Just let me know what they say."
The script: "That makes complete sense — you want to make this decision together. Do you have five minutes to call them right now? I'd love to walk you both through it at the same time so nothing gets lost in translation."
Why it works: "I need to talk to my spouse" is a legitimate delay, but it's also where a huge percentage of jobs quietly die. Offering to loop the other person in immediately keeps the momentum alive without any pressure.
What NOT to say: Handing over a single price and waiting for a yes or no.
The script: "[Customer name], do you have a minute? I'm a little concerned — I found a fault in the [system], but don't worry, I've got some options for you. Would you like to go over them now? My top option is the most premium AND it's the most permanent. It allows me to take my time, do a great job, and give you a better warranty. If we do that option, I'll [read the top option's scope]. If we do all of that, it's $[price]. But we do have these other options too..."
(As you say this, hold the menu so you can read it but the customer can't see it yet — then show it to them and walk through the other options from top to bottom.)
Why it works: This is the difference between fighting objections and structuring the conversation so objections don't come up in the first place. The customer never faces a single number to accept or reject. They're introduced to the top-tier option first, given the confidence that other options exist, and then shown the full menu. From the very first moment, they feel in control. They're choosing between levels of service — not deciding whether they can afford your one price.
Once your techs use this presentation on every call, "too expensive" becomes rare. And when it does surface, it's usually a real budget conversation — not hesitation about being sold to.
That's why this script matters more than the other five combined. The first five help you win specific moments. This one changes the moment entirely.
None of them argue about price. None of them discount. None of them apologize.
But notice something about Script 6. The first five scripts help you handle a moment. Script 6 changes what the moment even is. And that's the deeper truth most contractors miss: top-performing techs don't handle objections better — they structure the conversation so the objection almost never comes up. When a customer feels like they're choosing between options they understand, "too expensive" rarely surfaces. When they feel like they're being sold to on one number, it surfaces every time.
Scripts help in the moment. But scripts alone can't fix a systemic problem. Telling a tech to "offer a different level of service" only works if there's actually a different level already priced, packaged, and ready to present. That's why menu pricing quietly outperforms scripts on their own — every service call has pre-built options, the customer picks the level that fits, and the tech isn't defending a number. They're guiding a decision. If you want the deeper thinking on why menus outperform scripts, this piece on HVAC sales training breaks it down.
"That's too expensive" isn't the end of a sale. It's the moment your process actually starts.
The technicians who close consistently at high tickets aren't the ones with the lowest prices — they're the ones who never make the customer choose yes or no on a single number. They give the customer choices. They surface the real concern behind the objection. They hold their pricing with confidence.
Do that on every call, and "too expensive" stops costing you jobs.
Want the full breakdown of the pricing mistakes most technicians make in the field? Grab the FREE Top 3 Pricing Mistakes 80% of Techs Make — the exact patterns that cause the "too expensive" objection to keep showing up.