Twelve ways a pricing page fails to tell you the price, ranked by how much they mislead
Reading several hundred pricing pages produced a catalogue of distinct ways they fail, and the failures are not equally bad. Some announce themselves — a quote-gated tier, a bot check, a page that refuses the request. Some are simply absent. The worst render something that looks exactly like a price and is not: an empty currency symbol, a plan card showing some of its prices, or a well-formed zero standing where a paid rate should be. This is the catalogue, ordered by how much damage each does to a reader who trusts it.
Of the vendor records we hold, a substantial minority carry no usable price at all. Rather more than half of those are simply pages we have not read yet, which is a gap in our work and nothing more interesting. The rest carry a recorded reason, and those reasons turn out to fall into about a dozen recognisable shapes. Setting them in order of how badly each misleads is more useful than listing them, because the ranking is not the one you would guess.
The safest failures are the ones that announce themselves. A tier marked for contact with sales is not a missing price, it is a decision the vendor has taken and stated; you learn where the self-serve product ends. A page that returns a bot check tells you plainly that you are not going to read it today. A request that is refused outright, or never arrives, leaves nothing behind that could be mistaken for information. In all three cases the correct output is an absence, and an absence is easy to handle honestly.
Next come the failures that are absent but obvious. A page whose plan structure arrives while every figure renders from script leaves the ladder, the billing basis and the tier flags visible with no numbers in them — you can see exactly what is missing. A slider that says to move it for an estimate, whose values are nowhere in the served content, is the same shape: the mechanism is visible and the numbers are not. Neither of these will fool a careful reader, though both will defeat an automated one, and the difference between those two statements is where most of the trouble in this field lives.
Then come the ones that look like data. A page can serve the furniture of a price with nothing inside it — a currency symbol and a per-month qualifier with an empty space between them. A plan card can render some of its prices and not others, so the add-on figures appear while the plan figures do not, and the card still shows money. A volume selector can offer nine rungs and carry prices for two of them. In each case something arrived, the page looks populated, and the missing part is easy to overlook. These are worse than a blank page precisely because they reward a quick glance.
The worst two are the ones that are actively wrong. A page can print a well-formed, parseable zero where a paid plan's price belongs — and if the same page also has a genuinely free tier, the true zero and the false ones are identical characters in identical markup. Nothing distinguishes them except knowing that a plan described as paid cannot cost nothing. And a page can advertise a discount with no base price anywhere on it, so a percentage is offered against a figure that does not appear. We have seen both, more than once each.
Two further shapes belong to a different family: the price exists but not here. One vendor names its tiers and refers their pricing entirely to a parent product, so the governing figure lives on a different company's page under different terms. Another's pricing address redirects across brands or subdomains, which works until it does not, and quietly makes any stored link a dependency on the redirect surviving. Neither is a failure of the page so much as a warning that the thing you are pricing is not where you thought it was.
There is an honest inverse worth ending on, because it is the one case where a missing figure is a real answer. One vendor states in words rather than numerals that it charges no monthly fee. That is a price — it is zero, deliberately, and the sentence says so — and it is quite different from an empty field. Our record captures it as an explicit state rather than as a blank, because 'we charge nothing' and 'we did not read this' should never look the same in a database. Another vendor's entire argument is a set of stated zeroes for platform fees and revenue share, and those zeroes are the product.
For a reader the practical upshot is short. Treat a quote-gated tier as information. Treat an obviously empty page as an absence. But be most careful precisely where a page looks most complete: check that every tier on a card actually carries a figure, that a volume selector prices the rung you need rather than only the first, and that any tier priced at nothing is one the vendor describes as free. The failure that will cost you money is the one that renders.
Safest: the failures that announce themselves
A quote-gated tier, a bot check, a refused or lost request. Each leaves nothing that could be mistaken for a price, and a quote-gated tier is genuinely informative — it marks where the self-serve product ends and the negotiation begins.
Absent but obvious: structure without figures
A ladder, billing basis and tier flags that arrive while every number renders from script; or a slider inviting you to estimate whose values are not in the page at all. A careful human sees what is missing; automated reading does not.
Looks like data: partial and empty renders
A currency symbol and unit with nothing between them. A card showing add-on prices but not plan prices. A nine-rung volume selector carrying two figures. Something arrived, the page looks populated, and the gap rewards a quick glance.
Worst: a parseable zero where a price belongs
Well-formed and machine-readable, and where the same page has a real free tier the true zero and the false ones are identical characters in identical markup. Only knowing that a paid plan cannot cost nothing separates them.
Also worst: a discount with no base price
A percentage off advertised where no price appears anywhere on the page. The offer is arithmetically meaningless until the base figure is found, and we have recorded this shape at more than one vendor.
The honest inverse: a zero stated in words
One vendor writes that it charges no monthly fee. That is a price, deliberately zero, and it is captured as an explicit state rather than an empty field — because 'we charge nothing' and 'we did not read this' must never look the same in a record.
Questions people actually search
Which of these should worry me most as a buyer?
The ones that render. A blank page sends you to look elsewhere; a page showing a zero on a paid tier, or add-on prices without plan prices, or two prices in a nine-rung selector, can leave you with a number you believe and should not. Check that the tier you want carries its own figure rather than inheriting one from the card around it.
How can a comparison site get this wrong?
By reading automatically and not checking for coherence. Every failure in the middle of this list produces something parseable, and the worst produces something indistinguishable from a genuine reading. The defences are internal consistency — does this figure contradict a claim printed beside it — and refusing to publish where the reading is unresolved. Both are judgement rather than validation.
Is a quote-gated price a bad sign?
No. It is one of the more useful things a pricing page can tell you, because it marks the boundary of the self-serve product. Above that line expect a sales process, a longer contract and often a minimum commitment. If everything you need sits below it, the gate is irrelevant to your decision.
Why do so many of your records hold no price?
Two separate reasons, and we keep them apart. Rather more than half are pages we have not read yet, which is our backlog. The remainder have a recorded reason from this catalogue, and for those the absence is the correct output rather than a gap — we do not fill a failed reading with a figure from memory or from another comparison site.
What should I do if a price looks wrong?
Reload the page, and open it in another browser or with script enabled. Most of the failures here are properties of a particular reading rather than of the page itself, so a figure that looks impossible will often resolve on a second attempt. If it does not, the vendor's sales or support channel can confirm a figure in writing, which is worth having before you commit.
This page publishes no prices at all, by subject rather than by constraint. The catalogue is drawn from the recorded reasons attached to vendor records where no usable figure could be captured, read between 2026-08-26 and 2026-09-03; roughly a dozen distinct failure shapes are represented, each observed at one or more vendors. Records carrying no reason at all are counted separately as pages not yet read, and are not part of the catalogue. Where a vendor states a zero deliberately, that is captured as a price rather than as an absence. This page carries no affiliate links. Related: when there is no price, a zero is not a price and when we refuse to compare. The method →
Found a price that no longer matches the vendor’s page? Tell us — corrections are dated and stay on the page.