The cost of a model depends on tokens, seconds of audio and GPU time, and it comes from several providers with different price lists. Navin Enterprise AI treats cost as governance data, held by the single Control Plane next to policies and quotas.
Three stages for every call
- Estimated: price list times expected units, before the call (POST /v1/gateway/estimate, POST /v1/finops/estimate).
- Measured: the Usage Event after the call, with tokens, seconds and GPU time (POST /v1/finops/usage).
- Billed: import of the provider invoice or export, then reconciliation (POST /v1/finops/reconciliation/run, GET /v1/finops/reconciliation/report).
Token accounting and the pricing registry
Token accounting (brick B09) counts the units of every call that crosses the Model Gateway and produces a Usage Event. The model pricing registry (brick B10) holds the price lists, and the pricing engine (brick H03) turns units into costs. Costs are recorded in a cost ledger (brick H02) backed by PostgreSQL, with ClickHouse for analytics.
Quotas before, not after
Before the call, the estimate reserves quota; after the call, the measured cost settles it. Reservations that are never confirmed expire through the server worker. The router only picks among the provider, model and region triples that policy allows, and failover stays within those lists.
Reconciliation
Cost reconciliation (brick B11) compares measured costs with what providers actually bill, from an invoice import or a provider export, and produces a report. Real-time voice sessions are metered per second and per token, and local GPU time is accounted with the DCGM exporter: self-hosted inference has a cost too.