A prospective customer can understand what you do, believe you are good at it, and still have no idea whether the purchase is roughly $300, $3,000, or $30,000.
“Contact us for pricing” makes someone start a sales conversation just to find out whether the job is roughly in their budget.
Sometimes that is avoidable. Sometimes it is not. A tightly bounded service may support one public price; a renovation, migration, multi-location rollout, or messy repair job may genuinely need discovery before the price can be known.
The useful question is not “Should I show prices?”
It is: What is the most specific pricing information I can honestly defend before I talk to the customer?
Do not invent precision you do not have. Do not hide information you already know.
Pricing is a spectrum, not a yes-or-no choice#
Between one exact price and no useful price information, a service can show:
- an exact price;
- a real starting price;
- a meaningful normal range;
- representative project examples; or
- the major factors that determine a custom quote.
You are not trying to quote the job from the website. You are trying to tell someone enough to know whether contacting you makes sense.
Use an exact price when the offer is actually bounded#
If the service has stable work, stable limits, and clear exclusions, publish the price.
A fixed-price website review, standard maintenance visit, defined inspection, or other bounded service does not become more premium because the number is hidden behind a form.
If you know the price is $750, and the buyer will pay $750 for the thing you are describing, say $750.
The important part is making the boundary equally clear. An exact price is defensible when the buyer can tell what that number covers: quantity, time, location, revision limit, service area, or whatever else keeps the offer stable.
Do not publish an exact number for work you routinely reprice once you see the real situation. That is not clarity. It is a placeholder wearing a price tag.
Use “starting at” when the minimum is real#
A starting price works when there is a genuine floor but the final effort varies.
Maybe a service starts at $1,500 for one location and increases with additional locations. Maybe a small migration has a known minimum, while larger or messier systems require more work. Maybe the first phase is consistently priced even though implementation beyond it is not.
The test is simple: Can a normal customer realistically buy the service at or near the stated starting price?
If almost every serious inquiry ends up at $4,000, publishing “Starting at $995” is not useful calibration. It is an artificially low doorway.
A starting price should prepare the buyer for the conversation, not make the real quote feel like a correction.
If you know the minimum, tell people the minimum. Then name the one or two variables most likely to move the price upward.
Use a range only when the range means something#
Ranges are useful when most projects fall inside a recognizable band.
They are useless when the range is wide enough to contain almost any outcome.
“Most projects are $2,500–$4,500, depending mainly on the number of service pages and how much existing copy can be reused” gives a buyer a working model.
“Projects range from $500–$20,000 depending on your needs” technically contains pricing information. Practically, it tells the buyer almost nothing they did not know before.
A useful range needs two things:
- a normal band that reflects real work; and
- a short explanation of what tends to move a project toward the low or high end.
You do not need to document the whole estimating system. If size, condition, locations, access, materials, or migration complexity explain most of the movement, say that plainly.
The goal is calibration, not a public estimating worksheet.
Use representative examples when one range gets silly#
Some services vary too much for one range to stay useful, but the business still knows what common project shapes tend to cost.
That is where representative examples can do better work.
A contractor might show a smaller repair, a typical room-scale project, and a larger multi-room project with approximate prices. A consultant might show a focused diagnostic engagement beside a broader implementation example. A web firm might show a small service-business site and a more involved migration with different content and integration needs.
These are not fake Bronze, Silver, and Gold packages.
The examples should describe real kinds of work the business actually sells, with enough context to explain why the prices differ. They help the buyer say, “Mine is probably closer to that one.”
Do not invent public tiers just because three pricing cards look tidy. If the work is not packaged that way, the website should not pretend it is.
When a quote is genuinely required, explain why#
Sometimes the honest website price is still: quote required.
That can be completely reasonable. The mistake is stopping there.
“Every project is different” can be true without meaning you know nothing about what makes projects expensive.
If you cannot publish an exact price, minimum, range, or representative examples without guessing, explain the variables that prevent you from doing it.
For example:
- the size or existing condition is unknown;
- access changes the labor required;
- the number of locations changes setup and coordination;
- materials vary materially by the job;
- an existing system must be inspected before migration effort can be known.
Choose the few variables that actually shape the quote. Do not dump an estimating manual onto the page.
A buyer may not leave with a number, but they should understand why you need more information before you can price the job and what you need to learn.
That is more useful than a button that says “Contact us for custom pricing” with no explanation behind it.
What if publishing the price scares people away?#
It might.
But “they left after seeing the price” describes at least two different problems.
The first visitor was not a realistic buyer at that price. If the service starts around $5,000 and their budget is $500, hiding the number does not create a $5,000 customer. It creates a conversation that discovers the mismatch later.
The second visitor might be able and willing to pay, but does not yet understand why the work costs that much. That is a value, fit, proof, or explanation problem.
Those deserve different responses.
Do not assume that forcing both people to ask for a quote fixes either one. The broader service-page decision guide covers the surrounding questions of fit, process, proof, and next step. Pricing should support that decision, not replace the rest of the page.
Stop at the first level you can honestly defend#
When you review a service, move down this list until the answer becomes yes:
- Can I state the exact price honestly? Publish it.
- If not, do I have a real minimum? Publish the starting price and what usually moves it.
- If not, is there a meaningful normal range? Publish the range and the main variables inside it.
- If not, can representative project examples give useful calibration? Show a few recognizable project shapes.
- If none of those would be honest, can I explain what determines the quote? Name the important variables and the next step required to price the work.
Then stop.
More specificity is not automatically better. False precision can be as misleading as no information at all.
The useful target is the most specific number or explanation you can give without having to walk it back in the sales conversation.
Take the service closest to revenue and look at what the website says about price today. If you know more than you are telling buyers, move one level up the ladder. If the current number pretends to be more certain than the work really is, move one level down and explain the variables.
A buyer does not always need the final price before contacting you. They should not have to contact you to learn everything you already know.
