# How cost is calculated Your agent reports what the provider said it used. Agent Pulse prices it on the server, so an agent never states its own cost. ## From token counts to a price Each kind of token has its own price: input, output, cached input, cache writes and reasoning. They are kept apart because adding them up first would lose the difference. Charges that are not tokens, such as a web search billed per use, are priced from the rate for that unit. The prices are on the **Models** page and in [List prices](/docs/api-list-prices). ## Past figures never change Every call is priced at the rate in force when it was made, and records which rate card it used. When a provider changes its prices, calls made before the change keep their old price. The same holds for a model that was missing from the rate card: its calls are priced at nothing, and adding the model later prices new calls, not old ones. The console counts these unpriced calls so you know a figure is incomplete. ## Two figures per call | Figure | Where it comes from | When | | --- | --- | --- | | Estimated | Token counts at list price | As soon as the call is recorded | | Billed | Your Google bill, which you report | When you report the day, for traffic billed through Google only | A provider you pay directly, such as OpenAI or Anthropic, stays estimate only. A call carries the billed figure only when its hour and model on the bill came within 5% of what was recorded; any other hour keeps its gap visible on the [bill check](/docs/bill-check) instead. Google's bill lands about two days after the calls, so recent days show estimates only. ## Money is exact Amounts are stored as whole millionths of a US dollar, never as floating-point numbers, so figures add up to the cent however many calls they cover.