Most of your calls are ordinary back-and-forth
Telnyx
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.
TTFAB — time to first audio byte— is the gap between the caller going quiet and the agent's first sound. The pause a real caller sits through on every turn. Lower is better. Lowest median so far: Telnyx at 1,296 ms. Steadiest on its worst turns: ElevenLabs at 1,768 ms p95.
When someone asks which voice agent platform is fastest, the useful answer is not a podium. The same measurement read two ways picks two different winners. Ask which pause your callers would actually notice, then route to that winner and the measured number behind it.
Telnyx
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.
ElevenLabs
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.
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).
Every platform is reported on two readings of that same measurement, and a platform can lead one without leading the other.
| 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. |
Tail ratio is the two readings divided — p95 ÷ median — and it is the one number a vendor cannot usefully publish about itself, because it only means anything when a single instrument produced both figures on the same calls. 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. On a phone call that is where the damage is: past roughly two seconds of silence a caller assumes the line dropped and starts talking over the agent, which collides with the reply and derails the turn. So a platform can win the median and still do that to callers twice a conversation — read the tail ratio before the median, not after it.
Pooled over every usable turn (4 measured turns per call). Discarded turns are counted, not hidden — a platform that fails to answer is worse than one slightly slower.
| # | Platform | Official docs | TTFAB p50 | TTFAB p95 | Tail ratio | Usable turns | Cost/min |
|---|---|---|---|---|---|---|---|
| 1 | Telnyx benchmark page → | Telnyx official docs | 1,296 ms | 1,856 ms | 1.43× | 419/432 | $0.0500 |
| 2 | ElevenLabs benchmark page → | ElevenLabs official docs | 1,424 ms | 1,768 ms | 1.24× | 429/432 | $0.0794 |
| 3 | Bland AI benchmark page → | Bland AI official docs | 1,520 ms | 2,248 ms | 1.48× | 429/432 | $0.1408 |
| 4 | Vapi benchmark page → | Vapi official docs | 1,558 ms | 2,008 ms | 1.29× | 382/432 | $0.0836 |
| 5 | Retell AI benchmark page → | Retell AI official docs | 1,740 ms | 2,259 ms | 1.30× | 419/430 | $0.1341 |
Discarded turns: Telnyx 13 (vad_disagree ×9, no_response ×4); ElevenLabs 3 (vad_disagree ×3); Bland AI 3 (vad_disagree ×2, no_response ×1); Vapi 50 (vad_disagree ×49, no_response ×1); Retell AI 11 (vad_disagree ×10, double_talk ×1). A discard is a turn we refuse to time, not one the platform failed — it is counted here rather than dropped silently.
Last call placed: 2026-08-01 01:26 UTC. Every call on this board carries its own placement and hangup timestamp, published per call in openbenchmarks-labs/voice-agent-latency.
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 rather than a question, and a low median there means different things on different platforms. It can be a genuinely quick complete reply — one platform answers the goodbye in about a second and speaks for as long as it does on any other turn. Or it can be a false start: Vapi's goodbye reply lasts a median of 399 ms against roughly 2,400 ms on its question turns, and on 44 of 89 kept turns more than half a second passes between the first sound and the actual reply. That is the agent starting, stopping and resuming, so the figure records when it first made a sound rather than when it answered. Retell AI shows a milder version of the same thing. Check the reply completed before reading a low goodbye number as speed.
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.
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.
So no platform timestamp is used anywhere on this board. No dashboard figure is copied. Both ends of every measurement are found in the call's own recording. A speech detector locates the moment our caller stops talking and the moment the agent's audio starts. An energy pass refines each to the sample. A second, independent detector has to agree — where the two disagree beyond tolerance, the turn is discarded rather than averaged. The analyzer runs offline on the saved audio, with no credentials and no network. Anyone who does not trust us can re-derive every figure from the recording.
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.
Every published figure is re-derivable. The caller harness, the offline analyzer, and the per-call artifacts — per-turn timings, quality gates, config receipts — are open at openbenchmarks-labs/voice-agent-latency. 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.
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 could not time to our own standard: the two sides talked over each other, our two speech detectors disagreed on where speech began, or no reply came. Discards are published per reason and per platform, because the count is sometimes a fact about the platform rather than about us — an agent that starts a reply, stops, and resumes a second later will split our detectors, and that is the agent's behaviour, not our recording's.
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.
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).
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.
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.
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.
No. None of the 5 measured platforms has a median caller-experienced TTFAB below one second or 500 ms in the current benchmark. The lowest measured median is Telnyx at 1,296 ms. TTFAB here covers the complete pause from the caller finishing speech to hearing the agent's first audio over a real phone call; a server-side vendor TTFB can exclude endpointing, telephony, and network delay.
The comparison table links directly to the official voice-agent documentation for every measured platform: Telnyx, Bland AI, ElevenLabs, Retell AI, and Vapi.
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.
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.
Read the board by intent, or compare two platforms directly — every page is built from this live benchmark data, so they move when a new platform lands.