Skip to content
BizBinder
Early access open Get early access

Guide

Quoting · 7 min read

Holding your price — what to do when a client says it’s too much

A client who says your price is too much might have a real budget limit, or might just be seeing whether you’ll move. Ask which one it is before you touch the number, then pick from four honest responses — one of them isn’t a same-scope discount.

The short answer

When a client says your price is too much, ask what number they had in mind before you change anything. That tells you whether it’s a real budget limit or a test. Then choose one honest response: hold the price and explain what it covers, cut the scope to match their number, change the payment terms, or decline. Never discount the same scope twice, and put every quote in writing with an expiry date.

Every job you quote can meet the same four words: that’s too much. It shows up as a flat statement, a pause on the phone, or a text asking for “a bit off.” The sentence itself doesn’t tell you much — a client with a genuine budget limit and a client testing whether you’ll move both say exactly the same thing. What you do in the next minute decides whether you keep your price, your margin, or the job.

Find out what kind of “too much” this is

Before you touch the number, ask one direct question: what were you expecting to pay? A client with a real budget limit will usually give you an actual figure — a total from another quote, or a number someone told them not to go past. A client who’s just testing your price tends to stay vague, asking for “a bit less” or “your best price” without ever naming one.

That answer changes what happens next. A real budget limit is a scope question wearing a price complaint — the job itself may need to shrink to fit the number. A test is a different conversation entirely: it’s about whether you believe your own price enough to hold it.

Four honest responses

Once you know which one you’re dealing with, pick from four real options — not a reflex discount:

  • Hold the price, and say what it covers. Walk through what’s actually in the number — materials, the hours, insurance, the parts of the job that don’t show up on a cheaper quote. This is a fixed price, and the number you quoted is the number you’re standing behind, not an opening offer.
  • Cut the scope to fit the number. Drop a line item, use a cheaper material, or split the job into two visits, and quote the smaller version at their number. The free discount check tool works out exactly how much cost you’d need to remove to hold the same profit at the lower price.
  • Change the terms, not the total. Offer a deposit, a payment plan, or staged invoices across the job instead of moving the price itself. A client short on cash this month isn’t always asking for less money overall — sometimes they’re asking for less of it due at once.
  • Decline. If none of the above works for either of you, say so plainly and let the job go. A price you can’t actually deliver at isn’t a job worth taking just to avoid an awkward conversation.

Never discount the same scope twice

If you cut the price once, that’s a decision about this job. It isn’t a new standing rate for every job after it. A discount given once as a favor and repeated without being asked quietly becomes the number the client expects going forward, and pulling it back later reads as a price rise even when it’s really just correcting a mistake.

The same rule applies to a client who comes back and asks again on a job you already priced fairly. Cutting the same finished scope a second time doesn’t win goodwill — it tells the client the first price had room in it all along, and invites them to ask a third time.

Put the price in writing, with an expiry date

Most price pushback shows up because a number lived in an email thread or a phone call, not on paper. A written quote with a stated validity date settles the question before it comes up — the client agreed to this price, for this scope, by this date, and anything outside that is a new conversation rather than a renegotiation of the old one.

One thing to watch for

A client asking “can you do it for cash” is usually asking for a discount, not offering you one — see the price-pushback scripts for a plain, ready-to-send answer to that exact question, and to the rest of the ways this conversation opens.

Common questions

How do I tell if the customer has a real budget limit?

Ask directly what number they were expecting to pay. A real limit usually comes with an actual figure — a total from another quote, or a number someone gave them to stay under. A client who’s just testing your price tends to stay vague, asking for “a bit less” or “your best price” instead of naming one.

Is it ever okay to just give a straight discount?

Only if the price was wrong to begin with, not as a reaction to pushback. Cutting a fairly priced job comes straight out of your own pay, and it rarely stops the same client asking again on the next job.

Should I match a cheaper quote from someone else?

Match your own price, not someone else’s. A cheaper quote can mean less insurance, lower-grade materials, or a smaller scope — ask what’s actually included before you assume it’s the same job at a lower rate.

What if I already agreed to a lower number by accident?

Honor it for this job, then fix the process rather than the relationship for next time. Give every quote a written validity date and a clear scope, so a number said in passing can’t quietly become the price you’re stuck at.

What if a repeat client asks for a discount on every job?

Treat a request that keeps coming back as a rate conversation, not a one-off favor. Either your standing rate for that client needs to change on purpose, or the discount needs a real reason attached — a bigger volume of ongoing work, for instance — instead of quietly becoming what they expect every time.

Want the agreed price already on the job?

BizBinder won’t hold the line on price for you — that conversation is still yours to have. What it does is keep the job record and its price together from the moment you land on a number, so the invoice you send afterward starts from what was actually agreed, not a blank line you have to rebuild from memory.