Source material

Half of pricing pages contain no prices, as far as a reader of text is concerned

Before any question of wording, there is a question of presence. A crawl reads the text of a page. A price that only appears after somebody moves a toggle, picks a currency, or drags a slider may never be in that text, so the pricing page arrives in the index as a page about pricing with no numbers in it. Everything else on this page assumes you have fixed that first.

Why this one is harder than it looks

Modern pricing pages are built as controls. A monthly and annual switch, a seat count slider, a currency picker, a calculator that adds up modules. Each of those holds its numbers in the behaviour of the page rather than in its text, and what gets extracted is the labels around them. The result is a document that talks confidently about tiers and value and contains not one figure that could be quoted.

Where the numbers are present, the next problem is that they are unqualified. A figure sitting under a tier name in a column is complete because of where it sits: the column header says the tier, a toggle above says the billing period, a note at the bottom says the currency and whether tax is included. None of that positional context survives into a passage that contains the figure.

From pricing is a category of its own. It is honest on a page where the reader can see what it is a floor for, and it is dangerous in a passage, because the word from is a small word attached to a big number and it gets read past. So is per seat against a flat fee: the same figure means two entirely different totals and the distinction is usually carried by a caption.

Then there is the comparison grid, which is the most common way of expressing what a tier actually includes, and the one that survives conversion worst. Tables in web pages are converted into Markdown tables, so the grid arrives, but a cell containing a tick and nothing else arrives as a symbol or as nothing. A row of empty-looking cells is not a statement about what a tier includes; it is noise that will be matched and misread.

What it has to contain

Structure rather than wording. A passage pulled out of this document has to stand on its own, because that is the only form in which it will ever be read.

Structural requirements
A plain text price block for every tierUnder a heading with the tier name, a sentence containing the figure, the currency, the billing period, the unit, and whether tax is included. Written as a sentence, not as a number sitting in a layout. This block is what gets retrieved and it has to be able to answer alone.
The unit written next to every numberPer user per month, per site per year, one payment, per booking. If a figure is a floor, the word from and what it is a floor for belong in the same sentence: the lowest price for the smallest configuration, and what a typical one costs instead.
Tier boundaries stated as the question they answerNot the boundary as a limit in a table cell but as a sentence: this tier covers up to a published number of users, and above that the next tier applies. Somebody asking when do I have to move up should match a sentence that answers exactly that.
Annual and monthly written as two figures, not one and a discountBoth numbers in the text, plus what happens in between: whether annual is paid up front, whether a switch mid-term is possible, and what the annual figure works out at per month if you want to say so. A discount percentage without both figures is a calculation nobody should have to do.
A feature table whose cells contain wordsEvery cell says included or not included, or names the limit. No cell relies on a tick, a dash, a colour, or a footnote marker, because a table whose meaning depends on any of those loses that meaning entirely when it is converted.

The rewrite, in order

Get the numbers into the text of the page

Open the pricing page, disable the scripting in your browser or view the delivered source, and read what is actually there. If the figures are absent, no amount of rewriting will help, because the assistant is answering from the text and the text has no prices in it.

The fix does not require dismantling the interactive part. Add a plain block of text below the controls that states every tier and every figure in sentences. Customers benefit from it too, because it is the part of a pricing page people copy into an email to a colleague. If you would rather not add it to the page, publish the same block as a separate document and index that.

Check the same way for anything else the page computes rather than states: totals, savings, converted currencies. Anything a control produces is invisible to a reader of text.

Say what each number is per

Take every figure in the plain block and finish its sentence. The currency. The period. The unit. Whether tax is included, and if it depends on where the customer is, say that in the same sentence rather than in a note at the bottom of the page.

This feels heavy-handed to write and it is the difference between a quotable answer and a misleading one. A passage saying a tier is a certain figure per user per month, in a named currency, before tax, cannot be misread. The same figure with three of those four missing will be read as a total, in the reader's own currency, including tax, because that is the most comfortable reading available.

Write the tier boundary as the sentence somebody would ask

The boundary is what people actually want from a pricing page: not what a tier costs but which one they are. Write it as a condition. If you have more than the published number of users, or need the named feature, you are on the next tier. If you are under it, you are on this one.

Do the same for anything that triggers a different arrangement entirely: volumes above a threshold, particular sectors, anything handled by a conversation rather than by a card. Say who to contact in that sentence, so a passage about a boundary carries its own next step.

Replace every tick in the comparison grid with a word

Go cell by cell. A tick becomes included. A blank becomes not included. A number with a footnote becomes the number and what the footnote said, in the cell. It makes the table wider and less elegant, and it is the only version of the table that means anything once it has been converted to a Markdown table and split into passages.

While you are in there, remove merged header cells. A grid with a merged header spanning three tier columns depends on that span for its meaning, and the span is exactly what is lost. Repeat the tier name in each column instead.

If the table is large, consider writing a short paragraph per tier saying in words what it includes, and leaving the table as a visual summary. The paragraph is what will answer; the table is for the human eye.

What happens if you skip it

A price question answered from the words around the prices

Somebody asks what the middle tier costs. The pricing page is indexed, so a passage from it is retrieved, and that passage is full of confident language about what the tier is for and who it suits and what it includes. It contains no figure, because the figure was in a control rather than in the text. The assistant is instructed to answer only from the supplied material and to say when the material does not cover the question, so at best it declines a question your pricing page exists to answer.

The cost is a lead that came to your site ready to be told a number and left without one. The other version of this failure is worse: the page did have a figure, unqualified, and it was quoted as a total when it was a per user monthly floor before tax. One of those loses a sale and the other creates an argument during onboarding.

Check it against this

Before you index it

  • Every price appears in the text of the page, not only inside a control
  • Each figure carries its currency, period, unit and tax treatment in the same sentence
  • Any from price says what it is the lowest price for
  • Tier boundaries are written as conditions, with a contact route above the top one
  • Annual and monthly are both stated as figures
  • No table cell relies on a tick, a colour or a footnote marker
  • Merged header cells have been removed and tier names repeated

Questions

We deliberately do not publish prices. What should we index?
Index what you do publish: what determines a price, what a typical engagement includes, the minimum you take on, and how to get a quote. That gives the assistant real material for the shape of the question, without inventing a figure it has no basis for.
Our prices change often. Will the assistant be out of date?
It answers from what is indexed, so the accuracy of a price is the accuracy of your last update. Keep the plain text block in one place so there is one thing to change, and never let a second copy of the figures exist in a document somebody forgets.
Should we upload the sales deck as well?
Slides are read as the text on each slide, so a deck does index, and it is usually the wrong material to answer customers from. It is written to be spoken over, so its lines are fragments, and a fragment retrieved as an answer reads as a claim nobody stands behind.

Keep reading

Try it on your own material

Upload a document or point it at your site, paste one line of HTML, then ask it something only your business could answer.