ThinnestAI is now an Official Meta Tech Provider
Back to Blog

Product Update

“Calls Placed” Is Not a Metric: Measuring What an AI Voice Agent Actually Did

T
Thinnest AI Team
Feb 27, 2026 6 min read
“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.

Run a calling campaign free →

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?

+
Calls placed, calls connected, connect rate, total and average talk time, a disposition breakdown (No answer, Line busy, Declined, Not reachable, Cancelled, Could not connect), voicemails counted separately, and an explicit unknown bucket for calls where nothing was recorded.

Are voicemails counted as connected calls?

+
No. A machine is classified before answered and never as answered, and its seconds are kept out of the talk time. A carrier connects an answering machine exactly like a person, so counting it as a connection would let a campaign that left two hundred messages report a connect rate near a hundred per cent.

Which failed calls get retried?

+
Line busy and no answer — the person exists, has the phone, and was not free. Busy retries in minutes and no answer in an hour or more. Declined is never retried, because a decline is an answer, and a number that is not reachable is never retried either.

Can I export call data?

+
Yes. Every call has a transcript and, where recording is enabled, playback and download. The CSV export runs its own query rather than serialising the visible table, so it covers the whole result set rather than the rows you scrolled to. Recordings are deleted after 30 days on Pay As You Go, 75 on Scale.

Does ThinnestAI score conversation quality with an AI judge?

+
No. There is no LLM-as-judge scoring. A score produced by one model reading another model’s output changes when you change the judge’s prompt, which makes it easy to mistake for evidence. You get outcomes, talk time, dispositions and full transcripts instead.

Newsletter

Subscribe to our newsletter

Get the latest AI updates delivered directly to your inbox.