Introduction
Nearly every cost question is a version of "why does this not match?". It usually does not match for a good reason, and the reasons are enumerable.
It does not match my provider invoice
It will not, and both numbers can be right. Cost Explorer derives spend from observed token usage and applied rates; your provider computes from its own metering under your commercial terms.
Cause | Direction |
Uninstrumented traffic | Reads low |
Models with no rate available | Reads low |
Non-inference charges — storage, hosting, egress | Reads low |
Negotiated or committed-use discounts | Reads high |
Batch pricing | Reads high |
Free tiers and credits | Reads high |
Billing month vs a rolling window | Either |
Note: Use Cost Explorer for attribution and trend; use the invoice for the total. They answer different questions. The one thing you should chase is a gap far larger than your discounts explain — that points at traffic nobody is observing, which is a coverage problem wearing a cost report's clothes.
An agent shows activity but no cost
Are token counts on the spans? — Cost is derived from tokens. Traces can arrive perfectly well with no usage data on them.
Does a rate exist for that model? — Usage is observed independently of pricing. A model with no rate shows activity and no spend.
Is the model registered? — Attribution needs something to attribute to.
The totals do not add up
Two arithmetic traps account for most of these:
Adding agent totals to model totals. A model call inside an agent's run appears in both views. They are two lenses on one pool of money — adding them double-counts every call.
Summing a grouping and expecting the total. Spend that cannot be attributed is still counted and appears in no slice.
Spend spiked
Check spend per trace first — If it is flat, the spike is volume and there is nothing wrong. If it rose, the agent's behaviour changed.
Ask what you changed — LLM-based controls and AI judges both add model calls. Correlate with your own configuration changes before investigating the agent.
Group by agent, then by model — One narrows to who, the other to what.
Read a trace from the window — Retries, a grown context, a switched model — all four common causes are visible in a single run.
Frequently asked
Why does this page not list rates? — Rates come from the model pricing catalogue, per 1M tokens, refreshed every 15 minutes. This KB does not copy them, because a stale price table would be worse than none.
Can I load our negotiated pricing? — Not something this KB can currently tell you how to do. If reporting needs to reflect contract rates rather than list, raise it with your account team — adjusting figures by hand downstream does not scale.
Does governance cost money? — Yes, where a check uses an LLM. Deterministic checks — regex, blocked tools — do not, which is a real reason to prefer them where they can express the rule.
Does evaluation cost money? — Yes. An AI judge is a model call per scored session; the product says so where you configure it. Sampling is the control — see Evaluation Cost.
Why is the projection wrong? — It extrapolates the current rate and knows nothing about your plans. It is arithmetic, not a forecast.
How do I reduce spend? — In yield order: shorten the context, cut retries, match the model to the task, sample evaluation rather than scoring everything, prefer deterministic checks. See How Cost & Tokens Are Calculated.
Why do my numbers differ from what a colleague sees? — Check the range (the default is the last 15 days) and the Agent / Model toggle first; the two views have different columns.