---
description: FinOps for AI applies showback and chargeback to LLM and agent spend. Learn how to attribute token costs, set budgets, and bill teams from gateway data.
title: "FinOps for AI: Showback and Chargeback for LLM Spend"
image: https://storage.ghost.io/c/84/03/8403f2f6-141c-411a-8f55-a32d4291533e/content/images/2026/10/finops-for-ai-showback-and-chargeback-for-llm-spend-bifrost-1920x1080.png
---

Try Bifrost Enterprise free for 14 days. [Request access](https://www.getmaxim.ai/#enterprise-trial)

**TL;DR**

- FinOps for AI applies cost visibility, allocation, and accountability to token-based spend on LLMs and agents, which cloud billing tags cannot attribute on their own.
- Showback reports AI costs to the teams that caused them; chargeback goes further and books those costs against their budgets in the accounting system.
- AI spend needs request-level attribution (user, team, customer, project, model) because one shared provider key can serve dozens of teams and thousands of agent loops.
- An AI gateway is the natural source of FinOps data, because it is the one point that sees identity, model, tokens, and price on every request.
- Bifrost prices every request, attributes it up a team and customer hierarchy, enforces calendar-aligned budgets, and exports per-request cost for showback and chargeback.

FinOps for AI is the discipline of applying cloud financial management to LLM and agent spend: making token costs visible, allocating them to the teams that create them, and holding those teams accountable through showback or chargeback. The FinOps Foundation's [2026 State of FinOps survey](https://www.linuxfoundation.org/press/state-of-finops-survey-ai-value-and-skills-top-priorities-as-finops-matures-across-technology-value-98-manage-ai-90-saas-64-licensing-48-data-center-1) found that 98% of 1,192 respondents now manage AI spend, up from 31% two years earlier, and ranked FinOps for AI as the top forward-looking priority. [Bifrost](https://www.getmaxim.ai/bifrost), the [open-source AI gateway with built-in cost governance](https://github.com/maximhq/bifrost), sits on the path of every model call and produces the attributed, per-request cost data that AI showback and chargeback depend on. This guide covers the attribution model, the path from showback to chargeback, and how to enforce budgets for LLM and agent spend.

## What Is FinOps for AI?

FinOps for AI is the practice of managing the cost and value of AI services, chiefly LLM inference, embeddings, and agent workloads, with the same inform, optimize, and operate cycle used for cloud. Its distinguishing unit is the token, not the instance hour, which changes how cost is measured and allocated.

The FinOps Foundation's [FinOps for AI overview](https://www.finops.org/wg/finops-for-ai-overview/) highlights new usage metrics such as cost per token, volatile costs, and GPU scarcity, and recommends a showback model so teams see the cost of their AI usage before they are charged for it. In practice, AI FinOps covers four jobs:

- **Visibility:** what is being spent, on which models and providers, per day
- **Allocation:** which user, team, customer, or initiative caused each dollar
- **Accountability:** showback reports to owners, and chargeback where accounting policy requires it
- **Control:** budgets, rate limits, and alerts that act before the invoice arrives

For a primer on the cost drivers themselves, the guide to [managing LLM costs for optimization and ROI](https://www.getmaxim.ai/articles/the-technical-guide-to-managing-llm-costs-strategies-for-optimization-and-roi/) covers pricing models and levers in depth.

## Why AI Spend Breaks Traditional Cloud Cost Allocation

Traditional cloud cost allocation relies on resource tags and account structure, but AI spend arrives as a single provider invoice for tokens consumed through shared API keys. Nothing on that invoice says which team, feature, or agent made the call, so allocation has to happen at request time.

Four properties of AI spend make tag-based cost allocation insufficient:

- **Shared credentials:** one organization-wide provider key can serve every team, so the invoice has no owner dimension
- **Token-based pricing:** cost depends on input, output, cached-read, and cached-write tokens, with different rates per model and sometimes per context-length tier
- **Multi-provider usage:** the same workload may run on Anthropic, OpenAI, Bedrock, and Vertex AI, each billed separately
- **Agent loops:** one task from a coding agent or an autonomous agent can produce dozens of model calls, so cost per task matters more than cost per prompt

The result is that AI cost management has to start where requests start. The deep dive on [tracking LLM token usage across providers, teams, and workloads](https://www.getmaxim.ai/articles/tracking-llm-token-usage-across-providers-teams-and-workloads/) shows how quickly per-team views diverge from the invoice without request-level data.

## Showback vs Chargeback for AI Spend

Showback reports AI costs to the teams responsible for them without moving money; chargeback books those costs against the teams' budgets in the accounting system. Both use the same allocated data, and the difference is the formality of the financial entry.

The FinOps Foundation's [invoicing and chargeback capability](https://www.finops.org/framework/capabilities/invoicing-chargeback/) makes three points that apply directly to AI: showback is always required in a FinOps practice, chargeback depends on organizational accounting policy, and neither is more mature than the other.

![](https://storage.ghost.io/c/84/03/8403f2f6-141c-411a-8f55-a32d4291533e/content/images/2026/10/image-7.png)

*Figure 1: Showback and chargeback share the same allocated data; chargeback adds invoice reconciliation and a formal entry in the accounting system.*

| Dimension | Showback for AI | Chargeback for AI |
| --- | --- | --- |
| Purpose | Awareness and behavior change | Financial accountability |
| Money moves | No | Yes, journal entries to team budgets |
| Data precision required | Directional, per request | Reconciled to provider invoices |
| Typical granularity | User, team, project, model, agent | Cost center, business unit, customer |
| Shared costs | Shown separately or estimated | Allocated by an agreed rule |
| Owner | Engineering and platform teams | Finance with FinOps |
| When it fits | Always, from the first month | When AI spend is material and spread across cost centers |

Most organizations start with AI showback, run it for a few cycles until teams trust the numbers, and then decide whether chargeback is worth the reconciliation work. Internal platforms that serve external customers often need chargeback sooner, because customer contracts carry their own ceilings; the comparison of [LLM cost controls in enterprises](https://www.getmaxim.ai/articles/5-tools-for-llm-cost-controls-in-enterprises/) contrasts enforcement tooling with visibility-only tooling.

## The Attribution Model AI Spend Needs

AI cost allocation needs two kinds of attribution on every request: who made the call (user, team, business unit, customer) and what the call was for (project, feature, environment). The first comes from the credential; the second has to be declared per request or attached to the credential.

![](https://storage.ghost.io/c/84/03/8403f2f6-141c-411a-8f55-a32d4291533e/content/images/2026/10/image-8.png)

*Figure 2: Spend rolls up the ownership tree automatically, and projects add a per-request cost center that sits outside that tree.*

Bifrost implements both. [Virtual keys](https://docs.getbifrost.ai/features/governance/virtual-keys) identify the caller and belong to a team or customer, and in Bifrost Enterprise the [teams, business units, and customers model](https://docs.getbifrost.ai/enterprise/teams-business-units-customers) charges every request to each team and business unit a user belongs to and to every customer above them. Spend rolls up, so each level sees its true total.

For the "what for" dimension, Bifrost offers three mechanisms:

- **Virtual key metadata:** a key can carry entries such as `cost_center` or `env` that are copied onto every log entry and cannot be overridden by request headers
- **Request dimensions:** headers such as `x-bf-lh-*` and `x-bf-dim-*` attach tenant, feature, or environment labels per request
- **Projects:** in Bifrost Enterprise, an `x-bf-project-id` header scopes a request to a [project](https://docs.getbifrost.ai/enterprise/projects) with its own budget, and every log row, span, and warehouse export carries the project

The architecture behind per-team attribution is covered further in [per-team cost attribution as a reporting layer for AI usage](https://www.getmaxim.ai/articles/per-team-cost-attribution-a-reporting-layer-for-ai-usage/).

## How to Implement AI Showback

AI showback is implemented by routing all model traffic through one gateway, issuing a credential per team or service, pricing every request, and publishing per-owner cost reports on a fixed cadence. The goal is directional accuracy and fast feedback, not invoice-level precision.

A practical sequence:

1. **Route all traffic through the gateway.** Point SDKs, coding agents, and agent services at Bifrost by changing the base URL; the [drop-in replacement](https://docs.getbifrost.ai/features/drop-in-replacement) approach keeps application code unchanged.
2. **Issue one credential per owner.** Create a virtual key per team, service, or developer, and attach `cost_center` and `env` metadata.
3. **Price every request.** The [Bifrost Model Catalog](https://docs.getbifrost.ai/architecture/framework/model-catalog) syncs a pricing sheet every 24 hours and computes cost per request, including cached-read and cached-write token rates and long-context pricing tiers.
4. **Publish reports.** Use the built-in logs dashboard filtered by key, team, or metadata, or export rows to a warehouse for scheduled reports.
5. **Review and act.** Share reports with owners monthly at minimum, with model mix and cost per task alongside the totals.

[Built-in request logging](https://docs.getbifrost.ai/features/observability/default) stores tokens, cost, and latency per request, and the logs API filters by metadata, so a query for one cost center's spend is a single call. The guide to [monitoring LLM API costs in production](https://www.getmaxim.ai/articles/how-to-monitor-llm-api-costs-in-production/) covers cost monitoring and historical export in more depth.

## How to Move From Showback to AI Chargeback

Moving to AI chargeback means turning allocated showback data into accounting entries that finance accepts. That requires reconciling gateway cost to provider invoices, agreeing how shared costs are split, and fixing the reporting period to the accounting calendar.

Gateway-computed cost is derived from token usage and list pricing, so it will differ from the invoice wherever negotiated discounts, credits, or provider-side adjustments apply. Treat the gateway figure as the allocation key and the invoice as the amount: allocate each provider's invoice total in proportion to each owner's gateway-measured share. Three decisions finance will ask for:

- **Shared costs:** embedding calls for a shared cache, platform evaluations, and gateway infrastructure are typically split by usage share or charged to a platform cost center
- **Period alignment:** monthly or quarterly chargeback should match calendar-aligned budget windows so showback and chargeback cover the same days
- **Customer pass-through:** for internal platforms serving clients, the customer dimension maps directly to rebilling

Bifrost Enterprise exports per-request rows to a data warehouse through the [BigQuery plugin](https://docs.getbifrost.ai/features/observability/bigquery), with cost in USD and team, customer, and virtual key columns on every row, so a cost-by-team query is plain SQL. [Log exports](https://docs.getbifrost.ai/enterprise/log-exports) offload request and response payloads to S3 or GCS for long-term retention. The broader pattern for multi-tenant platforms is covered in [budget and rate limit architecture for multi-tenant LLM platforms](https://www.getmaxim.ai/articles/budget-and-rate-limit-architecture-for-multi-tenant-llm-platforms/).

## Budgets, Alerts, and AI Spend Management

AI spend management turns showback from a report into a control. Budgets cap spend per key, team, or customer, rate limits cap tokens and requests per window, and alerts notify owners before a cap is reached, so overruns are prevented rather than explained after the fact.

[Bifrost budgets and rate limits](https://docs.getbifrost.ai/features/governance/budget-and-limits) are hierarchical: a request proceeds only if every applicable budget (virtual key, team, customer, and provider configuration) has room, and its full cost is deducted from each. Features that matter for FinOps:

- **Calendar alignment:** budgets roll by default; with calendar alignment enabled, they reset on UTC calendar boundaries (day, week, month, quarter, year) so they line up with reporting periods
- **Fiscal quarters:** a quarterly budget can set its starting month to match a fiscal year
- **Overrides:** a budget can carry a temporary override that adds capacity for a fixed number of cycles without changing the base limit
- **Alerting:** Bifrost Enterprise [alert rules](https://docs.getbifrost.ai/enterprise/alerting/overview) evaluate budget and rate-limit metrics every 60 seconds and notify Slack, Microsoft Teams, PagerDuty, or webhooks

The walkthrough on [LLM API rate limiting with virtual keys and budgets](https://www.getmaxim.ai/articles/llm-api-rate-limiting-with-virtual-keys-and-budgets/) shows these settings applied to a real team structure.

## Showback for Coding Agents and Autonomous Agents

Agent spend needs showback at the session and task level, because a single agent task can trigger dozens of model calls and tool calls. Without a per-session view, a team sees a total but cannot tell which agent, workflow, or developer produced it.

Agent frameworks report their own estimates, but those are not a FinOps source of record. Anthropic's [Agent SDK cost tracking guide](https://code.claude.com/docs/en/agent-sdk/cost-tracking) states that its `total_cost_usd` field is a client-side estimate and should not be used to bill end users. The gateway sees every call across every agent, so it is the better allocation source.

| Agent type | Attribution approach | Showback unit |
| --- | --- | --- |
| Coding agents (Claude Code, Codex CLI) | Per-developer credential or SSO identity | Cost per developer, per model |
| Agent services (Agent SDK, frameworks) | Per-service virtual key plus metadata | Cost per task or session |
| Customer-facing agents | Team key plus customer scope header | Cost per customer |
| Experiments and evaluations | Project header | Cost per initiative |

Bifrost groups log rows by session and reports session totals for cost and tokens, which gives a cost-per-task view for agent loops. For coding agents specifically, [the hidden cost of Claude Code at enterprise scale](https://www.getmaxim.ai/articles/the-hidden-cost-of-claude-code-at-enterprise-scale/) breaks down where developer-level spend accumulates.

## How Bifrost Supports FinOps for AI

[Bifrost](https://www.getmaxim.ai/bifrost) supports FinOps for AI by acting as the single point where identity, model, tokens, and price meet: it enforces budgets before a request is served, prices the request once it completes, and writes attributed cost to logs and exports that feed showback and chargeback.

![](https://storage.ghost.io/c/84/03/8403f2f6-141c-411a-8f55-a32d4291533e/content/images/2026/10/image-9.png)

*Figure 3: The gateway is the one point that sees identity, model, tokens, and price together, so it can both enforce budgets and produce the allocation data.*

The pieces map to the FinOps lifecycle:

- **Inform:** per-request cost, token, and latency logs, filterable by key, team, customer, and metadata
- **Allocate:** virtual keys, team and customer hierarchies, metadata, and project headers
- **Control:** hierarchical, calendar-aligned budgets and rate limits enforced before the provider call
- **Optimize:** [semantic caching](https://docs.getbifrost.ai/features/semantic-caching), where direct cache hits cost nothing, plus routing to lower-cost models through governance rules

In Bifrost Enterprise, [data access control](https://docs.getbifrost.ai/enterprise/data-access-control) limits each team lead to their own team's spend, and the [Bifrost governance resource page](https://www.getmaxim.ai/bifrost/resources/governance) shows how these controls combine. Bifrost reaches 25+ providers and 10,000+ models through one API and adds [11 microseconds of overhead at 5,000 RPS](https://www.getmaxim.ai/bifrost/resources/benchmarks).

## Frequently Asked Questions

### What is showback vs chargeback in FinOps?

Showback reports technology costs to the teams that caused them without moving money between budgets. Chargeback books those costs against the teams' budgets in the accounting system. The FinOps Foundation treats showback as always required and chargeback as dependent on accounting policy. For AI, both rely on request-level attribution of token costs.

### What is FinOps for AI?

FinOps for AI is the application of FinOps practices (visibility, allocation, optimization, and accountability) to AI spend, especially LLM inference and agent workloads. It adds token-based metrics such as cost per token and cost per task, and it needs request-level attribution because AI invoices do not identify which team made each call.

### How do you allocate LLM costs to teams?

Allocate LLM costs by giving each team, service, or developer its own credential at an AI gateway and recording cost per request. Bifrost virtual keys belong to teams or customers, carry metadata such as cost center, and roll spend up a hierarchy, as described in [how to set up virtual keys for LLM access control](https://www.getmaxim.ai/articles/how-to-set-up-virtual-keys-for-llm-access-control/).

### Is gateway cost data accurate enough for chargeback?

Gateway cost data is accurate as an allocation key but should be reconciled before chargeback. It is computed from token usage and list pricing, so it can differ from invoices that include discounts or credits. Allocate each provider invoice total in proportion to the gateway-measured share per owner.

### How do you track AI agent costs?

Track AI agent costs at the gateway rather than inside the agent, because the gateway sees every model call across every agent. Give each agent service its own virtual key, tag requests with project or session identifiers, and report cost per session or per task. SDK-reported totals are client-side estimates.

### Should AI budgets be enforced or only reported?

Enforce budgets for any spend that can grow without a human in the loop, such as agents and batch jobs, and report everything else first. Bifrost checks every applicable budget before serving a request, so an exhausted team or customer budget stops new spend instead of appearing on next month's showback report.

## Start AI Showback and Chargeback with Bifrost

FinOps for AI depends on one thing traditional cloud allocation cannot provide: attributed cost for every model call. Routing LLM and agent traffic through the [Bifrost AI gateway](https://www.getmaxim.ai/bifrost) gives FinOps teams that data, along with the budgets and alerts to act on it, from the first showback report to formal chargeback. To see AI spend attributed across your teams, [book a demo with the Bifrost team](https://getmaxim.ai/bifrost/book-a-demo).

## Read next

[![Claude Agent SDK Through a Gateway: Routing, Budgets, MCP](https://storage.ghost.io/c/84/03/8403f2f6-141c-411a-8f55-a32d4291533e/content/images/size/w720/2026/10/claude-agent-sdk-through-a-gateway-routing-budgets-mcp-bifrost-1920x1080.png) The Claude Agent SDK packages Claude Code's agent loop, tools, and context management as a Python and TypeScript library. This guide shows how to route Claude Agent SDK traffic through Bifrost for provider routing and failover, per-tenant budgets, and governed MCP tool access.](https://www.getmaxim.ai/articles/claude-agent-sdk-through-a-gateway-routing-budgets-mcp/)

[![OpenAI Responses API vs Chat Completions vs Anthropic Messages](https://storage.ghost.io/c/84/03/8403f2f6-141c-411a-8f55-a32d4291533e/content/images/size/w720/2026/10/openai-responses-api-vs-chat-completions-vs-anthropic-messag-bifrost-1920x1080.png) The OpenAI Responses API is OpenAI's stateful, item-based interface for agentic apps, while Chat Completions and Anthropic Messages remain stateless message APIs. This guide compares the three on state, tools, reasoning, and retention, and shows how Bifrost serves all three formats.](https://www.getmaxim.ai/articles/openai-responses-api-vs-chat-completions-vs-anthropic-messages/)

[![OpenClaw vs Hermes: Which Agent to Run and How to Control It](https://storage.ghost.io/c/84/03/8403f2f6-141c-411a-8f55-a32d4291533e/content/images/size/w720/2026/10/openclaw-vs-hermes-which-agent-to-run-and-how-to-control-it-bifrost-1920x1080.png) OpenClaw and Hermes Agent are open-source, self-hosted AI agents that run on your own hardware and reach you through chat apps. This openclaw vs hermes guide compares how each is built and secured, says which to run for which job, and shows how to cap its models, spend, and MCP tools.](https://www.getmaxim.ai/articles/openclaw-vs-hermes-which-agent-to-run-and-how-to-control-it/)

## More in AI Gateway

[![OpenClaw vs Hermes: Which Agent to Run and How to Control It](https://storage.ghost.io/c/84/03/8403f2f6-141c-411a-8f55-a32d4291533e/content/images/size/w720/2026/10/openclaw-vs-hermes-which-agent-to-run-and-how-to-control-it-bifrost-1920x1080.png) OpenClaw and Hermes Agent are open-source, self-hosted AI agents that run on your own hardware and reach you through chat apps. This openclaw vs hermes guide compares how each is built and secured, says which to run for which job, and shows how to cap its models, spend, and MCP tools.](https://www.getmaxim.ai/articles/openclaw-vs-hermes-which-agent-to-run-and-how-to-control-it/)

[![OpenAI Responses API vs Chat Completions vs Anthropic Messages](https://storage.ghost.io/c/84/03/8403f2f6-141c-411a-8f55-a32d4291533e/content/images/size/w720/2026/10/openai-responses-api-vs-chat-completions-vs-anthropic-messag-bifrost-1920x1080.png) The OpenAI Responses API is OpenAI's stateful, item-based interface for agentic apps, while Chat Completions and Anthropic Messages remain stateless message APIs. This guide compares the three on state, tools, reasoning, and retention, and shows how Bifrost serves all three formats.](https://www.getmaxim.ai/articles/openai-responses-api-vs-chat-completions-vs-anthropic-messages/)

```json
{
    "@context": "https://schema.org",
    "@type": "Article",
    "publisher": {
        "@type": "Organization",
        "name": "Maxim Articles",
        "url": "https://www.getmaxim.ai/articles/",
        "logo": {
            "@type": "ImageObject",
            "url": "https://storage.ghost.io/c/84/03/8403f2f6-141c-411a-8f55-a32d4291533e/content/images/size/w256h256/2025/08/thumbnail.png",
            "width": 60,
            "height": 60
        }
    },
    "author": {
        "@type": "Person",
        "name": "Kamya Shah",
        "image": {
            "@type": "ImageObject",
            "url": "https://storage.ghost.io/c/84/03/8403f2f6-141c-411a-8f55-a32d4291533e/content/images/2025/09/WhatsApp-Image-2025-08-29-at-17.40.40-1.jpeg",
            "width": 1200,
            "height": 1600
        },
        "url": "https://www.getmaxim.ai/articles/author/kamya/",
        "sameAs": []
    },
    "headline": "FinOps for AI: Showback and Chargeback for LLM Spend",
    "url": "https://www.getmaxim.ai/articles/finops-for-ai-showback-and-chargeback-for-llm-spend/",
    "datePublished": "2026-10-21T20:24:00.000Z",
    "dateModified": "2026-10-22T20:29:29.000Z",
    "image": {
        "@type": "ImageObject",
        "url": "https://storage.ghost.io/c/84/03/8403f2f6-141c-411a-8f55-a32d4291533e/content/images/size/w1200/2026/10/finops-for-ai-showback-and-chargeback-for-llm-spend-bifrost-1920x1080.png",
        "width": 1200,
        "height": 675
    },
    "keywords": "AI Gateway",
    "description": "FinOps for AI is the practice of making LLM and agent spend visible, attributable, and accountable to the teams that create it. This guide explains showback vs chargeback for AI, the attribution model AI spend needs, and how to build both from request-level data at the AI gateway.\n",
    "mainEntityOfPage": "https://www.getmaxim.ai/articles/finops-for-ai-showback-and-chargeback-for-llm-spend/"
}
```
