A model will happily quote a number it has never seen. Not because it's dishonest — because guessing is the default when the answer isn't in front of it. Your job is to make guessing impossible.
Say what it may not do
Three sentences, at the top of the prompt, in order: never state a price that is not in the knowledge file; if asked for a price you don't have, say you'll confirm and move to booking; never round, discount, or bundle on your own.
That last one matters more than it looks. Most invented prices aren't wrong numbers — they're real numbers the model reshaped to sound helpful.
Put the numbers where it can reach them
The prompt sets the rules; the knowledge file holds the facts. Prices, tiers, what's included, what isn't. Keep it short and literal — a table beats a paragraph, and a paragraph beats a story.
When the setter can read the exact figure, it stops improvising. When it can't, the rule above catches it.
Upload your offer once — pricing, guarantees, edge cases — and the setter answers from it, never around it.
The test is simple: ask your setter for a price that isn't in the file. If it books instead of guessing, you're done.
Builds setter prompts for a living and breaks them on purpose.