Invoice Reconciler
Compares an invoice total against your own logged usage, with credits and tax, and tells you which direction the gap runs.
2.9% of the $416.03 your log implies. The invoice is higher than your logs account for. Look for a day your logging missed, a second key, or a line item that is not per-token.
- Rows parsed
- 14
- Cost column
- cost_usd
- Rows with neither a cost nor a token count
- 0
- Usage total from your log
- $416.03
- Less credits and discounts
- $0
- Plus tax
- $0
- What the invoice should say
- $416.03
- What the invoice says
- $428.00
- Difference
- $11.97
- Difference as a share
- 2.9%
- Inside a 1% tolerance?
- no
- Rate the invoice implies
- $3.60 per 1M tokens
- Tokens in your log
- 118,860,000
- Requests in your log
- 52,060
Reconciling is mostly about finding what you did not log
An invoice and a usage log almost never match to the cent, and the interesting question is which direction they miss in. If the invoice is higher, the usual causes are usage you are not logging — a second API key, a batch job on a different account, a background evaluation harness, a colleague's script — followed by charges that are not per-token at all, like storage for uploaded files, fine-tune hosting, or a minimum commitment. If your log is higher, look at the period boundary first, then at credits applied silently, then at requests you logged as intended but which failed before they were billable.
The implied-rate line is the fastest diagnostic in the breakdown. Divide the whole invoice by all the tokens you logged and you get one blended price per million. Compare it against the rate you think you are on. If it is far higher, you are probably paying output rates on more tokens than you assumed, or something is being billed at a premium tier — the reasoning tokens on a model that thinks before answering are the usual answer. If it is far lower, a cache discount or a committed-use rate is doing more work than you realised, which is worth knowing before you plan around the list price.
A note on cents. Providers round per request, not at the end, and thousands of tiny roundings do not cancel out neatly — a fraction of a percent of drift between a log and an invoice is normal and is not worth an email. That is what the tolerance field is for: set it to the difference you would actually act on, and let everything inside it go.