跳到正文
DEV Community· chenwengui23·· 3 小時前AI 評分63

AI 報價 $1,850、銷售人員報價 $2,400,客戶收到兩個價格

Your AI quoted $1,850. Your salesperson quoted $2,400. The customer saw both.

AI 導讀

一間商業清潔公司的 AI 接待員與銷售人員曾就同一工作報出不同價格,作者追查後發現,問題源於多份未同步的價格資料,而非模型幻覺。作者檢視一季內 143 次 AI 與人工均有報價的詢問,其中 59 次不一致(41%),平均價差為 18%。文章建議指定唯一價格權威、採用固定報價格式並追蹤價差;該公司整合價格表並加入報價區塊後,五週內不一致率由 41% 降至 6%。

正文

A commercial cleaning company asked me to look at their AI receptionist because "it keeps giving the wrong prices." I pulled 143 quotes from one quarter — every enquiry where the AI had produced a number and a human had later quoted the same job.

59 of them disagreed. That's 41%. The average gap was 18%, and in one case the AI said $1,850 and the account manager quoted $2,400 for the same square footage and the same frequency.

The customer had both numbers in writing, four days apart.

It was never a model problem

My first assumption was hallucination. It wasn't. I read the transcripts. The AI was reading from a real document — a 2023 price sheet in a shared drive. The salesperson was reading from a 2025 sheet in his own email. The CRM had a third set of numbers that matched neither.

Three sources of truth, all of them officially correct, none of them reconciled:

Source Who used it Last updated Monthly minimum
Price sheet v3 (shared drive) AI agent March 2023 $480
Price sheet v5 (sales inbox) Account managers Jan 2025 $620
CRM product list Quotes generated in CRM Partial migration $550

The AI wasn't wrong. It was consistently loyal to a document nobody had retired. That's a much easier problem to fix, and a much worse one to leave alone — because a customer who catches you quoting two prices doesn't conclude "their data is messy." They conclude "they're making it up as they go."

Quote consistency is a data governance problem wearing a prompt's clothing. If you tune the prompt first, you will make the agent more confident about the wrong number.

Step 1 — One price authority, or none

The fix starts before any prompt work. Nominate exactly one artefact as the price authority and give it a version and an expiry date. Everything else becomes a derived copy that is allowed to be wrong, because it's not the authority.

Here's the structure I use. One file, one row per sellable unit, no prose:

sku,unit,list_price,min_qty,tier_2_qty,tier_2_price,floor_price,effective_from,expires,notes
CLEAN-STD-SQFT,sqft,0.14,2000,5000,0.11,0.09,2026-01-01,2026-12-31,excludes consumables
CLEAN-DEEP-SQFT,sqft,0.31,1000,3000,0.26,0.22,2026-01-01,2026-12-31,first clean only
CLEAN-WEEKLY-VISIT,visit,180,1,4,155,140,2026-01-01,2026-12-31,min 4 visits/month

Three rules make this file usable by an agent:

  1. expires is mandatory. An expired price is worse than no price, because the agent will confidently quote it. Give the agent an instruction: if today's date is past expires, say the number needs confirming and escalate. Do not let it extrapolate.
  2. floor_price is not the agent's business. The agent quotes list or tier price. Floors exist for humans. If the agent can see the floor, it will eventually use it to close a deal, and you'll have given away margin to a machine that was trying to be helpful.
  3. notes carries exclusions only. Not sales guidance, not "good margin here." Anything that reads like advice gets paraphrased into a promise.

Then delete or watermark the old sheets. I'm serious about this one. The 2023 sheet in that shared drive was still there eighteen months after it stopped being true, and it was the first search result for "price."

Step 2 — Force a quote shape, not a quote sentence

Most agents produce prices as prose: "For a 3,000 sq ft office, weekly cleaning would be around $420 per visit." That sentence is un-auditable. You can't diff it against anything, and it invites the customer to negotiate against a vibe.

Make the agent emit a fixed block instead:

QUOTE
Service:        [service name]
Quantity:       [number] [unit]
Unit price:     $[x] per [unit]  (tier: [list/tier 2])
Line total:     $[x]
Assumptions:    [up to 3 — access hours, frequency, exclusions]
Valid until:    [date from expires field]
Not included:   [consumables / travel / after-hours]
Next step:      [book survey / confirm frequency / human review]

This does three things at once. It makes every quote comparable in a spreadsheet. It makes the assumptions explicit, which is where 80% of disputes actually live ("you didn't say it was three floors"). And it forces the agent to name what it is not quoting, which is the single most common cause of the angry phone call after the invoice.

The Valid until field is doing quiet work too. It gives the agent a legitimate reason to say "that price was valid through March 31" when a customer digs up an old email, instead of arguing.

Step 3 — Measure drift weekly, not anecdotally

You cannot manage this by reading transcripts. Build one small report: for every job that got both an AI quote and a human quote, compute the gap.

Week of: ____
Jobs quoted by AI then by human: ____
Quotes that matched (±2%): ____%
Median gap: ____%
Largest gap: ____% on [service]
Gap direction: AI higher ____% / AI lower ____%

Two patterns are worth watching for:

  • AI consistently lower than human. Usually a stale tier, a missing quantity break, or the agent applying a discount it wasn't supposed to know about. The commercial risk is that customers arrive at the human expecting the AI number, and the human eats the difference to keep the deal — which trains everyone to distrust the AI and quietly destroys the margin.
  • AI consistently higher than human. Usually the agent is quoting list price while humans routinely discount 10–15% off-sheet. That's not an AI bug; that's an undocumented discount policy. Write it down or stop doing it.

At the cleaning company, after we consolidated to one sheet and added the quote block, the mismatch rate went from 41% to 6% in five weeks. The remaining 6% were almost all legitimate: site surveys that found something the phone call couldn't.

Step 4 — Publish the discount authority

The moment two people can quote, you need a table saying who can move the number and by how much. Otherwise the AI quotes list, the human quotes list-minus-15, and the customer learns to always ask for a human.

Role Discount authority Must record
AI agent 0% — list or published tier only full quote block in transcript
Front desk 5% reason code
Account manager 12% reason code + competitor reference
Sales lead 20% written approval
Below floor Owner only —

Give the agent one line to use when pushed: "I can't adjust pricing, but I can put you with someone who can look at the whole job." That's honest, it protects the floor, and it routes the negotiation to a human who is allowed to have it. An agent that improvises a discount to be helpful is the most expensive kind of helpful.

Step 5 — Reconcile before the contract, not after

One checklist item prevents most of this. Before any quote becomes a contract, someone compares the AI's quote block to the final human quote and records the delta. Thirty seconds per job.

[ ] AI quote exists and is attached to the deal
[ ] Final quote price = AI price, or delta has a reason code
[ ] Assumptions in AI quote match what the survey found
[ ] Validity date on final quote is in the future
[ ] Exclusions on final quote are the same list the AI gave
[ ] If discount applied: within role authority, reason recorded

That last-but-one line catches a surprising amount. The AI says "not included: consumables." The human's final quote drops that line to look cleaner. Six weeks later the customer gets a consumables invoice and calls it a bait-and-switch.

The thing that actually costs you

Nobody loses a deal because the AI quoted $1,850 instead of $1,900. You lose deals — and referrals, and the benefit of the doubt — when a customer can prove you gave them two different numbers for the same work and can't explain why.

Consistency is cheaper than accuracy here. An agent that quotes slightly high but always the same number is more trustworthy than one that quotes perfectly and changes its mind when a different person picks up the phone.

Start with the price file. Add the expires column today, retire the old sheets this week, and make the agent emit the quote block instead of a sentence. You'll find your drift number within a month, and it will be higher than you expect.

The price-authority template, the quote block, and the reconciliation checklist are part of the kit I run on deployments: Agent Audit Pack

來源:DEV Community · dev.to