Voice agent end-to-end latency, turn by turn
End-to-end latency for a voice agent is the whole gap a caller sits through: their last word to the agent's first sound, with speech recognition, the model, speech synthesis, the network and the phone leg all inside it. That is the figure measured here — read from the call's own recording, so nothing in the chain can be excluded by whoever is reporting it. 5 platforms over 2078 usable turns; the shortest typical pause so far is Telnyx at 1,296 ms. A single pooled number can hide a platform that starts fast and degrades, so it is also reported per turn.
Two numbers per platform, and they can disagree
TTFAB is reported twice for every platform. A platform can lead one reading without leading the other, so the table below carries both.
| Reading | The question it answers | What it means |
|---|---|---|
| Median (p50) | How long is the pause on a normal turn? | Half of all turns are faster than this. It is the wait a caller gets most of the time, and the number to compare if the calls you care about are ordinary ones. |
| Tail (p95) | How bad is it when it is bad? | One turn in twenty is at least this slow. It matters more than it looks on a phone call: past roughly two seconds of silence a caller assumes the line dropped and starts talking again, which collides with the agent's reply and derails the turn. A platform can win the median and still do this to callers twice a conversation. |
TTFAB data, lowest median first
Every figure read off the call's own audio, pooled over usable turns. Discarded turns are counted, not hidden — a platform that fails to answer is worse than one slightly slower.
| # | Platform | Median TTFAB | p95 | p95 / median | Usable turns | Discarded |
|---|---|---|---|---|---|---|
| 1 | Telnyx | 1,296 ms | 1,856 ms | 1.43× | 419 / 432 | 13 |
| 2 | ElevenLabs | 1,424 ms | 1,768 ms | 1.24× | 429 / 432 | 3 |
| 3 | Bland AI | 1,520 ms | 2,248 ms | 1.48× | 429 / 432 | 3 |
| 4 | Vapi | 1,558 ms | 2,008 ms | 1.29× | 382 / 432 | 50 |
| 5 | Retell AI | 1,740 ms | 2,259 ms | 1.30× | 419 / 430 | 11 |
The p95 / median column is the two read together — the tail penalty. At 1.2× a platform's bad turns feel close to its normal ones. At 3× a caller regularly waits three times what the median promised.
Does the pause grow as the conversation goes on?
The same median TTFAB, split by position in the call. An end-to-end figure pooled over a whole conversation hides whether a platform degrades turn over turn — this is that figure taken apart.
| Platform | Turn 1 | Turn 2 | Turn 3 | Turn 4 — goodbye |
|---|---|---|---|---|
| Telnyx | 1,376 ms | 1,426 ms | 1,344 ms | 1,046 ms |
| ElevenLabs | 1,429 ms | 1,412 ms | 1,430 ms | 1,422 ms |
| Bland AI | 1,545 ms | 1,544 ms | 1,518 ms | 1,508 ms |
| Vapi | 1,636 ms | 1,587 ms | 1,558 ms | 680 ms |
| Retell AI | 1,747 ms | 1,702 ms | 1,756 ms | 1,726 ms |
Read the last column carefully. Turn 4 is a scripted goodbye, not a question — the agent has almost nothing to decide. Where a platform posts a much lower median there, it is answering something easier, not getting faster as the call goes on. Compare platforms to each other within a column, never a platform to itself across the goodbye boundary.
Across the 3 question turns the medians barely move. The widest swing inside any one platform is 82 ms, and the largest increase between the first question turn and the last is 9 ms (Retell AI) — 0.5% of its own median. On this cohort no platform measurably degrades as a four-turn call goes on. Our speech-end detector carries a few milliseconds of error, so the smallest of these movements are not resolvable and no direction is claimed for them.
There is no single fastest voice agent platform — which one wins depends on which pause your callers actually notice. Pick the workflow that matches yours:
- Most of your calls are ordinary back-and-forthTelnyxmedian 1,296 ms
Every turn is a normal question with a normal answer, so what matters is the wait a caller gets most of the time rather than the worst case.
- A caller must never think the line droppedElevenLabsp95 1,768 ms
Long pauses make callers talk over the agent or hang up, and that is a property of the slow turns, not the typical ones. Judge on the tail.
Full ranking, both readings, and the discard counts: the voice agent latency benchmark →
Read off the call's audio, never from a platform's timestamp
A platform measures from where it stands, and the caller is not standing there. We checked that two ways on this bench. A platform's own recording of a call reads roughly 550 ms earlier than our recording of the same call. The latency a platform reports for itself runs roughly 490 ms below what we measure from that call's audio. The two figures agree, and that agreement is the finding: both describe the moment a reply was produced, not the moment a caller heard it. Neither is dishonest — they answer a different question than the one a caller is asking. This board answers the caller's.
1. A caller robot dials the platform's agent over a real phone call and reads a fixed script — a greeting, several scripted questions, and a goodbye — one measured turn each.
2. Both sides of the call are recorded on one clock (a dual-channel recording).
3. Both endpoints are then found in that recording: our speech-end (t1) and the agent's reply start (t2), each by a speech detector (Silero VAD) with an energy refinement and an independent cross-check. No timestamp reported by any platform is used.
4. TTFAB = t2 − t1, per turn. Turns failing quality gates (the two sides talking over each other, detectors disagreeing, no reply) are discarded and the discard counts are published.
Recording-path overhead sits inside every figure here. We have not characterised the current path against a known-delay reference, so we quote no overhead figure and subtract none.
We always call from Plivo, which is not a platform under test, but the leg that answers belongs to whoever ships the number: Telnyx on its own network, Retell's and Bland's Twilio-backed inside their own accounts, Vapi's upstream undisclosed, and ElevenLabs — which sells no numbers — on a Twilio number we bought for it. Twilio was a deliberate choice there: a Telnyx number would have worked, but Telnyx is itself on this board, and one platform's network should not carry another platform's row.
A discarded turn is one we refuse to time, not one the platform failed. The two sides talked over each other, our detectors disagreed, or no reply came. Discards are published per reason, because a platform that never answers is worse than one that answers slowly.
Our speech-end is found by a detector, not by matching a known waveform. It carries a few milliseconds of error. Differences smaller than that are not resolvable, and we do not claim them.
Cost/min is measured the same way the latency is: from what actually happened, not from a rate card. After a run we ask each platform's own billing API what every call cost, sum those charges, sum the seconds each platform says it invoiced for, and divide — total cost ÷ total billed minutes, pooled across the run rather than averaged per call, so a long call weighs more than a short one. Two consequences worth knowing. Where a platform bills a minimum, the figure is lower than the cost of a minute of conversation: Telnyx charges 60 seconds for a ~44-second call, so its invoiced $0.0500 sits against $0.0722 per minute actually spent talking, and both are published. And the carrier leg is excluded throughout — that is our cost for dialling, identical for every platform, and folding it in would tax each row for our own plumbing. Anything that qualifies a figure — a free or discounted tier, a unit conversion, an excluded component — travels with it in cost_notes rather than being silently absorbed.
Endpointing — how long a platform waits after you stop talking before it decides you are finished — is pinned to 0.1 s on Telnyx, Vapi and Retell. It is the one setting we do not leave at the default, and the reason is that it is a timer sitting inside the number being measured: a platform that ships a 1.5 s wait posts a slower TTFAB without its stack being any slower, and the board would be comparing configuration choices rather than engineering. Vapi shipped 0.4 s (1.5 s after speech ending without punctuation) and Retell 1000 ms; both now run 0.1 s. Bland and ElevenLabs expose no equivalent fixed-wait knob, so they run whatever they ship and their figures still contain a wait we could not equalise.
Full method, the per-turn latency curve, and the instrument's own limits are on the voice agent latency benchmark.
Voice agent end-to-end latency — common questions
What counts as end-to-end latency for a voice agent?
The caller's version of it: from the moment they stop speaking to the moment they hear the agent begin. Everything the platform does in between is inside that number — endpointing, speech recognition, the model's turn, speech synthesis, and the network and telephony legs on both sides. It is deliberately not measured from the platform's own entry point, because a caller does not stand there. Where a platform reports a figure for itself, it typically starts its clock later than the caller's ear does.
Can you break the latency down into STT, LLM and TTS?
No, and the reason is the same one that makes the total trustworthy. This board measures from outside the platform, in the audio of the call, where the only two observable events are the caller going quiet and the agent starting to speak. A per-component latency budget — so many milliseconds of speech recognition, so many of model time, so many of speech synthesis — can only come from the platform's own internal instrumentation, which is exactly the source this benchmark exists not to rely on. What you get here is the number the caller experiences, measured independently; what a component breakdown gives you is the vendor's account of its own internals.
Is end-to-end latency or per-turn latency the right metric?
They are the same measurement at two resolutions. Every figure here is per turn to begin with; the headline median and tail are those per-turn figures pooled across the whole run. Pool them when you want one number to compare platforms on. Read them per turn when you want to know whether a platform holds up as a conversation goes on — a platform that answers the first question quickly and slows down afterwards has the same pooled median as one that is evenly mediocre, and callers experience the two very differently.
Which voice platform has the lowest end-to-end latency?
On the measured median, Telnyx at 1,296 ms, with a p95 of 1,856 ms over 419 usable turns. Whether that is the right pick depends on which pause your callers notice: the median describes an ordinary turn, and the tail describes the turns where a caller starts wondering if the line dropped. Both are on the table above, per platform and per turn.
What is TTFAB (Time To First Audio Byte)?
Time from the moment the caller stops speaking to the moment the agent's audio starts — the silence a real caller sits through on every turn. Measured from a saved recording of the actual phone call, not from any API timestamp. Lower is better. Also written time to first audio byte, and closely related to what other boards call time to first byte (TTFB) or time to first audio (TTFA).
Is TTFAB the same as time to first byte (TTFB) or time to first audio (TTFA)?
Close, and the difference is worth knowing. Time to first byte (TTFB) is borrowed from HTTP, where it means the first byte of a response leaving a server; applied to a voice stack it usually means the first byte of synthesised audio leaving the platform. Time to first audio (TTFA) is used loosely for much the same thing. TTFAB as measured here starts and ends somewhere else: it starts when the caller stops speaking, not when the platform decides they have, and it ends when the agent's audio is present in the recording of the call, not when the platform emitted it. So it contains the endpointing wait and both network legs, which a server-side first-byte figure does not. Expect it to read higher than a vendor's TTFB for the same call, and expect the gap to be the part of the wait the caller experiences and the server never sees.
How is this different from vendor-reported latency?
A platform measures from where it stands, and the caller is not standing there. We checked that two ways on this bench. A platform's own recording of a call reads roughly 550 ms earlier than our recording of the same call. The latency a platform reports for itself runs roughly 490 ms below what we measure from that call's audio. The two figures agree, and that agreement is the finding: both describe the moment a reply was produced, not the moment a caller heard it. Neither is dishonest — they answer a different question than the one a caller is asking. This board answers the caller's.
How is the latency actually measured?
A caller robot dials the platform's agent over a real phone call and reads a fixed script — a greeting, several scripted questions, and a goodbye — one measured turn each. Both sides of the call are recorded on one clock (a dual-channel recording). Both endpoints are then found in that recording: our speech-end (t1) and the agent's reply start (t2), each by a speech detector (Silero VAD) with an energy refinement and an independent cross-check. No timestamp reported by any platform is used. TTFAB = t2 − t1, per turn. Turns failing quality gates (the two sides talking over each other, detectors disagreeing, no reply) are discarded and the discard counts are published.
Why not pin the same model, speech recognition and voice on every platform?
The stack is not pinned. Each agent runs the model, speech recognition and voice the platform gives a new signup, and we record what it chose. Endpointing is the single exception — it is a timer inside the number we report, so where a platform exposes it we set it to 0.1 s. That one override is stated in full below. Pinning a stack measures a platform you would have to configure to match, not the one you would buy — and it excludes the vertically integrated platforms outright, since you cannot drop a third-party speech recogniser into a platform that owns its own.
What does this benchmark NOT measure?
Not measured: answer quality, voice quality, platform features, and published pricing plans — this board measures response latency, with the cost each platform actually invoiced for the same run reported beside it. Nor is it every platform. LiveKit Agents and Pipecat are frameworks you host yourself, so what a benchmark would time there is somebody's deployment rather than a product. The raw speech-to-speech APIs — OpenAI's Realtime API, Gemini Live — answer a socket, not a phone, and would need a telephony layer built around them first, which would then be inside the measurement. Twilio's own agent product simply has not been dialled yet. Until any of them is measured on the same script over the same carrier, this board has no number for it, and neither does anyone quoting one. Treat those as vendor claims until measured.