Dashboard

When AI Quotes a Customer the Wrong Price

AI quoted a customer the wrong price. Whether you have to honour it, how to respond in the first hour, and the three controls that stop a repeat.

Steve Jefferson
Steve Jefferson
Developer Advocate
1 October 20261 min read

When your AI quoted a customer the wrong price, you have two problems and they resolve on different timescales. The customer in front of you needs an answer today. The system that produced the number needs a change before it does it again.

Deal with them in that order, and do not let the second problem delay the first.

Do you have to honour it?

This is the question everyone asks first, and the honest answer is that it depends on facts about your own setup rather than on anything about AI. Consumer protection and contract rules vary by jurisdiction and this is not legal advice, but the factors that tend to matter are consistent:

Factor

Points toward honouring it

Points toward not

How the quote was presented

A confirmed order total, an invoice, a booking confirmation

An informal chat reply, clearly conversational

Whether the customer acted on it

They paid, booked time off, cancelled another supplier

They asked a question and nothing else happened

How obvious the error is

Plausible price, just lower

Clearly absurd, such as 95 percent off a fixed-fee service

What your terms say

Nothing about quote accuracy or confirmation

A clear confirmation step the customer passed through

Whether a human confirmed

A staff member repeated the number

The bot said it and nobody reviewed it

The pattern is that the more your quote looked like a commitment and the more reasonably the customer relied on it, the harder it is to walk back. A number that appeared in something labelled as a confirmation is in a very different position from one that appeared in a chat window. That distinction is worth checking against local rules in your market, because several jurisdictions now have specific disclosure requirements for automated customer interactions, as covered in the EU AI Act transparency rules and Colorado's AI chatbot law.

The first hour

Four steps, in order. The sequencing matters more than the wording.

  1. Freeze the quoting path. Before anything else, stop the bot quoting prices. A static message pointing customers at a human is better than a second wrong number while you investigate. If you cannot disable just that capability, disable the bot.

  2. Find out how many. Query your logs for every price the assistant stated in the affected window, not just the one that was reported. One complaint usually means several quiet ones, and the customer who did not complain is the one who quietly went elsewhere.

  3. Decide the policy once, for everyone affected. Pick a single rule, such as honouring every quote below a stated threshold and contacting anyone above it. Deciding case by case produces inconsistency that is far harder to defend than a generous blanket rule.

  4. Contact them before they contact you. Reaching out first converts a complaint into a service recovery. Waiting converts it into a review.

On step 3, do the arithmetic before you get precious about it. If the gap is $40 on a $300 job and eleven customers are affected, the entire exposure is $440, which is less than the staff time you will spend negotiating individually. Honour them all and move on.

What to say

Short, factual, no mechanism. Customers do not need to hear about tokens.

  • Name the error plainly. Our system quoted you $240. The correct price is $310.

  • State your decision in the same message, not in a follow-up. Do not leave them to ask.

  • Do not blame the AI as though it were a third party. You chose to put it in front of customers, and it reads as deflection.

  • Do not over-apologise. One sentence. A long apology makes a small error look larger.

If the answer is that you cannot honour it, say so once with a concrete alternative attached, such as the correct price with a goodwill discount. An offer is a conversation. A refusal is an argument. There is a longer version of this in what to do when an AI chatbot gives a customer wrong information.

Why AI quoted a customer the wrong price

The underlying cause is nearly always one of four things, and knowing which one you have determines the fix:

Cause

What it looks like

Fix

No price data in context

Invented a plausible figure from nothing

Retrieval, so prices come from your system of record

Stale price data

Correct number, from six months ago

Fetch at request time, never paste into the prompt

Arithmetic

Right inputs, wrong total on a multi-item or discounted quote

Do the calculation in code, let the model collect inputs

Invented a discount or policy

Offered a 20 percent first-order discount you do not have

Explicit refusal rule plus a closed list of what it may offer

The arithmetic case is the one teams underrate. A language model doing percentage maths across several line items will mostly be right, and mostly is not a standard you can quote prices to. Have the model extract quantities and hand them to a function.

Check whether the number was ever yours

One case deserves separating out, because the remedy is different. Sometimes the figure was not a misread price at all, it was invented wholesale, along with a policy to justify it. A bot that offers a first-order discount you have never run has not made an arithmetic error, it has made up a commercial term.

That matters for two reasons. First, the fix is a refusal rule rather than better data, because no price lookup prevents a model inventing a promotion. Second, the customer conversation is harder, since they were told about a benefit that does not exist rather than given a wrong number for one that does.

The test is simple: could the stated figure have come from any row in your pricing data? If no, you are in this case, and the control you need is an explicit closed list of what the assistant may offer, with everything else refused and escalated.

The three controls that prevent a repeat

  1. Never let the model state a number it did not read. Prices come from a lookup, and the instruction is to quote only from retrieved data and otherwise say it will check. Keeping the price list in the prompt itself is the trap, because it goes stale silently.

  2. Put a ceiling and a floor on anything quotable. A bounds check in code, outside the model, that refuses to send a quote below a floor or above a ceiling. This is five lines and it catches the catastrophic cases regardless of why they happen.

  3. Require confirmation for anything binding. The bot may discuss a price. A human or a priced checkout page confirms it. That one boundary moves every future error from a commitment into a conversation.

A bounds check in its simplest form:

python
FLOOR, CEILING = 0.60, 1.40   # fraction of the list price

def gate(quoted, list_price):
    if list_price is None:
        return None, "no list price found, escalate to a human"
    ratio = quoted / list_price
    if not (FLOOR <= ratio <= CEILING):
        return None, f"quote {quoted} is {ratio:.0%} of list, blocked"
    return quoted, None

It will occasionally block a legitimate quote, and that is the correct trade. A blocked quote costs you a handoff to a human. An unblocked wrong one costs you the difference, plus the conversation above. Where the quotable price list belongs is covered in what goes in the prompt vs what goes in the data, and the broader containment pattern in guardrails for a customer-facing AI chatbot.

Questions

Should I just stop letting AI discuss prices?

For many small businesses, yes, and it costs less than people assume. An assistant that answers questions and routes pricing to a human still removes most of the volume. Let it quote only when prices come from a lookup and a bounds check sits in front of the response.

Will a disclaimer protect me?

Partly, and less than you hope. A visible note that quotes are indicative and subject to confirmation helps, but burying it in terms nobody reads helps very little. The confirmation step does more work than the disclaimer.

How do I find out whether this already happened?

Search your conversation logs for currency symbols and price-shaped numbers in assistant messages, then compare against your price list. If you are not logging assistant messages, that is the first fix, ahead of everything else on this page.

Does my insurance cover this?

Possibly, and it is worth finding out before you need to know rather than during. Ask your broker specifically whether professional indemnity covers an incorrect quote generated by an automated system, because the answer is often different from the one for a staff error.

Who is responsible if the vendor's model got it wrong?

From the customer's position, you are. Vendor terms almost never make them liable for your customer commitments. Who is responsible when AI makes a mistake covers how that allocation usually works.

How did this land?

About the author

Steve Jefferson
Steve Jefferson

Developer Advocate

Steve builds something with Swarmz every week and writes up what worked, what broke, and what he'd do differently. Tutorials and hands-on guides are his lane.

Share

Get the next post in your inbox

One email a month. Product updates, engineering posts, and the best of Built with Swarmz.

I agree to receive emails about AI building tips and Swarmz product news. Unsubscribe any time.