ElevenLabs v4 Turbo trial — Clara voice latency, 2026-09-28

Proposed — pending review

We tried ElevenLabs' new voice model on a copy of Clara and compared it with today's model on the same six scripted calls. Below: what we measured, a 30-day guest card audit, and the decision for Fede.

2026-09-28 · decision pending: Fede

Contents
  1. TL;DR
  2. What v4 Turbo is
  3. How we tested
  4. Results
  5. Guest card audit, last 30 days
  6. What else v4 brings, and the rollout plan
  7. Willows proof on the real test line
  8. Decision
  9. Artifacts

1. TL;DR (updated 2026-09-29, after the Willows test)

Recommendation: hold production on today's model (v3). Keep the Willows test property on v4 Turbo.

2. What v4 Turbo is

Sources: TechCrunch launch coverage · ElevenLabs model docs

3. How we tested

Show the method
  • Production baseline: ElevenLabs' own per-turn timings on the last 30 real triage calls and 10 real leasing calls.
  • Arm A and Arm B: throwaway copies of production triage and leasing (current prompts, production tools and webhooks, triage-to-leasing handoff pointed at the copied leasing agent). Arm A stays on v3. Arm B uses v4 Turbo.
  • Volume: 3 robot calls per script, 2 scripts per arm. Same robot caller voice (Mark, eleven_turbo_v2). Same time window (01:23–01:45 UTC, 2026-09-29).
  • Metrics (ElevenLabs per-turn timings): language model time to first token, language model first sentence, voice engine time to first byte, and audio since silence (how long the caller waits after they stop talking).
  • Judge: the same Fable judge the nightly review uses.

4. Results

Full results table

All times in milliseconds. “n turns” is the number of agent turns measured.

Metric (ms)p50p90meann turns
Production baseline, v3 (real calls) — triage
LLM time to first token90214241017142
LLM first sentence106217601272–
Voice-engine time to first byte155197158–
Audio since silence187131732862123
Production baseline, v3 (real calls) — leasing
LLM time to first token9421469108645
LLM first sentence126017681364–
Voice-engine time to first byte280441320–
Audio since silence22994493255218
Arm A, exact clone on v3 — triage
LLM time to first token9571552107223
LLM first sentence140522651523–
Voice-engine time to first byte14316114426
Audio since silence17743389185823
Arm A, exact clone on v3 — leasing
LLM time to first token9891358103023
LLM first sentence132417061367–
Voice-engine time to first byte13415413526
Audio since silence17812412175626
Arm A, exact clone on v3 — overall
Voice-engine time to first byte13816113952
Audio since silence17742894180449
Arm B, same clone on v4 Turbo — triage
LLM time to first token9161617106617
LLM first sentence117919421346–
Voice-engine time to first byte82918320
Audio since silence22243549232217
Arm B, same clone on v4 Turbo — leasing
LLM time to first token941110094321
LLM first sentence128814221268–
Voice-engine time to first byte83918324
Audio since silence31523694274924
Arm B, same clone on v4 Turbo — overall
Voice-engine time to first byte83918344
Audio since silence28903709257241

Judge pass / fail

ScriptArm A (v3)Arm B (v4 Turbo)
Triage0 of 3 pass0 of 3 pass
Leasing2 of 3 pass1 of 3 pass

The triage script is a known-behavior scenario that fails on today's production prompt too. It is not a model effect.

What the numbers mean

The voice engine is 55 ms faster per turn on v4 Turbo (139 to 83 ms mean). The language model takes about 950 ms on both, and it dominates what a caller hears, so the felt change is small. Audio since silence is higher in the v4 arm, which we did not expect.

Why audio-since-silence went up

We broke every v4 turn down into its parts: how long Clara waited after the caller stopped, the language model’s time to its first sentence, the voice engine’s time to its first byte, and whatever is left over.

The leftover comes in two sizes: about 0.4–1.0 s on turns that open with a full sentence, and about 1.5–1.9 s on turns that open with a short acknowledgement (“Great!”, “Perfect!”, “Got it”) followed by a question. Leasing is hit harder because its qualifying turns are mostly that shape. Working hypothesis, unproven: v4 Turbo reports its first byte on an early packet, then takes over a second to start real speech on a short fragment. Two ways to confirm: measure leading silence in the response audio, or merge the acknowledgement into the next sentence on one call. Transcripts showed no speech artifacts (no stage directions read aloud, no cut-off words); every call ended by the caller hanging up, none dropped.

5. Guest card audit, last 30 days (2026-08-29 to 2026-09-28)

A read-only count of AppFolio guest cards created in the window, for the companies that have data in production. Test and staff companies are excluded.

Takeaways

Guest card tables and caveats

Volume per company

CompanyGuest cards created (AppFolio)Inquiry rows in window (cross-check)
Western Slope109161
Camellia / JP&Co2441
Situs Group0 (no rows)0
Yale 25 Station0 (no rows)0
Total133202

The inquiry count is higher because it includes every prospect row on our side, not only AppFolio cards. Situs Group has no properties in production. Yale 25 Station has no mirrored cards.

Lead source (as AppFolio records it, 133 cards)

Lead sourceCount%
Zillow Rental Network4130.8%
Apartments.com2015.0%
No Source Recorded139.8%
Website129.0%
Rent. (Rent.com)129.0%
Zillow129.0%
Referral53.8%
Caller Didn't Provide Source43.0%
Phone Call43.0%
Realtor.com32.3%
Uloop21.5%
Zumper21.5%
Shared Application Link21.5%
Rentler10.8%
Walk-in00%

Zillow combined: 53 (39.8%). No source at all (“No Source Recorded” plus “Caller Didn't Provide Source”): 17 (12.8%).

Who created them (robot read of all 133 cards)

CompanyCardsSystemStaff by nameStaff, blank nameUnknownNamed people / labels
Western Slope10973 (67%)28 (26%)6 (6%)2 (2%)Assistant PM 13, Kat Barker 11, Clara Propflow 4
Camellia / JP&Co2417 (71%)3 (12%)4 (17%)0 (0%)Erika Wieser 3
All13390 (68%)31 (23%)10 (8%)2 (2%)Assistant PM 13, Kat Barker 11, Clara Propflow 4, Erika Wieser 3

“Assistant PM” is a shared login label, not a person. Creator comes from AppFolio's own activity log (Guest Card Received = system, Guest Card Created = staff). 133 cards read, 0 errors.

Lead source by creator

Lead sourceCardsSystemStaff (named or blank)Unknown
Zillow Rental Network413830
Apartments.com202000
No Source Recorded13490
Rent.121200
Zillow121110
Website12750
Referral5050
Caller Didn't Provide Source4022
Phone Call4040
Realtor.com3300
Uloop2200
Shared Application Link2020
Zumper2200
Rentler1100

Per week

WeekWestern SlopeCamelliaTotal
Aug 29 – Sep 425934
Sep 5 – Sep 1128230
Sep 12 – Sep 1829433
Sep 19 – Sep 28 (10 days)27936
Total10924133

Caveats

  • Before the robot read, only 34 of 133 cards had a creator on record. The robot read covers all 133.
  • Our own earlier creator stamp was unreliable: seven cards were stamped “staff” with a note line instead of a person. The robot read shows the real creator (Erika Wieser on three, blank on four).
  • Camellia's mirror looks thin and may be incomplete, and started only on 2026-09-20. Treat 24 as a floor; 41 is the upper bound from our inquiry rows, which include non-AppFolio rows.
  • Western Slope's mirror looks complete (1,065 guest cards mirrored against a 1,172-card export; the gap is unexplained). The 109 is the number we trust most.
  • Two counts, not one reconciled number: the AppFolio mirror (133) versus our inquiry rows (202).
  • Dates use AppFolio's “Received” time, not the time we synced the card. The last week is 10 days long.
  • Lead source is AppFolio's wording. “Zillow” and “Zillow Rental Network” are kept separate in the table and combined in the note. We did not verify what “Website” means.
  • Yale 25 Station showing zero is a real gap only if its cards should be pulled; we did not check the sync setup.
  • “Assigned user” in AppFolio is not the creator and was not used.

6. What else v4 brings, and the rollout plan

Facts below come from ElevenLabs' own API and docs unless marked otherwise. ElevenLabs publishes no migration guide from v3 to v4 and no end-of-life date for v3 Conversational; the only staged-migration advice found is third-party.

What is new in v4 / v4 Turbo

FeatureWhat it means for ClaraStatus
Speed: v4 Turbo first byte ~83 ms per turn on our bench (v3: 138 ms)Smaller share of the pause a caller hears; the language model is ~0.95 s of itMeasured 2026-09-29
Cost: v4 Turbo is 0.5x characters, same multiplier as v3 Conversational (ElevenLabs /v1/models)No change to the bill for the swapVerified
Languages: 85 in the API list (marketed as 90+), v3: 74Spanish handling unchanged; more languages available laterNot needed yet
Expression: inline audio tags such as [pause] or [reassuring] are honored by v4Our prompts strip tags today because v3 Conversational rendered them as dead air; v4 could re-open warmer deliveryTest at Willows before any prompt uses tags
Voice adherence: stability and similarity controls unchanged, stronger accent hold (third-party report)Keep Belle's settings as they are; listen for accent drift on Spanish turnsListen-test
Agents platform (September changelog): parallel tool execution on by default; "Procedures" task instruction sets; new realtime speech-recognition models (scribe v2 realtime turbo/lite) with secondary languages; call queueing at concurrency limit; Slack alertingParallel tools and the new recognizer are worth a bench trial; Procedures overlap with our specialist promptsBacklog, named owner needed

Expression tags experiment (arm C, 2026-09-29)

Fede asked us to try v4's inline direction tags in experimentation. Arm C = the same two clones on v4 Turbo with expressive mode on and four tags offered (reassuring, warm, apologetic, pause), six robocalls, same scripts as arm B.

Metric (p50 / p90, ms)Arm B: v4 Turbo, expression offArm C: v4 Turbo, expression on
LLM first byte934 / 1266922 / 1391
TTS first byte83 / 9186 / 124
Audio since silence2890 / 37093025 / 3695
Judge passes1 of 62 of 6

Dead air did not come back. Every call's audio was re-transcribed and scanned for pauses of 1.2 s or more inside Clara's turns: none. No tag word was spoken aloud. That was the failure that retired expression on v3 in August, and v4 Turbo did not reproduce it.

But the model never used a tag. No agent line in any of the six calls carried a bracket cue, so there is no evidence yet that the tags change how Clara sounds. Six calls is also too few to read the judge difference as real. Next: a larger batch with a prompt nudge that invites the tags, and Fede's listen on the bound line. Until then expression stays off in the repo; the four-tag change is uncommitted in an experiment worktree only.

Runner changes shipped in PR 13529 (an --apply-sound flag and per-call transcript saving, which closes the gap where deleted clones lost their conversations).

Rollout plan, three steps

StepWhatWho decides
1Make the speech model a repo setting per fleet, pinned to today's v3 value; merging changed nothing (PR 13506, merged 2026-09-29)Session 006, merges under the standing grant
2Flip the Willows staging fleet to v4 Turbo through the normal sync (PR 13612, merged 2026-09-29 08:24Z; live check the same day: both Willows clones on eleven_v4_turbo, production Triage and Leasing still on eleven_v3_conversational); prove with fastlane runs on both scripts, the nightly judge for a few days, and Fede's listen; bar = same judge scores, no new failure class, and the 1.5 s short-turn gap not present on real callsSession 006 builds; Fede listens
3Production fleets move one at a time, only on Fede's goFede

Fede's standing goal for every voice change: more natural, faster, and at least as precise as today.

7. Willows proof on the real test line (2026-09-29)

Verdict: hold production. On real recordings, callers wait about 0.4 s longer for Clara on v4 Turbo than on today's model. The speech engine itself is faster, but the caller does not feel it. Interruption could not be proven either way.

What ran: 30 graded robot calls into the Willows line (v4 Turbo), 128 Clara turns, pause measured from the call audio (end of the caller's last word to Clara's first word). Comparison: 24 real production calls on today's model (68 turns). The comparison is indicative, not like for like: production callers are people, Willows callers were the robot.

Measurev4 Turbo, WillowsToday's model (v3), production
Pause the caller hears, median / slow tail (ms)2130 / 35401710 / 3004
Speech engine first byte, median (ms)91157
Language model first byte, median (ms)878938
Silences of 1.2 s or more inside a spoken turn0 of 1280 of 68
Garbled or cut-off speechnone foundn/a
Vendor's own "audio since silence" timer, median (ms)31401802
BarStatus
Pause at or below today's modelNot met (2130 vs 1710 ms median)
No new failure typeMet on speech quality; interruption untested
Judge score at or above today's modelCannot confirm (too few v3 robot calls)

Files: ~/agents/006/v4-turbo-trial-2026-09-28/willows-proof/ (report, 40 call recordings and transcripts, analysis scripts). Runner: PR 13746.

8. Decisions for Fede

  1. Production speech model. Recommendation: hold on today's model. v4 Turbo adds about 0.4 s to every reply as measured today and interruption is unproven. Revisit when either changes. Yes / hold?
  2. Interruption test. Recommendation: go. A test caller that plays recorded speech at a set moment, placed through Twilio from a tester number, 10 calls on Willows and 10 on the bench line. About 60 lines plus two recorded clips; it is the only way to answer the talk-over question. Go / hold?
  3. Willows. Recommendation: keep it on v4 Turbo so testing continues and the nightly judge keeps scoring it. Yes / hold?
  4. Willows flow defects (long first answer, hand-off filler, wrong name, booking tool). Recommendation: fix as ordinary bugs in their own small PRs, independent of this trial. Yes / hold?

The production switch, when it comes, is a one-line change to the global setting, shipped through the normal merge-to-main sync, and reverted the same way.

9. Artifacts

PropFlow Docs