# Usage and cost provenance

Read metered and reported usage without treating missing data as zero or estimates as invoices.

Updated: 2026-09-22

Canonical: https://docs.kastra.ai/evidence/usage

## Keep the two sources separate

Proxy-metered usage comes from provider requests passing through Kastra. Claude Code and Codex reported usage come from client telemetry. They are different views and must not be silently added into a supposedly complete bill.

The console distinguishes provenance, model, actor, time, and device reporting coverage. An agent can be governed without usage reporting. Missing events are unknown usage, not zero usage.

## Understand cost labels

Prices can be known or estimated. Cache read/write accounting and provider token fields influence the calculation. Reported cost remains provisional where provider-invoice reconciliation has not been completed for the same model, period, and pricing scope.

The current source includes usage views and reporting, but a public exact-invoice claim requires that reconciliation evidence. Avoid using a dollar estimate as an externally guaranteed invoice ceiling.

## Limits are a separate feature

[Rate limits and spend caps](https://docs.kastra.ai/evidence/limits) enforce supported counters in their configured windows. Client-reported usage is not an enforcement input. A usage chart alone is not proof that a cap was active.

## No cost-based routing

Kastra's cost scope is policy conditions and visibility. It does not automatically choose a cheaper provider, substitute models, compress prompts, or calculate a routing offer. Configure the provider and model you intend to use.

Codex cost is currently unavailable even when token usage is present. `cost_missing_events` identifies missing pricing in reported usage; a sum of known costs is partial when this count is positive. Do not present zero known cost as zero total spend.
