All articlesSales

How Do You Explain an Estimate Range Without Making a Firm Promise?

The Trusso TeamOctober 31, 20267 min read

Name the range out loud — for example, "this runs $3,800 to $5,200" — then say plainly what would put the job at the low end and what would push it to the high end. Put both the range and the conditions in writing on the estimate itself, not just in conversation, so there's no dispute later about what you actually said.

That's the whole method. The hard part isn't the math, it's resisting the urge to either round down to a single number to close the sale or hide behind "it depends" with no specifics. Both of those create problems. A single number gets treated as a promise. A vague "it depends" sounds like you don't know your own trade.

{"h2": "Why customers push for a single number"}

Customers ask "so what's it going to cost" because they're comparing you against other bids, checking it against a budget, or just want certainty in a process that feels uncertain. None of that is unreasonable. But giving a firm number before you've opened a wall, pulled a panel, or measured the actual square footage is how contractors end up eating costs they never priced in.

The fix isn't refusing to answer. It's answering with structure: a range tied to specific, visible conditions, not a shrug.

{"h2": "The range vs. the ballpark"}

These get used interchangeably and shouldn't be. A ballpark is a rough number you give with almost no information — someone describes a job over the phone and you throw out "probably $2,000 to $4,000" so they can decide whether to book a visit. A range tied to a written estimate is different: you've seen the job, measured what you can measure, and the spread reflects specific unknowns you can name.

If you want the full breakdown of when each applies and how to word them differently, see what's the difference between a ballpark number and a written estimate. The short version for this post: never let a ballpark get treated like a committed range. Say the word "ballpark" out loud when you give one, and say "this estimate is good based on what I can see today" when you give a range.

{"h2": "What actually moves the number"}

A range without reasons is just a guess with two endpoints. Customers accept ranges fine when you tell them exactly what decides which end they land on. That means naming the specific, checkable things — not vague hedges like "depends on complexity."

{"ul":["What's hidden until you open something up — rot behind siding, galvanized pipe behind drywall, wiring that doesn't match code","What the customer hasn't decided yet — fixture grade, paint sheen, tile selection — where the material cost swings the total","What depends on site access — can the dumpster get placed where you need it, is there parking for the crew, is there an elevator","What depends on someone else's work — the electrician's rough-in date, whether the permit gets approved on the first pass","How much of the structure you can actually inspect before starting — slab, foundation, roof deck under existing shingles"]},

Pricing those unknowns realistically — not padding the range to cover every imaginable scenario — is a separate skill. If you want the mechanics of pricing work you can't fully see yet, how do you estimate a job you've never done before covers how to build a number you can defend. And if swinging material costs are part of why your range needs to be wide, how do you price a job when material costs keep changing has wording specific to that.

{"h2": "Wording that holds up later"}

The goal is language that's specific enough to be useful and honest enough to hold up if the job lands at the high end and the customer pushes back. A few lines that work across trades:

{"ul":["\"This job runs $X to $Y. You'll land near $X if the subfloor underneath is solid. If we find rot once we pull it up, that's what pushes it toward $Y — and I'll show you the damage before doing any of that work.\"","\"The spread here is mostly the tile. Standard ceramic puts you near the low end. If you go with the porcelain plank you liked, add about $Z to the total.\"","\"I'm quoting $X to $Y because I can't see behind that panel without opening it. Once it's open, I'll know within $200 which end you're on, and I'll tell you before I keep going.\"","\"This isn't a not-to-exceed number — it's a range based on two site conditions I can't confirm until we start. I'll put both conditions on the estimate so it's written down, not just something I told you.\""]},

Notice what each one does: states the range, names the specific condition that decides the end, and commits to telling the customer before the cost moves. That last part matters more than the range itself — a customer who gets warned before a cost increase rarely disputes it. A customer who finds out after the invoice arrives, does.

{"h2": "Put it on paper, not just in the conversation"}

Verbal ranges get remembered as whichever number the customer liked better. Write the range and its conditions directly on the estimate document — a line like "Estimate: $3,800–$5,200. Final price depends on subfloor condition found after demo; customer will be notified before work proceeds if cost exceeds $4,500" does more to prevent a dispute than any conversation will. For the specific language to use when a customer reacts to the high end of that range, see what should a contractor say when a customer thinks the estimate is too high. And for the broader question of whether to even quote a range before you've seen the job in person, should a contractor give an estimate over the phone walks through when that's appropriate and when it isn't.

{"h2": "Where this gets written down automatically"}

The reason ranges turn into arguments is usually that the conditions lived in a text message or a verbal conversation nobody can point back to. Trusso estimates let you attach notes and conditions directly to line items, so the range and the reason for it travel with the document the customer actually signs — not a separate conversation you're relying on memory to back up. It won't decide where in the range a job lands, but it makes sure the customer saw the conditions in writing before work started, which is most of what prevents the fight later.

{"faq":[{"q":"Is it unprofessional to give a range instead of a flat price?","a":"No — a range backed by specific reasons reads as more professional than a flat number guessed before you've seen the full scope. What reads as unprofessional is a vague range with no explanation of what moves it, or a range that keeps changing without a stated reason."},{"q":"How wide should an estimate range be?","a":"Wide enough to cover the unknowns you actually can't see yet, not wide enough to cover every scenario you can imagine. A 15-25% spread between low and high is typical for jobs with one or two real unknowns, like what's behind a wall. If your range is wider than that, it usually means you need more information before quoting at all."},{"q":"What if the customer only wants to hear the low number?","a":"Say the high number out loud too, and repeat the condition that triggers it. Customers who only remember the low number usually do so because the contractor said it louder or said it last. State both numbers with equal weight and put both on the written estimate."},{"q":"Should I put a not-to-exceed cap on the range instead?","a":"Only if you're confident you can absorb the risk between your estimate and the cap. A not-to-exceed number functions like a firm promise with extra steps — if you blow past it, you're eating the difference. A stated range with named conditions protects you better unless the job is simple enough that there's genuinely little that could go wrong."},{"q":"Does giving a range hurt my close rate?","a":"Not usually, as long as the range comes with reasons. Customers are more wary of a suspiciously precise single number on a job with obvious unknowns than they are of a reasoned range. What hurts close rate is a range with no explanation, which just reads as the contractor not knowing the job."}]}

Run your business the simple way

Try Trusso free for 14 days and send your first estimate in minutes.

Start 14-Day Free Trial