Price questions are among the most common in service business chats, and the ones where a wrong answer hurts most. Visitors ask 'How much is a full set?' or 'Do you charge extra for weekends?' and expect an accurate number in seconds. Whether the assistant gets it right depends less on the AI model than on how your service menu is written down. A price list designed for a printed flyer, with columns, footnotes and asterisks, often loses its meaning when converted into text passages for retrieval. This guide shows how to write and format a service menu and price list so an assistant can find the right entry, state the price correctly and mention the conditions that go with it. It is practical rather than theoretical: follow the layout, test with real questions and fix what fails.
Why flyer-style price lists fail
| Print habit | What goes wrong in a knowledge base |
|---|---|
| Two-column layout | Text extraction mixes columns; prices end up next to the wrong service |
| Prices in images | Text cannot be read unless OCR is applied |
| Footnotes and asterisks | The condition is separated from the price it applies to |
| 'From $40*' | The asterisk's meaning is lost |
| A single long table for everything | Retrieval pulls the whole table or the wrong part of it |
| Abbreviations and codes | The assistant cannot match the visitor's words |
The remedy is to write each service as its own short, self-contained entry.
One entry per service
Give every service a heading and a compact block that answers the common questions together:
- Name and what it is in plain words, including terms customers use.
- Prezzo, stated as an exact number or a range with what changes it.
- Durata, including any preparation or aftercare time.
- Who it suits and who it does not.
- Cosa è incluso and what costs extra.
- Conditions: deposits, cancellation, patch tests, age limits.
- How to book or what the next step is.
An example entry: 'Full colour, all over. From $95 for short hair, up to $140 for long hair; the final price depends on length and thickness and is confirmed at the consultation. Takes about two hours. Includes shampoo and blow dry. Toner is $15 extra. A patch test is required 48 hours before a first colour. Book online or ask us to find a time.'
Writing prices the assistant can state safely
| Situation | How to write it |
|---|---|
| Fixed price | 'A standard cut is $35.' |
| Range | 'Colour is $95 to $140, depending on hair length and thickness.' |
| Starting price | 'From $60. The price rises with the size of the job; we quote after seeing it.' |
| Not quoted in chat | 'We quote after an inspection; there is no charge for the visit.' (only if true) |
| Time-limited offer | 'Introductory price of $25 until 30 June.' with the date |
| Currency and tax | Say whether prices include tax. |
If you do not give a price in chat, say why and what the visitor should do, so the assistant does not improvise.
Add-ons, packages and combinations
- List add-ons under the service they apply to and as a separate 'add-ons' section for searches.
- Write packages as their own entries, naming what is included and the saving in dollars, not just 'save 10%'.
- State combinations explicitly: 'A cut and colour together takes about three hours and costs $120 to $170.'
- Say whether package prices can be combined with other offers.
Conditions that change the answer
- Weekend or evening surcharges.
- Travel fees by area (see service area verification).
- Deposits and cancellation fees.
- Extra charges for long hair, large pets, difficult access or rush jobs.
- Minimum charges and call-out fees.
Write each condition next to the price it modifies, in the same entry, not in a separate terms page only.
Tables: use them carefully
Simple tables of service, duration and price can work when they extract cleanly, but test them. If a table's rows get separated, rewrite it as short lines: 'Cut, 30 minutes, $35.' Avoid merged cells, nested tables and tables in images. See using spreadsheets and tables in RAG for how tables are processed.
Keep one source of truth
- Choose the document that holds current prices.
- Remove old price lists from the knowledge base; do not leave last year's version beside this year's.
- Date the document: 'Prices valid from 1 March 2026.'
- Update it when prices change and re-test the top price questions.
- Make sure the website price page matches, since visitors compare.
Conflicting documents are one of the main causes of wrong price answers.
A test plan
| Question | Check |
|---|---|
| 'How much is [each top service]?' | Exact price or range correct |
| 'Is [service] cheaper than [other service]?' | Comparison correct |
| 'Do you charge extra for [condition]?' | Surcharge stated |
| 'What is included in [package]?' | Complete list |
| 'How much for [service not on the menu]?' | Says it does not have the information and offers a next step |
| 'What is the cheapest option?' | Names the actual lowest price |
Run the questions after every price change. See testing starter prompts.
Common mistakes
- Leaving prices in an image or PDF scan.
- Using internal service codes.
- Writing 'from' prices without saying what changes them.
- Storing conditions on a different page.
- Forgetting to remove old prices.
- Not testing comparisons and add-ons.
Before and after
| Flyer version | Assistant-ready version |
|---|---|
| Colour from $95* | Full colour is $95 for short hair and up to $140 for long hair. The final price depends on length and thickness. |
| *Patch test req. | A patch test is required 48 hours before a first colour appointment. |
| Toner +15 | Toner is an extra $15. |
The assistant-ready version repeats the service name and keeps each condition beside its price, so whichever passage is retrieved contains everything needed for a correct answer.
Policies that belong beside the prices
- Cancellation and late-arrival rules, with the amounts or time limits.
- Payment methods accepted and when payment is due.
- Age, health or safety conditions for particular services.
- Gift vouchers, memberships and how they are redeemed.
- What happens if a customer is unhappy with the result.
Visitors ask about these right after prices. Write each as a short paragraph under its own heading so the assistant can retrieve and quote it accurately, and review them whenever policy changes. A price answer that omits a deposit or a cancellation fee will cause disputes later, so it is worth the extra few sentences.
Finally, read the whole document as a customer would. If a stranger could answer every common price question from it in under a minute, the assistant can too.
Frequently asked questions
How should I format a price list for an AI chatbot?
One short entry per service with the name, price or range, duration, inclusions, conditions and next step.
Can the assistant read prices in a PDF?
If the PDF has selectable text, usually yes. Scanned images need OCR. Simple, plain entries are more reliable than complex layouts.
What if I do not want to publish prices?
Say so in the document and explain how quotes work, so the assistant explains this rather than guessing.
How do I stop the assistant quoting old prices?
Keep only current prices in the knowledge base, date them and re-test after changes.
Should I use tables?
Only simple ones, and test them. Short lines are safer.
Where do I add the documents?
In the knowledge base of your assistant, by upload, text entry or a page link.
See training an AI receptionist on your service catalog, the knowledge base feature and try your price questions in the playground.
Further reading
- Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks (Lewis et al.): The original research paper behind retrieval-augmented generation.
- Google Search Central: creating helpful, people-first content: What Google looks for in useful pages.
RISPONDI A OGNI VISITATORE. PRENOTA CHI È PRONTO.
Installa Crescelo sul tuo sito in 15 minuti
Addestra il tuo assistente sui tuoi listini, documenti e condizioni di servizio. Attiva risposte fondate sulle tue fonti 24 ore su 24 e prenotazioni in chat senza sovrapposizioni.