Two Chatbot Receipts: $0.03 and $0.31 per Resolved Ticket
01 / Two chatbot receipts for the same month of support tickets
A support chatbot does not get expensive because of one dramatic mistake. It gets expensive one wasted token at a time: a full history resent on every turn, a top-tier model answering order status questions, retrieval chunks nobody trimmed. The only figure worth arguing about is price per useful result, which is total model spend divided by the number of tickets your bot closed without a human touching them.
Here are two receipts for the same workload: 12,000 customer conversations a month, roughly six turns per conversation, a mix of order status, refund requests, password resets and plan questions.
Receipt one: 25,200 model calls, 127,008,000 billed tokens at a blended $1.70 per million tokens, for a total of $215.91. 7,200 conversations ended without a human. That is $0.03 per useful result.
Receipt two: 81,600 model calls, 628,000,000 billed tokens at $2.20 per million, for a total of $1,381.60. 4,450 conversations ended without a human. That is $0.31 per useful result. The monthly gap is $1,165.66, and the cost per useful result is roughly ten times higher.
Both receipts cover the identical ticket mix and use the identical definition of a useful result. Only the plumbing differs. These figures are illustrative arithmetic for a worked example, not vendor quotes or published benchmarks; the point is the shape of the math, not the exact cents. Every team should be able to reproduce these two lines from its own logs in an afternoon.
02 / Where a chatbot token bill actually comes from
Before you optimize anything, split your spend into four buckets and measure them for one week. Most teams find that one bucket dominates.
- ■ Repeated context. The system prompt, the policy document and the last twenty turns get resent on every call. With caching this becomes cheap; without it, you pay full freight dozens of times per ticket.
- ■ Retrieval payloads. Dumping eight chunks into the prompt because top-k was never tuned is a silent multiplier on every call.
- ■ Tool and retry loops. A bot that calls a lookup tool, fails, retries and summarizes can burn three or four calls where one would do.
- ■ Model tier. Using one strong model for everything is the simplest and most common way to triple a bill that did not need to be tripled.
CheapRelay bills per real token, including cache reads and cache writes, with no monthly fee and no subscription, so your invoice maps one to one onto these four buckets. That is exactly the accounting you want when you are trying to make a receipt shrink: you see the caching savings as a real line item rather than a marketing claim, and idle months cost nothing at all.
03 / Routing the easy 80 percent to the cheapest model that can do it
The biggest lever on price per useful result is not a clever prompt. It is deciding, per request, whether the cheap model is enough. In the routed receipt above, about 84 percent of calls never leave the economy tier.
Practical routing rules beat machine-learned routers for most small support teams, because you can read them, edit them and explain them in an incident review:
- ■ Order status, tracking lookups, password reset guidance and FAQ matches go to the economy tier by default.
- ■ Escalate when the customer mentions a chargeback, a legal threat, an accessibility issue or a cancellation after a bad experience.
- ■ Escalate when the cheap model returns low confidence, fails a schema check on its tool call, or loops twice on the same question.
- ■ Escalate on value thresholds you choose, such as refunds above a fixed amount, rather than on vague vibes about the conversation.
Keep the escalation path short and auditable. DeepSeek V4 Flash is a reasonable economy tier for high-volume routine traffic, with a stronger model reserved for the minority of tickets that genuinely need it. Whatever pair you pick, the test is mechanical: rerun last month's transcripts through the new routing table and compare resolved tickets per dollar against the old table before you switch production traffic.
04 / Keeping context small so caching can actually save money
Caching only pays when the cached prefix is stable. Rewrite your system prompt every turn and the cache hit rate collapses; freeze the policy block at the top, append only the live conversation below it, and the cache does the rest. On a relay that bills cache reads and writes as real tokens, you can see this trade-off directly in your usage export.
Three habits keep per-call context flat as conversations grow:
- ■ Pin the policy and tone block at the top of the prompt and never reorder it mid-ticket.
- ■ Summarize once the history passes a fixed budget, then carry the summary plus the last three turns instead of the full transcript.
- ■ Cap retrieval at two or three short chunks and cut boilerplate headers out of the documents you index.
Notice what changed between the two receipts: average billed tokens per call fell from about 7,700 to about 5,040, and calls per conversation fell from 6.8 to 2.1. Token discipline and call discipline multiply each other. That is why the cheap receipt is not merely slightly cheaper, it is a different order of magnitude per result.
05 / Defining a useful result before counting it
Price per useful result is meaningless until you fix the definition. A resolution is a conversation that closed without human intervention and was not reopened within seven days. Reopens count as failures, not as new successes, or your metric will flatter the bot while your agents absorb the cleanup.
Track the denominator carefully as well:
- ■ Resolution rate by intent, so you can see which categories the economy tier handles well and which should be routed up immediately.
- ■ Handoff rate and handoff quality, meaning whether the human received the full summary instead of starting from zero.
- ■ Cost per resolution and cost per conversation, both computed from the same token export so no cost is double-counted.
- ■ Reuse rate of cached prefixes, since a falling hit rate is usually the first sign that someone is editing the system prompt.
Report these weekly in one table. A support chatbot project that reviews a single price-per-result line every week stays cheap; one that reviews only answer quality tends to drift upward in spend without noticing.
06 / Keeping the receipt flat while ticket volume climbs
Volume growth is where cheap setups quietly become expensive ones. Set a monthly token budget in your dashboard, alert at 50 and 80 percent, and let the routing table absorb the growth rather than the invoice. When a new intent appears, first try it on the economy tier with a tighter prompt before you promote it to the expensive tier.
Operationally, keep one key and one OpenAI-compatible base URL so your logging is centralized. CheapRelay gives you one key for Claude, GPT, Gemini, DeepSeek and more, and it works with Claude Code, Codex, Gemini CLI and any OpenAI SDK, so a routing change is a config edit rather than a migration. Sign up at CheapRelay and point your existing OpenAI client at the relay to run this accounting against your own traffic; if you send other teams there, the referral reward is 20 percent of what invited users pay.
The final discipline is arithmetic. Every month, recompute the two lines that started this article: total model spend and useful results. If price per useful result moves more than a few cents, find out which of the four buckets moved before you buy anything new. Cheap support bots are not built once; they are kept cheap by a receipt you read every month.
Sign up Try the prices yourself, sign-up credit included.
More reading
| Date | Aisle | Written in | Title |
|---|---|---|---|
| 2026-10-30 | Spend less | EN | Two Receipts, 2 Million Tokens, $0.80 Saved Two receipts for the same 2 million tokens: one bills input and output, the other caches. Same results, $0.80 cheaper per cycle. |
| 2026-10-30 | Spend less | EN | Software 0 Cents, AI Capped at 40,000 Tokens A beginner weekend plan for a receipt-sorting CLI: free tools, one API key, and a hard cap of 40,000 tokens. |
| 2026-10-30 | Spend less | EN | Tag 10,000 Feedback Lines for About $0.66 A beginner walkthrough: tag 10,000 feedback lines with a cheap model for roughly $0.66, plus batching, caching and a human review plan. |
| 2026-10-30 | Spend less | EN | One AI Request Costs $0.004: The Receipt Math Estimate cost per user for an AI feature on a tiny budget: token counting, cache billing, a $20/month worked example, and a receipt line that proves it. |
| 2026-10-30 | Spend less | EN | 50k tokens, one key, under $1: a fair price check A beginner, tiny-budget walkthrough for comparing official list prices with relay prices using per-token math, cache lines and a real receipt. |
| 2026-10-30 | Spend less | EN | $0.0031 per accepted answer: rank models by the receipt A beginner walkthrough of cost per accepted answer, run on a $10 budget with two toy price schedules and a real receipt line. |