All posts
BenchmarkAugust 16, 20268 min read

We tested 8 cheap AI models on a real store’s live pricing API

By HelpStack

Every model vendor publishes benchmark scores. None of them answer the question a business actually has, which is whether a model can read your data and quote your customer without getting it wrong.

So we skipped the benchmarks. We took a real HelpStack tenant, a photo-printing business running four storefronts across Slovenia, Croatia, Slovakia and Poland, and pointed eight models at its live support desk. Same system prompt. Same knowledge base. Same order lookup and pricing APIs, called for real.

The result that mattered was not tone or speed. It was a number.

What we found#

  • GPT-4o mini quoted 39.00 EUR for an order that costs 9.60. It had the correct pricing data in front of it.
  • Claude Haiku 4.5 quoted 9.00 EUR. Wrong by one row of the price table, which is harder to catch than being wrong by four times.
  • Claude Opus 5 cost 46 times more than GPT-5.6 Luna and gave the same correct answer, three times slower.
  • All eight models picked the right tool and none invented a discount scheme that does not exist.
  • DeepSeek raised output prices 3.5x to 4.5x the morning we ran this, and now charges double during peak hours.

Prices are in euros because the shop sells in euros. Customer messages and model replies were written in Slovenian and are translated here.

Two models misread the same price table#

The question a customer asked, translated from Slovenian: "How much do 30 photos at 10x15 cost?"

Every model called the shop's pricing tool. Every model received the same JSON back: a quantity ladder where 10 to 100 units cost 32 cents each. Thirty prints comes to 9.60 EUR.

Two models disagreed.

Bar chart of the price each model quoted for 30 photos at 10x15. Six models land on the correct 9.60 EUR. gpt-4o-mini quoted 39.00 EUR and claude-haiku-4.5 quoted 9.00 EUR.
Bar chart of the price each model quoted for 30 photos at 10x15. Six models land on the correct 9.60 EUR. gpt-4o-mini quoted 39.00 EUR and claude-haiku-4.5 quoted 9.00 EUR.

Here is what two of them said, translated:

gpt-4o-mini: "The price for 30 photos in 10 x 15 cm format is 1.30 EUR per photo. So the total comes to 39.00 EUR."

claude-haiku-4.5: "For 30 photos in 10x15 cm format the price is 0.30 EUR per photo, so 9.00 EUR in total."

gpt-5.6-luna: "30 photos at 10 x 15 cm costs 0.32 EUR each, 9.60 EUR in total, excluding any delivery."

Neither of these was a hallucination

We checked the source rather than trusting the majority. The pricing API returns a band covering quantities from 10 to 100 at a unit price of 32 cents. Thirty prints sits inside that band, so 9.60 EUR is correct.

Both failing models had that data in context. GPT-4o mini was out by a factor of four. Claude Haiku made the quieter mistake, reading one row further down the ladder to the 100 to 150 band at 30 cents. Its answer looks plausible. A customer would not question it, and neither would most agents reviewing the draft.

This is a different problem from a model inventing facts. You can prompt your way around invention. You cannot prompt your way around a model misreading numbers you handed it.

In a live chat widget, that reply reaches the customer. They either walk away from a 9.60 EUR order that looked like 39, or they order at a price nobody honours and someone has to sort it out later.

Every model called the right tool. Not every model finished the job.#

We expected tool selection to separate the field. It did not. Asked "where is my order?" with an email address, all eight models correctly called the order lookup tool instead of guessing or asking for an order number.

What separated them was what happened after the data came back.

ModelRight toolFinished the answerWhat the customer sees
gpt-5.6-lunaYesYesOrders by date, status in plain words
claude-opus-5YesYesOrders by date, status, amounts
claude-sonnet-4.6YesYesOrders in a formatted table
claude-haiku-4.5YesYesOrders by date with amounts
gpt-5.4-nanoYesYesCorrect, but listed raw database IDs
gpt-4o-miniYesYesVague. One order mentioned, no detail
deepseek-v4-flashYesNoNothing. Silence after the lookup
deepseek-v4-proYesNoNothing. Silence after the lookup

Luna wrote the only answer aimed at a human being, listing each order by date with a readable status like "in production" or "shipped". GPT-5.4 nano returned the same orders as raw database IDs, which mean nothing to a customer. Both DeepSeek models fetched the data and then said nothing at all.

We are less confident about that last result than the others. Both DeepSeek models made the calls correctly and simply never produced closing text, across three tool iterations. That could be a quirk in how our test harness formats tool results rather than a fault in the models. We would want to reproduce it inside the product before treating it as settled.

Nobody invented a loyalty scheme#

The trap: we asked what discount the shop's loyalty card gives. No such scheme exists anywhere in its knowledge base.

All eight refused to invent one. Each said it had no record of a loyalty card, and nearly all went on to mention the promotional code that does exist, turning a dead end into a useful answer.

This is the failure everyone worries about with support AI, and on this evidence it is the one that has been solved. Even the cheapest models held the line. Which makes the pricing result sharper. The risk has moved from models making things up to models misreading what you give them.

How much does each model cost per reply?#

Measured from real token counts on a real support prompt, roughly 5,000 to 9,000 tokens once the system prompt, knowledge base passages and six tool schemas are loaded.

Bar chart of cost per reply. gpt-4o-mini is cheapest at 0.00093 dollars but answered incorrectly, gpt-5.6-luna 0.00128, claude-opus-5 0.05963 which is 46 times Luna for the same correct answer.
Bar chart of cost per reply. gpt-4o-mini is cheapest at 0.00093 dollars but answered incorrectly, gpt-5.6-luna 0.00128, claude-opus-5 0.05963 which is 46 times Luna for the same correct answer.

Latency and cost across both questions:

ModelLatency, orderLatency, pricingCost, orderCost, pricing
deepseek-v4-flash1,868 ms3,773 ms$0.00137$0.00284
gpt-4o-mini2,133 ms2,038 ms$0.00093$0.00093
deepseek-v4-pro2,279 ms3,766 ms$0.00403$0.00824
gpt-5.4-nano3,749 ms1,996 ms$0.00219$0.00136
gpt-5.6-luna4,689 ms2,953 ms$0.00192$0.00128
claude-haiku-4.54,793 ms3,086 ms$0.01095$0.00954
claude-sonnet-4.67,627 ms5,950 ms$0.03244$0.02865
claude-opus-512,040 ms8,227 ms$0.06698$0.05963

Claude Opus 5 answered the pricing question correctly. So did GPT-5.6 Luna, at one forty-sixth of the cost and in a third of the time. On this kind of work the premium tier bought nothing. Support replies are retrieval and tone, not the hard reasoning Opus exists for.

Claude Haiku sits in an awkward spot. It is Anthropic's budget model and it still cost seven times Luna, while being one of the two that got the price wrong. Cheap for a given vendor is not the same as cheap.

DeepSeek V4 Pro produced no answer at all on the order lookup. Until this week it was the default for most accounts on our platform. It is not any more.

DeepSeek raised prices the morning we tested#

We ran this on 16 August 2026. That morning DeepSeek's new rates took effect. Output token prices rose by 3.5x to 4.5x, and cache-hit input by as much as 11x.

Harder to plan around, the new rates vary by time of day. Peak hours, 01:00 to 04:00 and 06:00 to 10:00 UTC, cost double the off-peak rate. The same reply costs a different amount depending on when your customer happens to write to you.

ModelOff-peak in / outPeak in / outWhat we bill from
deepseek-v4-flash0.22 / 0.660.44 / 1.320.33 / 0.99
deepseek-v4-pro0.66 / 1.981.32 / 3.960.99 / 2.97

USD per million tokens. We bill from the midpoint, which is a deliberate compromise. Peak covers only 7 of 24 hours, so the time weighted average is about 1.29x off-peak, and the midpoint at 1.5x already sits above that. It over-recovers slightly on average and under-recovers for a customer whose traffic clusters in the peak window.

The wider point applies beyond DeepSeek. A model's price is not a fixed property you measure once. It is a number the vendor can change on a Tuesday, and in this case one that now changes twice a day. Any default you choose on price alone has a shelf life.

How we tested#

Diagram of the test setup. A real customer question plus the shop's system prompt, knowledge base passages and nine live tools go to the model, which calls the production API for real and loops up to three times before answering.
Diagram of the test setup. A real customer question plus the shop's system prompt, knowledge base passages and nine live tools go to the model, which calls the production API for real and loops up to three times before answering.

Each model received the shop's own system prompt, real knowledge base passages retrieved for the question, and all nine of its live agent tools: order lookup by email, order detail, parcel tracking, product list, pricing ladder, and escalation controls.

When a model called a read tool we executed it for real against the shop's production API and fed the response back, looping up to three times exactly as the product does. Escalation tools were recorded but never fired, since triggering one would have opened a real ticket in a live inbox.

Limits worth stating

This is one sample per question per model. It is a field test, not an evaluation. Single generations are noisy and any individual result here could flip on a rerun.

What a single sample can establish is existence. GPT-4o mini demonstrably produced a four times price error from correct source data, once, in a configuration a business could plausibly be running today. Claude Haiku did the same at smaller scale. Treat the rankings as directional and the pricing failure as something to test for in your own setup.

Claude nearly missed the test entirely. We had no Anthropic key configured when we started, and adding one exposed three faults on our own side before we could measure anything. Opus rejects an explicit temperature setting outright, one Haiku model ID has been retired and now returns a 404, and our Anthropic code path sent a temperature on every call. Any customer who had selected Opus would have had every reply fail. That is its own lesson about offering options you have never actually called.

Four things we fixed the same day#

We moved the default model. Most accounts were running DeepSeek V4 Pro, the slowest model in the test and one that never finished the order question. They now run a model that costs a fraction as much and answered every case.

Cheapest stopped being the tie breaker. Our configuration now enforces that a default cannot cost more than 3.5x the cheapest option for its vendor. That is a ceiling, deliberately not a floor. GPT-4o mini is the cheapest OpenAI model and it is the one that quoted 39 EUR. The rule leaves room to pay slightly more for being right.

We stopped offering what we cannot serve. Two vendors were selectable in our settings with no API key behind them, and a third offered a model Anthropic has retired. Every one of those choices would have failed on the first reply. They are hidden or corrected.

Every model now declares its own request shape. Price, which output token parameter it accepts, whether it tolerates a temperature setting, and which API surface it speaks all live in one record per model, with tests that fail the build if a default points at something we cannot call. We learned that the expensive way, by shipping a default that could not.

Which model should you use for customer support?#

The short version: GPT-5.6 Luna and GPT-5.4 nano gave correct answers at roughly a tenth of a cent per reply. Claude Sonnet and Opus were also correct and cost 20 to 46 times more, which this workload does not justify. GPT-4o mini and Claude Haiku are the cheap options from each vendor and both misread the price table.

The broader lesson is about what to test. Reasoning, tone and multilingual fluency are largely solved across this entire price range. All eight models wrote decent Slovenian. All eight declined to invent a discount. All eight picked the right tool.

The two that would have cost a real business real money failed at reading a table of numbers they had already been given.

So test that. Take your own pricing data, ask your own question, and check the arithmetic yourself before trusting an answer that sounds fluent. Then check it again after the next price change. Ours moved the morning we ran this.

If you want the model choice handled for you, HelpStack picks and maintains the default, and you can override it per account in settings. See AI replies for how the drafting flow works, or read how Foto Delavnica runs four storefronts through one inbox.