Every voice-AI pitch quotes a per-minute price. Almost none of them tell you what a month actually costs, because the honest answer is "it depends on three things you haven't decided yet": your call volume, your telephony architecture, and — the one nobody prices in — how many of your calls can move to WhatsApp.
I run a voice-AI platform that answers real business calls, and I built a cost calculator so I'd stop redoing this math in spreadsheets. Here's the model behind it.
The anatomy of a billable minute
A cascaded voice pipeline — the architecture I run in production — has three meters running on every minute of conversation:
| Component | Per minute | Who |
|---|---|---|
| Speech-to-text | $0.0060 | Deepgram |
| Language model | $0.0033 | Gemini / Claude-class |
| Text-to-speech | $0.0200 | Cartesia / ElevenLabs |
| AI total | $0.0293 |
Notice what dominates: the voice itself. TTS is two-thirds of the AI bill. When people optimize their LLM prompts to save money on a voice agent, they're polishing the cheapest line item.
The alternative is a speech-to-speech model — Gemini Live at roughly $0.037/min, Ultravox at a flat $0.050, GPT Realtime around $0.050 on paper and often more in practice, since it bills audio tokens rather than minutes. I keep choosing the cascaded pipeline anyway: it costs less and you own every layer — swap the voice, tune the prompts, add fallbacks when a provider has a bad day. I've written before about why latency makes this architecture harder than it looks; cost is the consolation prize.
Telephony is where the real decisions live
The AI stack is the same whoever carries the call. The telephony underneath it is a genuine architectural choice:
- Twilio end-to-end (~$0.030/min + ~$350/mo fixed) — one vendor, best docs, ship this week.
- Telnyx + IDT Express (~$0.018/min + ~$450/mo) — CPaaS for numbers and failover, wholesale routes for the minutes. The sensible middle.
- IDT Express + your own SBC (~$0.014/min + ~$750/mo) — direct carrier interconnects behind FreeSWITCH. Cheapest minutes, most ops burden.
Classic infrastructure trade: lower marginal cost buys higher fixed cost. At 100,000 PSTN calls a month, own-SBC wins clearly. At 2,500, Twilio wins. In between, run your numbers.
The WhatsApp trap
Here's the part that invalidates most telephony planning in emerging markets: a WhatsApp call has no per-minute charge at all. It rides the customer's data connection; you pay a ~$0.01 conversation fee and the AI meter — that's it. None of the markets I work in — Pakistan, India, Nigeria, most of South Asia, Africa, and South America — block WhatsApp calling, and India is WhatsApp's largest market on earth.
Which produces a result that surprised me when I first plotted it: at high WhatsApp share, the wholesale-infrastructure option becomes the most expensive. Its $750/month of fixed cost was justified by cheap minutes — and there are barely any billable minutes left. Going WhatsApp-first and building wholesale telephony infrastructure are mutually exclusive strategies. Drag the WhatsApp slider in the calculator from 0 to 100 and watch the winner flip.
One honest caveat: Meta prohibits cold outreach, so the free channel only reaches contacts who opted in. Cold calls stay on PSTN, at PSTN prices.
What I tell clients
- Below ~5,000 calls/month, architecture barely matters — ship the simplest thing (Twilio) and spend your energy on the agent, not the plumbing.
- If your customers are on WhatsApp, get the opt-in flow right before you negotiate with a single carrier. Every point of WhatsApp share is worth more than a rate-card discount.
- Past ~50% WhatsApp share, your bill is mostly the AI stack — and within that, mostly the voice. That's the lever.
- Re-run the numbers quarterly. Corridor rates and engine prices both move; the calculator takes thirty seconds.
The uncomfortable summary: the per-minute price on anyone's pricing page — mine included — tells you almost nothing. The bill is an interaction between volume, channel mix, and fixed costs, and it changes which architecture is right as you change. That's why it's a calculator and not a table.