Publish a starting price. Service businesses that show a "from $X" anchor or a three-tier range qualify better leads than those that hide pricing entirely. Reserve pure "Contact Us" for genuinely scoped work where any published number would mislead.
That's the recommendation. The reason most businesses land on the other answer isn't strategy — it's fear. Fear that a number on the page scares off a lead who might have paid more. Fear that a competitor screenshots it. (They already know your prices, by the way. Clients tell them.) The fear is understandable, and it's usually costing more leads than it protects.
What does hidden pricing actually signal?
When visitors can't find pricing anywhere, they don't shrug and reach out to ask. Most assume a worst-case number and leave. Nielsen Norman Group's research on B2B buyer behavior keeps finding the same interpretations of hidden pricing: either "this is going to be expensive" or "it's negotiable, and I'll get a worse deal than someone savvier."
Neither reading helps you, and the people acting on them include buyers who could have afforded you comfortably. Worse, this cost is invisible in your analytics — the visitors it repels never become leads, never fill out a form, never show up anywhere you can count them. They just bounce, and the "Contact Us" strategy gets credit for being fine.
To be clear, that doesn't make full price transparency mandatory for everyone. It makes the choice a real trade-off — one worth making deliberately rather than defensively.
When is "Contact Us" the right call?
Some situations genuinely justify keeping numbers off the page.
When pricing varies so much by scope that any single number would mislead — a custom web application might run $15,000 or $150,000 depending on complexity, and publishing either figure distorts expectations in one direction or the other. (Our breakdown of what a website redesign actually costs shows how wide those bands get once scope enters the picture.)
When you sell high-consideration, relationship-driven work where the discovery conversation is part of the value itself — enterprise consulting, where understanding the client's situation before quoting is a necessity rather than a sales tactic.
When competitive dynamics in your specific market are real, and a public number would materially hurt you in head-to-head bids.
Even then, though, naked "Contact Us" is the weakest version of the strategy. "Projects typically start at $8,000" gives visitors enough to self-qualify without committing you to anything. A range respects both your flexibility and their time.
Should you just publish the number?
For most service businesses — and especially anything resembling a productized service — a published starting price or range converts better than hiding everything.
Think through who hiding actually filters. It doesn't deter the tire-kicker; asking costs them nothing, so they reach out anyway. It deters the price-sensitive good-fit lead who assumes they can't afford you and never asks. You've built a filter that passes the people you wanted to screen out and blocks the people you wanted to reach. That's the filter working backwards.
And if the worry is that a published number makes you look cheap — that's a positioning problem wearing a pricing costume. The fix is better framing around the number, not concealing it.
Anchoring: whoever shows the first number sets the frame
Anchoring is among the best-documented effects in pricing psychology: the first number a person sees shapes their judgment of every number after it, even when the first number is barely relevant.
A $15,000 quote in isolation feels expensive. The same quote, seen right after learning that your top-tier custom builds start at $40,000, feels reasonable — possibly like a deal. Nothing changed except the order of information.
Ways to use this honestly:
- Show the full range, not just "starting at." If most clients spend more than your lowest listed figure, a lonely "from $2,500" is manufacturing sticker shock for later in the conversation. The range prevents it.
- Lead with your most comprehensive tier in a tiered layout and let the eye travel down. The smaller options benefit from the contrast.
- Anchor against the cost of the problem, not just competitors. A $200/month CRM sits differently next to "the average sales team loses 15% of its leads to poor follow-up" than it does alone on a pricing table. The same move works against the cost of the alternative — our technical partner vs. full-time developer cost math is an anchoring argument as much as a hiring one.
None of this is manipulation, provided the numbers are true. It's choosing the context your true numbers are seen in — and if you don't choose it, the visitor's imagination will.
The middle tier is the recommendation, whether you say so or not
The classic three-tier layout — Basic, Standard, Premium — persists because it maps onto a durable decision bias: uncertain buyers pick the middle. It avoids the risk of underspending on missing features and the risk of overpaying for excess. The middle feels safe.
Which means your middle tier isn't one option among three; it's your de facto recommendation. Design it that way. Give it visual distinction — a highlighted border, a "Most Popular" tag, a slightly larger card. Price the top tier high enough to make the middle look sensible (steakhouses have run this play for years with one $200 tomahawk nobody orders), but keep it real: a top tier that actual clients actually buy does far more anchoring work than an obvious decoy. And keep the differences between tiers scannable — bold what changes between them, not everything. Three tiers of nearly identical bullet walls just outsources the comparison work to the visitor, and comparison work is friction.
Framing: same number, different size
$199/month feels smaller than $2,388/year (gym memberships have run on this arithmetic for decades). Identical commitment, different frame — and as long as the terms are clear, presenting the frame that matches how your buyer is already thinking isn't dishonest, it's translation.
For project work, the equivalent move is converting the number into what it buys. "$12,000 for a full site rebuild" is an abstraction competing against an internal budget line. "$12,000 for a site that produces qualified leads instead of one that just sits there" competes against the cost of the current problem — a fight it can actually win.
What belongs next to the price
Whichever model you run, a few things need to live near the number itself, because they govern whether it's believed:
Scope. Vague price plus vague scope equals maximum anxiety. Even a short list of what's included at each tier defuses the fear of hidden costs later.
A CTA sized to the commitment. "Buy Now" suits a $500 service; a $50,000 engagement needs "Schedule a Call." Mismatch in either direction creates friction — too aggressive for a big decision, too heavy for a small one.
Proof aimed at value-for-money. Not just any testimonial — one that speaks to the price being worth it. A specific outcome tied to a specific investment beats "great to work with" here every time.
A path into your process. For higher-consideration purchases especially, linking to your process page near the pricing answers the objection nobody types into a form: what actually happens after I commit?
Answer the objections before they're asked
A short FAQ under the pricing table catches the questions currently stopping clicks — without demanding the visitor reach out just to ask. The list writes itself: What exactly is included? Are there ongoing costs after the project? What if my project doesn't fit a tier? How long does this take? What happens when I need changes after launch?
If any of those makes you flinch because you don't have a good answer — that's worth knowing. It's a business problem to solve before it's a copywriting problem to phrase.
The takeaway worth keeping
A pricing page is a persuasion surface whether or not you designed it as one. Anchoring, tier structure, and framing are shaping how your number feels before any competitor comparison happens — the only question is whether you're directing that or leaving it to chance.
Publish or don't. Just make it a strategy decision, not a fear response with a strategy's haircut. And if you're building a landing page that has to justify a specific offer, get this structure right on day one instead of A/B testing your way toward it over a year — our guide to landing page best practices covers the surrounding page, not just the price block.
Not sure whether to publish your prices or keep them behind a conversation? We've built pricing pages both ways for different business models. Talk to us about which fits yours.