> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.talkif.ai/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.talkif.ai/_mcp/server.

# Cost breakdown

> Reading what you were charged and why — the Costs view, charges and their statuses, balance transactions, per-call line items — and the handful of levers that actually move the bill.

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

| Level            | Question it answers                                  | Where                                                                                                |
| ---------------- | ---------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| **Costs**        | "What are we spending, on what, and is it going up?" | **Billing → Costs**; [`GET /billing/costs`](/api-reference/billing/get-billing-cost-breakdown)       |
| **Charges**      | "What exactly was this \$0.47 for?"                  | **Billing → History**; [`GET /billing/charges`](/api-reference/billing/list-charges)                 |
| **Transactions** | "How did the balance get from \$52.10 to \$51.63?"   | **Billing → History**; [`GET /billing/transactions`](/api-reference/billing/get-transaction-history) |

### 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: `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}`](/api-reference/billing/get-billing-call-cost-breakdown), or open the call's charge:

| Line item          | Quantity            | Unit                                                                                                               |
| ------------------ | ------------------- | ------------------------------------------------------------------------------------------------------------------ |
| Telephony          | minutes, rounded up | per minute, by provider and direction                                                                              |
| STT                | seconds             | per minute, prorated                                                                                               |
| LLM input / output | tokens              | per million tokens, by model                                                                                       |
| TTS                | characters          | per thousand characters, by model                                                                                  |
| Infrastructure     | seconds             | per minute: prorated for calls that start until November 14, 2026; per started minute from November 15, 2026 (UTC) |

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.** Every line grows with seconds, started minutes or tokens; 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](#costs--the-trend) 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`](/api-reference/billing/list-invoices) lists them.

## Next

#### [Credits and pricing](/concepts/credits-and-pricing)

The rates behind every line.

#### [Choose models and voices](/build/choose-models-and-voices)

The choices that decide LLM and TTS cost.