The Quiet Brief

How to structure a pricing page

Structure decides which plan gets picked more than the numbers do. Tier count, anchoring, the annual toggle, and the questions the page must answer.

Dimly lit fast food restaurant interior with visible menu and ceiling lighting.
Photo: Joaquin Carfagna / Pexels

Part of Pricing and positioning for small companies

Most pricing page advice is a list of persuasion tricks attached to a screenshot of three columns: a "most popular" badge on the middle one, anchor high, nine at the end of the number. The tricks are real enough. They are also downstream of the thing that determines what happens on the page, which is whether a buyer can work out which row is them.

Watch someone who genuinely needs your product land on a badly structured pricing page and the failure has a specific shape. They do not decide the price is too high. They scroll, they read four column headers that all sound plausible, they scroll into the feature grid, they scroll back up, and then they do what people do when a decision has no obvious entry point: they postpone it. The number was never the obstacle. Nothing on the page told them where they belonged, and rather than risk picking wrong they picked nothing.

The strongest objection is worth putting first, because it is usually correct about the facts. For many businesses the pricing page is not where the decision gets made. A buyer who has read a comparison article, watched a demo and asked two colleagues arrives to confirm a number, not to choose a plan, and for them the layout is irrelevant. That describes a large share of considered B2B purchases. But it describes a buyer who has already been sorted. The pricing page is where the unsorted ones arrive, and they are the ones who leave without telling you why. It is also why the decision to publish numbers at all deserves separate treatment — the case both ways is in should you put prices on your website.

The useful standard is one you impose on yourself rather than one borrowed from research about attention: hand the page to someone who fits your target buyer and see whether they can point at a tier and say "that one is me" before reading a single feature row. Fifteen seconds is a reasonable stopwatch setting, not a fact about human beings. If they cannot do it, the structure has failed, and badge placement will not fix it.

Tier names should identify a buyer, not a rung on a ladder

The most common structural mistake is naming tiers with size adjectives. Basic, Standard, Professional, Advanced, Enterprise. These do exactly one thing: they tell the reader how much of something they get relative to the other columns, and nothing about whether the column was designed for someone like them.

The industry's own drift is instructive. Squarespace used to sell plans called Personal, Business and Commerce — names that answer "who is this for" in one word. Those are now legacy and no longer sold, replaced by Basic, Core, Plus and Advanced, which answer only "how far up". That is defensible for a company selling to everyone from a wedding photographer to a mid-size retailer, since no buyer name would fit all of them. It is a bad model for a small company to copy, whose advantage is precisely that it knows who it sells to.

Compare it with Butternut AI, which splits its pricing into two named product lines rather than one ladder: a Business line and a Portfolio line, at different prices, the Portfolio flow taking a CV upload where the business flow takes a description of the company. A freelancer landing there evaluates two tiers, not four, because half the page is visibly not addressed to them.

The practical form for most companies is not a clever name but one line under each name saying who the tier is for, written as a situation rather than a benefit. "For one person publishing their own work" sorts buyers. "Everything you need to grow" sorts nobody, because it is true of every column on every pricing page ever built.

A fourth tier earns its place only if it names a fourth buyer

Three columns became the default mostly because of anchoring: the top tier makes the middle one look moderate, and the middle one is usually where the margin lives. That works, which is why the pattern spread. The question is when to break it.

The test is whether a fourth tier corresponds to a buyer who would recognise themselves in it. Wix runs four paid tiers from Light to Business Elite, all priced annually and paid in full, and there is a genuine buyer at each end — a personal site at one, a business with a store and staff accounts at the other. When a fourth tier is instead the same buyer with a larger allowance, it stops helping and starts stalling, because it converts a choice between kinds of customer into an arithmetic problem about volume, and arithmetic problems get deferred.

Ghost is the clearest case of a gap where a tier ought to be. Starter at $18 a month and Publisher at $29 a month, both billed annually, both cap at 1,000 members. The next step up is $199 a month for 10,000 members; Ghost does not publish a tier in between. A publisher with 1,400 members has no column to stand in, and the page cannot tell them what to do. Whether that is a deliberate filter or an accepted cost, it is visible to anyone reading the page as a document about the business rather than a price list. That reading habit is the subject of pricing and positioning for small companies, where the pricing page is treated as the most legible thing a company publishes about itself.

The annual toggle is a second product, not a discount

Almost every pricing page now carries a monthly/annual switch, and almost every one advertises the annual figure as a monthly number. What the discount buys the seller is not really cashflow. It buys a year in which the customer cannot leave — a different product from the monthly one, and worth describing as one.

The failure mode is stating the discounted number without the cycle attached. Squarespace Basic is $19 a month billed annually or $25 billed monthly; Framer Basic is $10 annually or $15 monthly. Both gaps are large enough that a buyer reading only the headline stays misinformed until checkout — the worst possible moment, because it turns a price into a trust question.

The toggle can also conceal more than the number. Wix's monthly plans do not include its vouchers, which ties the free first-year domain to paying annually: the switch changes what you get, not just what you pay. Wix's monthly rates are not published outside the logged-in checkout at all. Carrd removes the choice entirely — annual billing only — which is at least a position, plainly stated.

Vendor and plan Annual Monthly
Squarespace Basic $19/mo $25/mo
Framer Basic $10/mo $15/mo
Webflow Basic (site plan) $15/mo $25/mo
Carrd Pro Standard $19/year not offered
Wix Light $17/mo, paid in full not published

Prices checked August 2026.

The rule that follows is unglamorous: put the cycle in the same line as the number, at the same weight, not in a toggle two hundred pixels above it. And if the annual saving is the argument, state it as a total for the year rather than a percentage, because a buyer can act on a total and has to convert a percentage.

The feature grid is reassurance, not input

The long comparison table below the tiers is the part of the page teams argue about most and the part buyers use least for the actual choice. That is not a reason to drop it, but it is a reason to be clear about its job.

By row nineteen the reader has provisionally chosen. What they are doing is hunting for the one thing that would disqualify that choice — the CMS, the custom domain, the second seat, the export. So the disqualifying rows belong near the top, not buried in feature order.

Vendors routinely get this backwards by putting the decisive limit somewhere polite. Webflow's Basic site plan has no CMS at all; the CMS starts at Premium. Carrd's own documentation describes its cheapest paid tier as being for users who don't use custom domains, so the custom domain starts one tier up. Notion sells the custom domain as a separate add-on on top of a paid plan, and its watermark can only be removed when the site uses a custom domain, so the badge survives every plan without it. In each case the buyer finds out eventually. The only variable is whether they find out on the pricing page or after paying, and the second costs a refund and a review.

The grid should be built to break a wrong choice early, not to make every column look generous.

"Contact us" is a price, and buyers read it as one

A hidden top tier is defensible when the deals genuinely differ — bespoke terms, procurement, security review, negotiated seats. What it costs is rarely counted. The moment a column says "contact us", some buyers stop reading the page as a menu and start reading it as a sales funnel, and a few of them were going to self-serve on a published plan.

The mitigation is to publish a real number immediately below the hidden tier, so the concealment reads as an exception rather than the house style. Webflow does this: its Team site plan is $2,500 a month on an annual contract, with Enterprise the only custom line above it. A buyer who sees $2,500 knows which conversation "contact us" belongs to, and knows it is not theirs. Where the third of three columns is unpriced, the hidden number could be anything, and the buyer estimates it without you — the same failure as publishing no prices at all. How that plays out at the top of the market, where two vendors take opposite approaches to the same buyer, is worth seeing side by side in the HubSpot and Salesforce pricing pages compared.

What to change first

If the page is being rebuilt, change the tier names and the line beneath them first, and change nothing else until that has run for a quarter. Names and self-selection lines are cheap to write, every visitor reads them, and they are the only element that moves a buyer from "I don't know which one" to "that one is me". Feature rows, badges and toggle defaults are real levers, but they act on a decision that has already started. If the decision never starts, none of them are in play.

Two cheap supporting moves go with it: attach the billing cycle to every number in the same line of text, and lift the three limits most likely to disqualify a wrong choice to the top of the grid. A page that sorts accurately loses some buyers on purpose, and the ones it loses were going to churn.

Questions people ask

How many tiers should a pricing page have?
As many as you have genuinely different buyers, which for most small companies is two or three. A fourth tier only helps when a buyer would read its name and recognise themselves in it; if it is the same buyer with a higher allowance, it adds a decision without adding a customer.
Should the annual or monthly price be shown by default?
Show whichever one you want compared against competitors, but state the billing cycle in the same line as the number rather than in a toggle above it. Pages that display an annual-paid-monthly figure without saying so are read as cheaper than they are, and the correction happens at checkout.
Is a "contact us" tier bad for conversion?
Not in itself, but it costs self-serve volume whenever buyers who could have bought a published plan interpret the whole page as sales-led. The usual fix is to publish a real number for the tier below it, so the hidden price reads as an exception rather than the house style.

The Quiet Brief — We look at what companies actually do online, not what they say they do.