How cost is calculated
Where the cost figures come from, what Unpriced means for models without a known price, and how self-hosted models are counted.
Every model call is recorded when it happens, with its token counts, cost, any error, and the Coworker, Knowledge Base or system job it was for. The Usage & cost view adds these records up. It never estimates: each figure is a sum of recorded calls.
Where the cost of a call comes from#
When a call finishes, the product looks the model up in the price list it ships with, which holds the published per-token rates for each hosted model. If the price list has no entry, the product uses a price you entered for that model under Settings then Model prices (see Price models the price list cannot price). The price list always wins: an entered price is used only for a model the list does not cover. The price is the tokens the call used multiplied by those rates, including the cheaper rates for cached input where the model has them. That price is stored with the call. Chat calls and embedding calls are priced the same way.
The price list can change between restarts of the product. Each call keeps the price it was given when it was made, so a later change never rewrites past figures.
Every call is recorded in one of three states:
| State | Meaning |
|---|---|
| Priced | The model has an entry in the price list, so the cost is known. An entry whose price is $0 still counts as priced: a model that is free is not the same as a model with no price. Models you serve yourself through Ollama are priced at $0 by definition. |
| Unpriced | The price list has no entry for the model, so the cost is unknown. The call is stored with a cost of $0.00 and its tokens, and the product writes a warning to its log naming the provider type and model. |
| Estimated | The provider never reported usage, for example because the connection dropped mid-answer. The cost is calculated from an estimate of the tokens that were sent and generated, and only when the model has a price. |
A call that failed before using any tokens has no cost and is never counted as unpriced.
Models with no known price#
A model whose rates are not in the price list, and that has no price you entered, is Unpriced. This covers models too new or too obscure to have a published price, and Amazon Bedrock model ids the list does not know, such as an inference-profile ARN or a model released after the product's price list was built. It also covers an OpenAI-compatible endpoint you host yourself, apart from Ollama.
Two providers are priced by a model other than the one named in the call. An Azure OpenAI call is priced by the deployment's Base model (see Use Azure OpenAI), or by the deployment name when no base model is set. Some hosted providers, such as Groq, have only a few of their models in the price list, so most of their models show as unpriced until you enter a price.
In the Usage & cost view an unpriced model is shown as Unpriced, never as $0.00. For those models:
- Calls, Input tokens, Output tokens and Errors are still complete.
- Cost leaves them out. The Total cost tile and each row's amount cover only the calls whose price is known, and each says how many calls it leaves out.
- Spend limits on API keys count only priced cost, so calls to an unpriced model never use up a key's monthly budget.
To give such a model a price, and to price its past calls, see Price models the price list cannot price.
For an unpriced hosted model, your provider's invoice is the authority for what you owe. For a self-hosted model, your real cost is your own infrastructure.
Amounts under one cent are shown as <$0.01, so a small but real cost is never mistaken for a call that cost nothing. A total of exactly zero from priced calls reads $0.00.
Cost reflects the prices at the time of each call. It is not a bill: your provider's invoice is the authority for what you owe.