Shift note: tracing a $0.216 token charge
The charge under review is $0.216. Beside it sit two token counts and two prices quoted “per million.” The useful question is straightforward: which counts were multiplied by which rates, and does the result match the bill?
No customer invoice was supplied for this walkthrough, so the figures below are illustrative. They demonstrate how to read an actual usage statement without presenting invented prices as current Relay365 rates.
The million is a pricing unit
A token is a unit a model uses to process content. In text, it may represent part of a word, a whole word, punctuation, or another text fragment. There is no fixed conversion from words to tokens that works across every language and model.
“Per million tokens” describes the unit used to quote the price. It does not, by itself, mean you must buy a million tokens. With proportional usage billing, you divide the recorded token count by 1,000,000 and multiply by the applicable rate. Any minimum charge or rounding rule must be checked separately.
Two usage lines explain the $0.216
Imagine a usage statement containing these entries for one model during one billing period:
- The input line records 120,000 tokens at an illustrative rate of $0.80 per million tokens.
- The output line records 30,000 tokens at an illustrative rate of $4.00 per million tokens.
Input is the content sent into the model, including instructions, conversation history, and other context included in the request. Output is the content the model generates. These categories can carry different prices, so adding their token counts together before calculating the charge would lose information.
The input calculation is 120,000 ÷ 1,000,000 × $0.80 = $0.096. The output calculation is 30,000 ÷ 1,000,000 × $4.00 = $0.120. Together, they produce the $0.216 usage charge.
Notice that output contributes more to this example’s cost despite having fewer tokens. A smaller count can produce a larger charge when its rate is higher.
The model name and billing period control the lookup
Before checking multiplication, check the model identifier, usage dates, currency, and rate unit. If a statement names Gemini 2.5 Flash, use the applicable rate for that model and period. A price shown for Claude Haiku 4.5 cannot validate that line.
Also check whether a displayed rate is per thousand or per million tokens. Confusing those units changes the calculation by a factor of 1,000. If prices changed during the period, separate usage lines may reflect different applicable rates.
Cached input needs its own calculation
Some billing systems distinguish ordinary input, cached input, and cache creation. When those categories appear, calculate each separately using the provider’s definitions and rates. Do not assume every input token receives the ordinary input price, or that cached tokens are free.
The same care applies to reasoning usage and nontext features. Check whether a reported count is included in another category before adding it again. Where storage, tools, images, or audio have separate charges, token arithmetic alone will not explain the entire bill.
The usage subtotal may differ from the payment
After reconciling usage, read the remaining financial lines. Credits, discounts, taxes, fees, and rounding can affect the amount due. A prepaid account may also show a balance top-up separately from the usage deducted from that balance.
For a useful audit trail, retain the invoice, usage export, and applicable pricing record. Request identifiers and timestamps help investigate discrepancies, especially when a coding client sends conversation history repeatedly or makes several requests during one task.
Keep the same check across Relay365 usage
Relay365 fits teams that want pay-as-you-go access to multiple model families through a relay desk. It works with Claude Code, Codex, Gemini CLI, and OpenAI SDK clients. That convenience still leaves a practical duty: verify each model’s applicable rates and reconcile recorded usage.
If that setup suits your workflow, create a Relay365 account and start with a small, measurable workload. Compare the recorded input and output with the resulting charge before setting a larger budget.
Further desk bulletins
| Date | Bulletin title | Filed under | Language |
|---|---|---|---|
| 2026-10-27 | Desk Note: Tracing Top-Ups, Invoices and Refunds | Spend watch | EN |
| 2026-10-27 | Shift Note: Long System Prompts Keep Adding Input Cost | Spend watch | EN |
| 2026-10-27 | Shift Note: Count the Full Payload Before Sending | Spend watch | EN |
| 2026-10-27 | Shift note: prototype trial on a small top-up | Spend watch | EN |
| 2026-10-27 | Shift note: AI spend assigned to each pull request | Spend watch | EN |
| 2026-10-27 | Shift Note: Bulk Queue First, Hard Cases Escalated | Spend watch | EN |
Curious how it runs on your own code? Sign up →