In August I published a model of what it costs you not to answer WhatsApp after hours. That article was full of my own assumptions and I said so in the first line. This is the other side of the calculation — what it costs to actually answer with an AI agent — and here there are no assumptions: these are the numbers from one run, measured on September 6, 2026.
Spoiler: the full conversation, eight replies covering prices, hours and an objection, cost four Mexican cents. Forty-two thousandths of a peso, to be exact.
That number alone means nothing. What follows is where it comes from, what it does not include, and why half the replies cost zero.
Where each number comes from
I start here because it is what I ask of anyone who shows me projections. The difference with the August article is that its table had four rows of "my own assumption" and this one has none.
| Figure | What it is | Source |
|---|---|---|
| Cost, tokens and milliseconds of each reply | Measurement | The agent's own usage table — the same one you would bill from. Not an estimate made beforehand: a record kept afterwards |
| Where the router sent each message | Measurement | The router running over five phrases, clocked in microseconds |
| Blocked and allowed phrases | Measurement | The guardrails executing over five real phrases |
| Model accuracy | Measurement | Validation against examples the model never saw in training |
| Peso-dollar exchange rate | Parameter | 18.5 MXN/USD, set in the profile. If yours differs, everything scales proportionally |
| That it will cost you the same | I do not know | It depends on your provider, your model and how long your business context is. I explain what moves the number at the end |
The conversation, reply by reply
A message arriving on a Tuesday at 21:32 — after hours, since the business closes at six. Someone asks about prices, then hours, then whether they are talking to a robot, then what happens if it does not work, and finally asks for an appointment. Eight replies.
| # | What it answered | Who answered it | Tokens | Time | Cost |
|---|---|---|---|---|---|
| 1 | The opening greeting | Fixed profile text | 0 | — | $0.000 |
| 2 | Returned the diagnostic question | Large model | 2,875 | 573 ms | $0.008 |
| 3 | Price ranges, retrieved from the knowledge base | Cheap model | 3,805 | 1.1 s | $0.008 |
| 4 | Opening hours | Local brain | 0 | 9 ms | $0.000 |
| 5 | Asked for name and phone to hand over to an advisor | Large model | 3,371 | 616 ms | $0.010 |
| 6 | "Is this a robot?" — said yes and offered a human | Local brain | 0 | — | $0.000 |
| 7 | The 30-day guarantee | Cheap model | 3,622 | 21.6 s | $0.007 |
| 8 | Asked for booking details | Large model | 3,150 | 502 ms | $0.009 |
| Total | $0.042 MXN | ||||
Two things in that table I am not hiding.
Reply 7 took 21.6 seconds. The provider stalled. It is not normal — the other five ran from half a second to one second — but it happens, and deleting it from the table would be exactly what I criticize about product demos. An agent that never fails in the demo is an agent you are not being shown.
Three of the eight replies cost zero. That is the interesting part.
Why most replies cost nothing
The common belief is that every message an AI answers gets billed. It does not have to be that way. Before touching the network, a two-megabyte model reads the message and decides who answers it. There are four paths, and the expensive one is last.
These five phrases went through that router with the clock running:
| Message | Where it went | Time to decide |
|---|---|---|
| "what time do you close on Fridays" | Answers it itself — 0 tokens | 3,316 µs |
| "hey, where are you located?" | Answers it itself — 0 tokens | 290 µs |
| "what services do you offer" | Cheap model | 206 µs |
| "that's expensive for what it is" | Reasoning model | 264 µs |
| "my competitor uses another agency, why should I believe you?" | Reasoning model | 311 µs |
Microseconds, not milliseconds: deciding where to send the message costs four matrix multiplications and happens roughly a thousand times faster than the answer itself.
Look at the last row. The small model landed at 17% confidence — it did not really understand the question. And precisely because of that it escalated instead of answering. Confidence is not there to brag on a slide; it is there to brake.
The fourth path is the cache, and it does not match on similarity alone: intent and similarity have to line up. It was taught one answer to "what services do you offer" and then asked the same thing four different ways. It reused the answer three times. The fourth was "how much does it cost", which looks similar but is not the same question, and there it did ask again. That distinction is what makes a cache useful instead of harmful.
What those four cents do NOT include
This section is what makes the number above mean something.
- It does not include WhatsApp. Meta's official API bills per conversation, separately, and that rate is set by Meta, not by the model.
- It does not include installation. Connecting WhatsApp, phone, calendar and CRM, and loading the business information, is work that gets quoted.
- It does not include the server. Local models run somewhere.
- It is one conversation, not an average. Eight replies on a Tuesday. Not a benchmark, not a month of operation.
And three things move the number up, worth knowing before you ask for a quote:
- How long the context is. Every reply that touches the network carries the full system prompt. In this run it weighs about 1,800 tokens; load an entire catalog and it climbs.
- Which model you use. Open models are cheap here. A frontier model can cost ten or twenty times more for the same text.
- What share of messages the local brain can handle. In this conversation it was three of eight. In a business where almost everything is hours and location, it goes up; in consultative sales, it goes down.
What it will not say
Cost is the interesting half. The other half is what happens when a conversational agent gets carried away.
Before saying anything, the reply goes through two filters: a list of written rules and a model trained for whatever got phrased differently. These five phrases went through it, live:
| Phrase | Verdict | Caught by |
|---|---|---|
| "This will bring you about forty more patients a month." | Blocked — promises results | The model |
| "I guarantee you results from the first week." | Blocked — promises results | A written rule |
| "You will make it back in two months, risk free." | Blocked — promises results | The model |
| "I guarantee it will be installed within four weeks." | Passes | — |
| "I can tell you what gets installed and how long it takes, not how many patients you will have." | Passes | — |
Look at the middle two. The word "guarantee" is in both and one passes. What changes is what is being guaranteed: the work can be guaranteed, a number of customers cannot. A banned-words list cannot tell those apart — which is why there is a model trained to, and why the rule filter alone is not enough.
When it blocks, it does not go silent. Instead of the forbidden phrase it says this:
I'll be honest with you: I can't promise you a number of results. What I can guarantee is the work — what gets installed and how long it takes. Shall we go over it calmly?
For a clinic the list is different and more serious: the first thing blocked is diagnosing. A receptionist does not diagnose even when asked, and neither does this.
How often it misreads
Four small models, trained on the business, with accuracy measured against phrases they never saw in training:
| What it decides | Accuracy | Size |
|---|---|---|
| What the person writing wants | 92.6% | 45 intents · 4,127 examples |
| Whether what it is about to say is allowed | 100.0% | 6 classes · 2,805 examples |
| Which field of an unknown CRM is which | 98.9% | 20 classes · 5,318 examples |
| The same, for a dental practice | 93.2% | 31 intents · 3,510 examples |
92.6% means it misreads about seven of every hundred messages. That is the honest number, and it is why the confidence brake exists: when it is not sure it does not guess, it escalates. A system that is right 92.6% of the time and knows when to doubt is usable; one that is right 92.6% of the time and answers with the same certainty every time is not.
The 100% on the second row is not magic either: six classes over a much narrower problem — whether a phrase promises results — with almost three thousand examples. It is the kind of problem where a small model hits 100%, and even so the written-rule filter sits behind it just in case.
What I am not telling you
In writing, because the opposite is everywhere in this field:
- I am not telling you this will bring you customers. It answers messages; whether an answered message becomes a sale depends on your offer, your prices and your team.
- I am not telling you it replaces anyone. It answers what can be answered with what you already know about your business, and hands the rest to a person.
- I am not telling you it will cost you four cents a conversation. I am telling you what this one cost, with which model and which context size, so you have a reference to argue any quote against — mine included.
If someone offers you an AI agent and cannot break down a conversation like this, it is not that they will not: it is that they are not measuring it.
How to see this yourself
The numbers above came from a run of the agent I use, and everything on this page can be re-measured when it changes. If you want to see it working — with the numbers on screen, not on a slide — it is explained in detail on the Luna page, and you can message me on WhatsApp so I can show you the thing running.
And if you already have an agent installed, the most useful question to ask whoever sold it to you is simple: what did the last conversation cost, reply by reply?
