A voice cost audit, end to end
A two-minute recording of the audit's arithmetic on one example account: 30 days of invoices go in, they're matched with connected minutes, the baseline cost per connected minute is worked out, three paths are priced, and the before and after goes through the 20% check.
Example account, synthetic data, not a client. The calls and invoices are generated from a fixed random seed and priced at the list prices on our worked example. Nothing was measured on real calls, and nothing here says anything about quality or latency.
Recording, 1 minute 53 seconds, no sound. Captions and a full transcript are below.
The last 30 days of invoices go in
Example account, synthetic data, not a client. A hosted voice-agent platform (Vapi-style) running Deepgram Nova-3 speech-to-text, GPT-5.4 and ElevenLabs Flash text-to-speech, answering inbound calls on a Twilio US number, 24 September to 23 October 2026.
| Invoice | Billed | 30 days |
|---|---|---|
| Voice platform (Vapi-style) | 20,086.4 min × $0.05 LIST | $1,004.32 |
| Deepgram Nova-3 speech-to-text | 20,086.4 min × $0.0077 LIST | $154.67 |
| OpenAI GPT-5.4 | 265.1M input tokens at $2.50 and 3.6M output tokens at $15 per million LIST | $716.96 |
| ElevenLabs Flash text-to-speech | 10.0M characters × $0.04 per 1,000 LIST | $401.73 |
| Twilio inbound | 22,532 billed min × $0.0085 LIST | $191.52 |
| Five invoices | $2,469.20 |
Matched with connected minutes
The call log has 4,983 calls and 20,086.4 connected minutes, 4.03 minutes a call on average. Each invoice is matched with what it bills on.
| Invoice | Billed on | Quantity |
|---|---|---|
| Voice platform | Connected seconds | 20,086.4 min |
| Speech-to-text | Connected seconds | 20,086.4 min |
| LLM | Tokens | 60,249 turns, 3 a minute |
| Text-to-speech | Characters | 10.0M, 500 a minute |
| Twilio | Whole minutes, each call rounded up | 22,532 min, 2,446 more |
The 4,000-token system prompt is resent on every turn and not cached: 91% of the input tokens.
Baseline: all-in cost per connected minute
| Line | 30 days | Per connected minute |
|---|---|---|
| Voice platform | $1,004.32 | $0.0500 |
| LLM, GPT-5.4 | $716.96 | $0.0357 |
| Text-to-speech | $401.73 | $0.0200 |
| Phone line | $191.52 | $0.0095 |
| Speech-to-text | $154.67 | $0.0077 |
| All-in ESTIMATE | $2,469.20 | $0.1229 |
Three paths, priced on the same 30 days
Tune the current stack
$0.0959 / min
ESTIMATE
Cache the 4,000-token prompt. The LLM line falls from $716.96 to $174.72, so 30 days come to $1,926.96.
A cheaper API
$0.0495 / min
ESTIMATE
Mistral's voice agent API with Mistral Small 4 at $0.04 a minute, plus the same Twilio line: $994.98 for 30 days. The model and the voice both change.
Self-host speech models
$0.1476 / min
ESTIMATE
Two CPU and two GPU servers always on, $2,597.76 for 720 hours, plus cached GPT-5.4 and Twilio: $2,964.00 for 30 days. At this volume the servers alone come to $0.1293 a minute, more than the baseline's whole $0.1229.
B and C leave out the phone bridge, orchestration, monitoring and support they would need. Engineering and on-call time aren't included.
Before and after, and the 20% check
| Path | 30 days | Per minute | Lower per minute | 20% check |
|---|---|---|---|---|
| Before | $2,469.20 | $0.1229 | – | |
| A: tune | $1,926.96 | $0.0959 | $0.0270 | Clears it |
| B: cheaper API | $994.98 | $0.0495 | $0.0734 | Clears it |
| C: self-host | $2,964.00 | $0.1476 | None ($0.0246 higher) | Doesn't |
The rule. Full refund if the audit finds possible savings under 20% of your current all-in cost per connected minute, from your last 30 days of invoices.
Here 20% of $0.1229 is $0.0246 a minute. On paper, paths A and B clear it and C doesn't.
A real audit would check each path against quality and latency requirements on the client's calls before recommending it. This synthetic example makes no refund decision.
What a real audit adds
- Your invoices. What you actually paid, discounts and volume tiers included.
- Your calls. A sample, tested inside your infrastructure.
- Quality gates. Word error rate, p95 latency and a listening check. A path that fails one is out.
- One recommendation. A written plan for the path that wins.
How the example account was built
- Calls are drawn from a fixed random seed: about 185 a weekday and 115 a weekend day, with call lengths averaging about 4 minutes.
- Each connected minute has 3 LLM turns, each with the 4,000-token system prompt, 400 other input tokens and 60 output tokens, and the bot speaks 500 characters.
- The platform, speech-to-text and Mistral are billed on connected seconds; Twilio rounds each call up to the whole minute. Phone-number rental isn't included.
- Rates are the list prices on the worked example, checked 21 October 2026, and Mistral's $0.04 on the price table, checked 24 October 2026. Path A leaves out cache-write charges, as the worked example does.
- Path C's servers (two AWS c7i.4xlarge at $0.714 an hour and two RunPod L40S at $1.09) run all 720 hours of the 30 days. Their capacity is assumed, not tested.
Run it on your own invoices
The Voice Cost Audit does this with your last 30 days of invoices and your calls.