Product Update
“Calls Placed” Is Not a Metric: Measuring What an AI Voice Agent Actually Did
The vanity number
Every dialler reports calls placed. It is the easiest figure to produce and the least useful one to read, because "placed" only means the carrier agreed to dial.
Everything a business actually wants sits on the other side of that: how many people picked up, how long they stayed, and of the rest, how many were engaged, how many pressed decline, and how many of those numbers are simply dead. A campaign report that stops at 5,000 placed is a receipt, not a measurement.
What a campaign reports
- Placed — calls the carrier accepted. The denominator for everything below it.
- Connected — somebody picked up.
- Connect rate — connected over placed. Blank when nothing has been placed rather than zero, because a campaign that has not started has no connect rate, and 0% reads as one that failed.
- Talk time — seconds of actual conversation, plus the mean length of an answered call.
- Dispositions — how the rest ended, largest group first: No answer, Line busy, Declined, Not reachable, Cancelled, Could not connect.
- Voicemails — counted separately, and this is the decision that matters most.
- Unknown — placed, with nothing recorded about how it went. Named rather than folded into failures, because "we do not know" is a different fact from "it went wrong", and blaming the carrier for a lost webhook puts the wrong number in front of somebody.
Why a voicemail is not a connection
The carrier connects an answering machine exactly the way it connects a person. Media joins, there is a duration, the call is billed. Every signal that says "connected" is true of it except the one that matters: there was nobody there.
So a machine is classified before answered, never as answered, and its seconds stay out of the talk time. Forty seconds of a message read to a recording is not forty seconds of conversation, and averaging it in flatters precisely the number somebody is about to make a decision on. A campaign that left two hundred messages would otherwise report a connect rate near a hundred per cent and mean nothing at all by it.
Voicemail detection is available on ThinnestAI, Plivo and Telnyx numbers, and a detected machine gets a campaign-specific message instead of the agent talking to a beep.
The dispositions decide what happens next
The same classifier that produces the report decides who gets rung again, which is deliberate — a metric that disagrees with the retry logic is a metric nobody can act on.
- Line busy and no answer are retried. The person exists, has the phone, and was not free. Busy retries in minutes; no answer in an hour or more.
- Declined is never retried. A decline is an answer. Ringing back is how a business earns a complaint.
- Not reachable is never retried. Nothing changes in half an hour about a number that does not exist.
Carriers disagree about vocabulary and change theirs faster than a schema does, so the raw hangup cause is stored alongside our classification of it. The report is one reading of that data, not the only reading you will ever be able to get out of it.
Separately from all of this, there is a do-not-contact list — durable suppression that outlives any single campaign, and distinct from per-contact consent.
Every individual call, too
- A full call list with the transcript, recording playback, downloads and a CSV export.
- The transcript is the conversation's own messages, not a second store. That is what lets a phone call and a WhatsApp thread with the same customer sit in one history — and it is why the agent can open a call already knowing you have spoken before.
- The CSV export runs its own query rather than serialising whatever the table happens to be showing. An export covering only the rows somebody scrolled to would be worse than none, because it looks complete. Cells beginning with an equals, plus, minus or at sign are quoted, because a CSV gets opened in a spreadsheet and a value starting with an equals sign is a formula.
- Recordings are deleted after 30 days on Pay As You Go, 75 on Scale. Stated up front, and the console distinguishes a recording that was deleted on schedule from one that never existed — one is a promise kept, the other is a fault.
A/B testing, when you want to change exactly one thing
Two opening lines run against complementary halves of one audience, and each half reports its own connect rate. Same list, same hours, same pool of numbers, one difference. That is the only version of this worth running; comparing last week's campaign to this week's compares the weather as much as the script.
What we do not ship
There is no LLM judge scoring your conversations out of ten for helpfulness, accuracy and tone. We are not going to pretend that number is evidence. A model marking another model's homework produces a figure that moves when you change the judge's prompt, and it is very easy to mistake for measurement because it has a decimal point in it.
What you get instead is what happened: who picked up, how long they stayed, why the rest did not, and the transcript of every single one. Read ten failures properly and you will know more than a composite score would have told you.
We also do not publish a latency or call-quality figure. Carrier-call performance is not something we have measured to a standard we would stand behind, and a number we cannot defend is worse than no number.
Get started
Run a small campaign — a few hundred numbers, one opening line — and read the disposition breakdown before you read the connect rate. Most first campaigns are fixed by changing the calling hours, not the script.
No credit card required • Trial includes 25 voice minutes and 200 chat replies
FAQ
Frequently Asked Questions
What metrics does ThinnestAI report for a calling campaign?
+
Are voicemails counted as connected calls?
+
Which failed calls get retried?
+
Can I export call data?
+
Does ThinnestAI score conversation quality with an AI judge?
+
Docs