Per-minute and per-call cost of the recommended cascaded stack, the managed-platform comparison, and the build-vs-buy break-even. The non-obvious result: the LLM is ~10% of cost and is not the thing to optimize.
Reference Call
All figures normalize to a 3-minute inbound call:
- ~12 conversational turns
- agent speaks ~1.1 minutes of the 3
- ≈ 1,000 characters of TTS output (at ~900 chars/min of speech)
The Recommended Build
| Component | Vendor | $/min |
|---|---|---|
| Telephony | Twilio (inbound 0.0044) | $0.0129 |
| STT + endpointing | Deepgram Flux | $0.0065 |
| TTS | Deepgram Aura-2 | $0.0100 |
| LLM | Claude Haiku 4.5 + prompt caching | $0.0032 |
| Total | $0.0326/min | |
| Per 3-min call | $0.098 |
Vendor selection rationale lives in voice-agent-telephony-carriers-2026-07-21, voice-agent-stt-vendor-landscape-2026-07-21 and voice-agent-tts-vendor-landscape-2026-07-21.
The LLM Is Not the Driver
The LLM is ~10% of cost. TTS costs 3–5x more. Optimize TTS, not the model.
Haiku 4.5 with prompt caching: 0.0032/min. Prompt caching cuts LLM cost by 65% — the system prompt, tenant config, and tool schemas are identical across all 12 turns of a call and across every call for that tenant.
Cost share of the $0.0326/min:
| Component | Share |
|---|---|
| Telephony | ~40% |
| TTS | ~31% |
| STT | ~20% |
| LLM | ~10% |
This inverts the usual instinct. Reaching for a cheaper or smaller LLM saves at most ~$0.003/min while degrading the product; shaving TTS or renegotiating carrier rates moves 3–4x more money.
Corollary — speculative LLM dispatch is nearly free
[[voice-agent-stt-vendor-landscape-2026-07-21#speculative-llm-dispatch|Flux
EagerEndOfTurnspeculative dispatch]] costs 50–70% additional LLM calls to buy back 150–250ms of latency. Applied to a component that is 10% of cost, that’s a ~7% total cost increase for a ~200ms latency win. Trivially worth it. This is only true because the LLM is cheap — it would be a bad trade if the cost shares were reversed.
Managed Platform Comparison
| Platform | $/min | Δ vs $0.0326 DIY |
|---|---|---|
| DIY (this build) | $0.0326 | — |
| Pipecat Cloud | ~$0.040 – 0.058 | +23% to +78% |
| LiveKit Cloud | ~$0.045 | +38% |
| Retell | $0.073 – 0.088 | +124% to +170% |
| Vapi | $0.085 | +161% |
| ElevenLabs Agents | $0.10 – 0.13 | +207% to +299% |
| Bland | $0.11 – 0.14 | +237% to +329% |
The premium buys less control, not more
See voice-agent-managed-platform-control-surfaces-2026-07-21 — no managed platform lets you host a custom VAD, and only Vapi and Telnyx expose
onNumberSeconds. You pay +161% for a smaller control surface.
Also excluded on architecture grounds: Twilio ConversationRelay at $0.07/min on top of voice minutes (~5.5x DIY), which is text-only and exposes no raw audio at all — see Twilio ConversationRelay — AVOID.
Build vs Buy
Break-even vs Vapi: ~600,000 minutes ≈ 200,000 three-minute calls
Assumption: 8 engineer-weeks (~$30k) to build the Rust pipeline.
- Saving vs Vapi: 0.0326 = $0.0524/min
- 0.0524 ≈ 572,000 minutes → ~600k minutes ≈ 200,000 calls
For Agents
Read the break-even honestly: 600k minutes is a lot of calls. On pure per-minute arithmetic, buying is cheaper until real scale. The build case does not rest on cost — it rests on capability:
- The 480ms orchestration residual is unreachable on any managed platform.
- Custom VAD / per-state endpointing is unreachable on any managed platform.
- Vapi shipped ~19h of call-affecting degradation in 10 weeks and runs a weekly release channel.
Cost is the tiebreaker, not the argument. If the product could be built on Vapi and be good, the arithmetic would say build on Vapi.
Scaling Notes
- Costs are linear in minutes, with no meaningful fixed component beyond $1.15/mo per Twilio number. There is no volume cliff that changes the shape.
- Concurrency, not cost, is the ceiling. ElevenLabs caps at 15 concurrent even at $990/mo; Deepgram gives 45–60 self-serve. You will hit a concurrency wall long before per-minute cost becomes the problem.
- OpenAI Realtime cost scales with conversation length (full context re-sent each turn), which is why its observed range is $0.073–0.123/min rather than a single figure — see Cost Is No Longer the Argument.
Open Item
Deepgram pricing column order is unconfirmed
Two fetches of the Deepgram pricing page disagreed on which column is Streaming and which is PreRecorded. The 0.0100 (Aura-2) figures above depend on reading that table correctly. [conflicted] — confirm before committing the model. Also unresolved: Hume Octave 2 pricing, where sources contradict on a claimed 3.3x figure.
Sources
- Twilio, Deepgram, Anthropic pricing pages [vendor] — Deepgram columns [conflicted]
- Vapi, Retell, Bland, ElevenLabs Agents, LiveKit Cloud, Pipecat Cloud pricing pages [vendor]
- Anthropic prompt caching documentation — 65% reduction basis [vendor]