Duplex Compute
Research notes
RESEARCH NOTE / 009

AI voice agent pricing: billing formulas, worked examples and a calculator

Voice providers bill for different things: an open session, tokens, audio in each direction, platform minutes, containers or GPU hours. Convert each to cost per connected minute before you compare them.

Duplex Compute · October 13, 2026 · Rates and versions checked October 13, 2026

Billing units by architecture

A voice agent's cost depends first on what the provider meters. Two services can quote similar numbers and still produce very different bills for the same call, because one charges for silence and the other charges for every token of history.

Example rates checked October 13, 2026. Each row bills a different scope.
Billing modelYou pay forExample ratesWhat grows the bill
Flat sessionSeconds the session is openGPT-Live 1: $0.05/min. Duplex: $0.01/connected min. .wave Nemotron VoiceChat beta: $0.005/min, 120-second sessions, no tools.Silence, tool waits, sessions left open
Bundled connectionWebSocket connection time, with STT, LLM and TTS included by tierDeepgram Voice Agent Standard: $0.075/minOpen connections; higher tiers
TokenInput and output tokens per response, by modalityGPT-Realtime-2.1: audio $32/M in, $0.40/M cached, $64/M out; text $4/M in, $24/M outHistory sent again on every response; reasoning; transcription
Directional audioInput audio and output audio at separate ratesGemini 3.8 Live: about $0.005/input min, $0.018/output minContext re-billed each turn; listening time; transcription text
Managed platformPlatform minutes plus the models you selectVapi: $0.05/min plus models at cost. Retell: $0.055/min plus voice and LLMAdd-ons, concurrency, numbers, telephony
Orchestration onlyAgent session or container minutesLiveKit Cloud: $0.01/min after included minutes. Pipecat Cloud agent-1x: $0.01/min active, $0.0005/min reservedModel providers billed separately; reserved instances bill all day
Self-hosted GPUGPU hours, whether slots are busy or notYour rental quoteIdle capacity

The formulas

Each model needs its own formula. A single "audio minute" rate applied to all of them gives wrong answers.

flat session    = connected_seconds / 60 × rate
                + backend model and tool usage + telephony

token           = Σ responses ( uncached_in × in_rate
                              + cached_in × cached_rate
                              + out × out_rate )   per modality
                + transcription

directional     = input_audio_min × in_rate + output_audio_min × out_rate
                + retained context billed again each turn
                + transcription text at the text output rate

managed         = minutes × (platform + stt + llm + tts + add_ons)
                + minutes × telephony
                + monthly numbers, concurrency and plan fees

orchestration   = max(0, session_min - included) × session_rate
                + reserved_min × reserved_rate
                + model providers + transport

gpu per conversation-hour = gpu_hourly / (concurrent_slots × utilization)

Some details change the inputs. OpenAI counts GPT-Live silence and backend work as active session time. Creating a WebRTC session bills 15 seconds during initialization, credited against the running session, so you don't add it again. Usage events report cumulative seconds. Record the final usage.seconds once instead of summing snapshots.

For Realtime, user audio counts one token per 100 ms and assistant audio one token per 50 ms: 600 and 1,200 tokens a minute. The whole conversation is input to each new response, and caching is best-effort. Google re-bills retained Gemini context on every turn, charges transcription at the text output rate, and keeps proactive audio permanently on for Gemini 3.8 Live, so listening time costs input tokens even when the model stays quiet.

One ten-minute call, priced eight ways

Assume ten connected minutes: the user speaks for four, the agent speaks for four, and two pass in silence or tool waits.

Illustrative list-price arithmetic, not invoices. Capabilities differ between rows.
ServiceArithmeticCostNot included
Duplex Compute10 × $0.01$0.10Your tool handlers, telephony
GPT-Live 110 × $0.05$0.50Backend model and tools
GPT-Realtime-2.12,400 input tokens × $32/M + 4,800 output tokens × $64/M$0.384History re-sent each turn, text, reasoning, transcription
Gemini 3.8 Live10 listening min × $0.005 + 4 output min × $0.018$0.122Context re-billing, transcription, grounding
Deepgram Voice Agent Standard10 × $0.075$0.75Telephony
LiveKit Cloud, phone call10 × $0.0479 (LiveKit calculator default)$0.479Plan base; included minutes would lower it
Retell, Platform Voices + GPT-4.1 mini10 × $0.0828 + 10 × $0.015 telephony$0.978Add-ons, numbers, extra concurrency
Vapi, calculator range10 × ($0.0818 to $0.1289)$0.82 to $1.29Carrier minutes, extra lines

The Realtime and Gemini rows are floors. They count only audio introduced in this call. Each later response also pays for earlier turns, so a ten-minute conversation costs more than ten one-minute ones. The Duplex row is a voice-session rate. It does not show that a task costs 80% less end to end than on GPT-Live. That depends on the backend, retries and whether the task succeeds.

Provider notes break these down further: LiveKit pricing, Retell AI pricing, Gemini Live API pricing and the live voice API rate reference.

Fixed monthly costs

Per-minute rates hide the costs that arrive whether or not anyone calls. LiveKit's Ship plan costs $50 a month and includes 5,000 agent-session minutes and 20 concurrent sessions. Vapi's usage plan includes four concurrent calls and charges $10 per extra line per month. Retell includes 20 and charges $8 for each additional one.

Reserved capacity bills around the clock. A warm Pipecat Cloud instance accrues 1,440 reserved minutes a day, and each instance runs one session at a time. One reserved agent-1x at $0.0005 a minute costs $0.72 a day, or $21.60 over 30 days, before any call.

Self-hosting moves the same problem to GPUs. A $2-per-hour GPU serving four simultaneous conversations at full use costs $0.50 per conversation-hour. At 25% average slot use it costs $2. Both the $2 rate and the four slots are assumptions for the arithmetic, not a quote or a measured model capacity. What does an hour of conversation cost? works through the break-even.

Monthly cost calculator

Enter per-minute rates for each line you pay. The defaults show a GPT-Live-style setup: $0.05 a minute for voice and an assumed $0.01 a minute of backend model usage. The backend figure is a placeholder for your own logs, not an OpenAI rate. For a token-billed API, divide a representative session's token cost by its connected minutes and enter that as the voice rate. A field left at zero means you have no such charge, so fill in every line your stack really pays.

Estimated monthly total: $600.00. Effective rate: $0.0600 per connected minute, $3.60 per connected hour.

Results are estimates from list prices and your assumptions, not invoices. To model Duplex, set the voice rate to 0.01 and keep your own backend, tool and telephony costs.

Check the estimate against your logs

For each session, keep connected seconds, speaking time on each side, token usage per response with the cached share, the exact model version, tool calls and telephony minutes. Store them apart so you can see which line moved.

Then divide total spend across all attempts by the number of tasks completed. OpenAI's cost guide recommends the same cost-per-successful-task view, with failed attempts and retries left in. A cheaper configuration that completes fewer tasks can cost more per result. Voice agent evaluation describes how to count completions.

Related notes

Pricing a voice feature?

Duplex is a full-duplex voice API with tool calling at $0.01 per connected minute, so the voice line of your estimate stays small and predictable. Tell us your expected voice hours, the tools your agent calls and the provider you use now.

Request access