Put the price on the page
The visitors who leave because they could not find a number never appear in your reports, which is exactly why hidden pricing survives.

It is late, and someone who is exactly right for your product is on your site for the first time. They read the homepage, nodding. They open a second tab to compare. Then they go looking for the number — the one thing they need before they can picture themselves saying yes — and what they find is a button that says "Contact us for a quote." They do not click it. They close the tab, and you never learn that they were there. In your analytics they are one anonymous session with a slightly above-average time on page, filed next to a thousand others.
That is the part that makes hidden pricing so easy to keep. The leads that arrive because someone was willing to book a call are visible, countable, and gratifying. The people who leave because they could not answer a simple question at eleven at night are invisible by construction. You are looking at one side of a ledger and concluding the ledger is healthy. Every argument for keeping the number off the page survives on that asymmetry, and it will survive for years unless you deliberately go looking for the other column.
The arguments themselves are not stupid, so it is worth saying them out loud. Competitors will see it — true, and they can also see it by asking a friend to request a quote, which takes them ten minutes. We will look expensive next to the cheap option — sometimes true, and worth knowing early rather than in month four of a sales conversation. Our pricing genuinely varies by customer — often true, and the real reason most companies stay quiet. But notice what "contact us" actually does to the visitor. It converts a private browsing decision into a social one. They now have to talk to a stranger, in a call they suspect is a sales pitch, just to find out whether you are in their universe at all. That is an enormous toll to charge someone in the first ninety seconds of knowing you.
a price you will not publish is a price you cannot test.
Run the trade as arithmetic, keeping in mind these are invented numbers meant only to show the shape. A thousand visitors reach the pricing page. Hidden: forty of them request a quote, because requesting is the only way forward, and a fair number are just curious. You spend real hours on those forty and close eight. Published: only twenty-five reach out, because the other fifteen answered their own question and self-selected out — but they self-selected on price, so the twenty-five who remain already know roughly what this costs and have decided it is plausible. Close twelve of those and you are ahead on customers while spending far less time on calls. Even if you close the same eight, you got there with fifteen fewer conversations. The published price did not just change conversion; it moved the qualifying work off your calendar and onto the page, where it runs for free while you sleep.
When the price really does vary
Most products that "can't publish a price" can publish something. A starting point: "from $400 a month." A range with the axis named, so the reader can place themselves: "$400 to $2,000 depending on how many locations you run." A worked example, which is the most persuasive and least used option: "a ten-person agency running three client accounts pays about $650." Or the honest floor, stated plainly: "we are usually not a fit under $1,000 a month." Any of these lets a reader answer the only question they were asking, which is not "what is the exact price" but "am I in the right building." An anchor beats silence, and a wrong-ish anchor beats silence too, because it invites correction instead of departure.
There is a second cost to the blank space that shows up in your other channels. If your ad promises something affordable and simple, and the page it lands on refuses to say a number, you have written a mismatch — the visitor arrives primed for one conversation and is handed a different one. That is the same failure as [an ad and a landing page that disagree](/blog/when-your-ad-and-your-page-disagree), except it is harder to spot, because nothing on the page contradicts the ad in words. The contradiction is in what the page declines to do.
What counts as expensive is not a property of your price, either. It is a property of the person reading it, and specifically of what they are doing today instead of buying from you. Four hundred a month is unthinkable to someone doing this by hand on a Sunday and cheap to someone paying a contractor eleven hundred for the same outcome. If you have [written down who it is for](/blog/write-down-who-it-is-for), you already know which of those two is on the page, and you can put the number next to the thing it replaces rather than leaving it to float on its own. Price in isolation is a number. Price next to the alternative is an argument.
If you publish and it goes badly, you will know quickly, and that is the underrated part. Watch what changes on the sales calls that still happen: do they start further along, with fewer of the first ten minutes spent on "so what does this run?" Watch whether the same question stops appearing in your inbox. Watch the pricing page's own exit rate — it should go up, and that is fine, because people leaving after a clear answer are cheaper than people leaving after a wasted call. What you must not do is publish, panic at the drop in form fills, and hide the number again the following week. Fewer, warmer conversations is the intended result, not the failure mode.
We build tools that draft copy and pull your numbers together, and none of that helps with this one. No amount of drafting rescues a page whose central fact is missing; the AI will happily write four confident paragraphs around a hole, and you will read them and think the page is finished. This is a decision, not a writing task, and it takes about an hour: pick the number, pick the form it takes, put it where a stranger would look.
So here is the whole thing as one question you can answer this week. If a person who is perfect for you lands on your site at eleven at night, with nobody to ask and no patience for a form, can they find out what this costs and decide for themselves? If the answer is no, that is not caution. That is a filter you built by accident, and it is filtering hardest against exactly the self-directed, ready-to-buy people you would most like to meet.