Cost breakdown
Every cent leaving your balance is attributable: to a call, a number, an analysis, a recording. The dashboard shows this at three zoom levels — totals over time, individual charges, and the line items inside a charge — and the API exposes all three. Knowing which level to look at is most of the skill.
Three levels
Costs — the trend
Totals for today, the last 7 days and the current month, split into four categories — LLM (conversation + analysis), STT, TTS, Telephony — with period-over-period comparison. This is where a model change shows up: switch the LLM on Tuesday and the LLM category moves from Wednesday.
Charges — the events
A charge is one billable event. Its type says what kind:
And a status: pending → completed, or failed, refunded / partially_refunded, disputed, voided. A call’s charge is pending while the call runs and completed at finalization.
Transactions — the ledger
Every balance movement, in order, with balance before and after. Types: purchase (including auto-recharge), usage, refund, refund_deduction, adjustment, expiration (expiring credit that lapsed), subscription_grant, and the dispute entries (dispute_hold, dispute_release, dispute_loss). Each names the bucket it touched — this is where you see bonus credit being spent before purchased.
Inside one call’s charge
GET /billing/costs/calls/{callId}, or open the call’s charge:
Every line carries the rate that applied at the time, so old charges don’t change when prices do.
What actually moves the bill
In rough order of impact for a typical flow:
- Call length. Everything is per-second or per-token; a 4-minute call costs about twice a 2-minute one. Tighter prompts and an explicit end condition are cost work, not just quality work.
- LLM choice and prompt size. Tokens = (prompt + transcript) × turns. A 1,200-token System Prompt on a 20-turn call is 24,000 input tokens before the conversation is counted. The Costs view will show LLM as the largest category if this is your problem.
- TTS model. Premium voices cost several times the flash tier per character. Listen to both before deciding the difference is worth it on every call.
- Telephony rounding. Very short calls (voicemail hang-ups, wrong numbers) pay a full minute. Voicemail detection on outbound flows reduces these.
- Analysis. Turn it off for flows where you don’t read insights, or set a minimum call length for analysis in Settings → Hooks so 8-second hang-ups aren’t analysed.
Compare per-version: the flow’s stats page shows average cost per call by version, so a prompt or model change can be judged in money as well as in quality.
Invoices
For a paid top-up, a receipt is available from Billing → History; GET /billing/invoices lists them.