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

LevelQuestion it answersWhere
Costs”What are we spending, on what, and is it going up?”Billing → Costs; GET /billing/costs
Charges”What exactly was this $0.47 for?”Billing → History; GET /billing/charges
Transactions”How did the balance get from $52.10 to $51.63?”Billing → History; GET /billing/transactions

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:

call_usage
charge type
One call: telephony, STT, LLM, TTS and infrastructure line items.
call_analysis
charge type
Post-call insights for one call — separate, so you can see what analysis costs.
voicemail_classification
charge type
Answering-machine detection and message composition on an outbound call.
phone_purchase
charge type
Buying a number.
phone_rental
charge type
A number’s monthly renewal.
recording_storage
charge type
Storage for a recording, billed when it’s deleted or expires, for the time it existed.
assistant_usage
charge type
Dashboard assistant tokens beyond the free allowance.
reservation
charge type
A pre-authorisation hold placed when a call starts, released when it settles.
adjustment
charge type
A manual credit or debit — a refund, a goodwill credit, a correction.

And a status: pendingcompleted, 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:

Line itemQuantityUnit
Telephonyminutes, rounded upper minute, by provider and direction
STTsecondsper minute, prorated
LLM input / outputtokensper million tokens, by model
TTScharactersper thousand characters, by model
Infrastructuresecondsper minute, prorated

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:

  1. 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.
  2. 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.
  3. 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.
  4. Telephony rounding. Very short calls (voicemail hang-ups, wrong numbers) pay a full minute. Voicemail detection on outbound flows reduces these.
  5. 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.

Next