Duty Log: Ten-Minute Token Invoice Reconciliation
The shift task is simple: explain the token charges on an invoice without confusing a price per million tokens with the price of one request. In ten minutes, you should be able to identify each billing category, reproduce its arithmetic, and explain the difference between usage charges and the final amount due.
Use an actual invoice and its matching usage export. No real invoice was supplied for this article, so the worked figures below are explicitly hypothetical, not Relay365 prices or customer billing records.
Minutes zero to two: establish the invoice boundary
Before multiplying anything, confirm what the document covers. An invoice, a wallet top-up receipt, and a usage report can show different amounts because they record different events.
- Check the billing period, currency, account, and any project or API-key filters.
- Confirm whether the document bills consumed usage or records money added to a prepaid balance.
- Find the applicable rate card and its effective date rather than assuming today's displayed prices applied throughout the period.
- Check whether timestamps use UTC or another time zone before comparing daily totals.
If the invoice groups several models together, use the usage export to recover the model-level breakdown. A line for Claude Haiku 4.5 should be checked against that model's applicable rates, not a neighboring model's rate.
Minutes two to four: translate each token line
The basic calculation is token count divided by 1,000,000, multiplied by the applicable per-million rate. Apply it separately to each billing category. Input and output commonly have different rates; cached input may have another rate or separate cache-related categories.
Do not assume that every field named “input tokens” means uncached input. Some reports include cached tokens within the input total and expose the cached portion separately. Others present disjoint categories. Read the field definitions before adding or subtracting anything.
For the hypothetical worksheet below, assume the report shows 1,500,000 total input tokens, including 300,000 cached tokens, plus 180,000 output tokens. Assume its billing rules price cached input separately.
Minutes four to six: reproduce three charge lines
- The uncached-input line contains 1,200,000 tokens, calculated as 1,500,000 minus 300,000. At an invented rate of $2 per million, its charge is 1.2 × $2 = $2.40.
- The cached-input line contains 300,000 tokens. At an invented rate of $0.20 per million, its charge is 0.3 × $0.20 = $0.06.
- The output line contains 180,000 tokens. At an invented rate of $8 per million, its charge is 0.18 × $8 = $1.44.
The hypothetical usage subtotal is therefore $3.90. These invented rates demonstrate the arithmetic only. Substitute the rates attached to your invoice, and repeat the process for every model and billing category.
Keep full precision while checking the calculation. Then inspect the provider's rounding rules: rounding each request or line can produce a different result from rounding only the final subtotal.
Minutes six to eight: bridge usage to the amount due
The usage subtotal is not necessarily the final payment. Read subsequent lines for credits, adjustments, taxes, currency conversion, or other explicitly listed charges. Record each separately instead of forcing the token calculation to match the payment total.
For prepaid billing, reconcile usage against the balance ledger as well. A deposit is funding, not evidence that the same amount of inference was consumed during the invoice period.
Minutes eight to ten: leave a reproducible shift note
Save the invoice identifier, rate-card date, token categories, calculations, and any unexplained difference. If a discrepancy remains, collect request identifiers and timestamps for support without sharing API keys or sensitive prompt content.
Relay365 fits teams that want pay-as-you-go access to multiple model families through one relay desk. It works with Claude Code, Codex, Gemini CLI, and OpenAI SDK clients. The API base is https://api.api365relay.com; OpenAI clients add /v1. Before adopting it, confirm the available usage breakdown and current rates meet your reconciliation needs.
Create a Relay365 account when you are ready to test a small, controlled workload. Keep that first usage record and reconcile it with the same worksheet. The useful outcome is not merely a plausible total, but a charge another engineer can reproduce.
Further desk bulletins
| Date | Bulletin title | Filed under | Language |
|---|---|---|---|
| 2026-10-29 | Desk Log: Ten Minutes on Invoices, Refunds and Credit | Spend watch | EN |
| 2026-10-29 | Duty Log: Ten-Minute Token Preflight Before Send | Spend watch | EN |
| 2026-10-29 | Duty Log: Ten Minutes to Fence In Agent Spend | Spend watch | EN |
| 2026-10-29 | Shift Note: Cut Repeat-Prompt Costs in Ten Minutes | Spend watch | EN |
| 2026-10-29 | Shift note: a ten-minute wallet and pass check | Spend watch | EN |
| 2026-10-28 | Desk log: first token arrived, answer still running | Spend watch | EN |
Curious how it runs on your own code? Sign up →