One AI invoice split into team cost columns for support, search, sales and a shared pool

How to Allocate AI Costs Across Teams and Products

How finance teams allocate AI and LLM costs: showback vs chargeback, five allocation methods, the tags to capture, KPIs and a 4-step rollout.

Finance teams allocate AI costs by tagging every request with a team, product and customer, then splitting the provider invoice by those tags. Start with showback, where teams see their costs. Move to chargeback, where costs hit their budgets, once tagging covers 90% or more of spend.

Here's the catch: the invoice alone cannot do this. OpenAI, Anthropic and Google bill by account, project or workspace, not by the team that wrote the prompt. Allocation only works if the attribution data is created at the moment of the request.

This guide covers the decisions in order: showback or chargeback, which allocation method fits each cost, what to capture per request, what to count beyond the API invoice, which KPIs to report, and a rollout that takes four to six months.

Showback vs chargeback

Showback reports AI costs to the team that caused them. Nobody's budget moves. Chargeback transfers the cost to that team's budget, so it shows up in their P&L.

Both are standard concepts in FinOps, the cloud financial management practice the FinOps Foundation publishes guidance on. The same logic applies to AI spend, which is why "finops for ai" is now a search term of its own.

What that means in practice:

  • Showback is the right first step. It costs little, builds trust in the numbers, and exposes tagging gaps without anyone getting billed for a data error.

  • Chargeback is the right end state for teams that run their own product lines. It changes behavior because the cost lands on someone who can reduce it.

  • Do not skip showback. Chargeback on bad data starts disputes, and finance spends the quarter defending the allocation instead of improving it.

The five allocation methods

Most AI bills need more than one method. Direct allocation covers whatever is already tagged, and the rest needs a rule.

Which method fits which cost:

MethodHow it worksBest forWatch out for
DirectCost follows the key, project or workspace that incurred itTeams with their own provider projectShared keys break it silently
Usage-basedSplit by measured usage: requests, input and output volume, or compute timeShared gateways and shared modelsNeeds request-level logs
Shared-costPool a common cost, then split by a stated rule such as share of direct spendEvals, embeddings indexes, platform toolingThe rule must be agreed in advance
FixedFlat monthly amount per team, regardless of usageSeat-based tools and committed contractsHides heavy and light users
Customer-levelAttribute cost to the customer whose request triggered itAI features sold inside a productNeeds a customer ID on every request

A short rule of thumb: use direct wherever you can, usage-based where a shared system sits in the middle, and customer-level for any feature you charge customers for.

What to capture on every request

Allocation quality is set at request time. If a field is not stamped when the call is made, no finance process can recover it later.

The minimum set of metadata:

  • Team and cost center. The owner of the spend, using the same names as the GL.

  • Product and feature. Which part of the product made the call.

  • Environment. Production, staging or experiment. Experiments should never share a bucket with production.

  • Customer ID. Required for customer-level cost and margin.

  • Model and prompt version. Lets you tie a cost jump to a specific change.

  • Input and output volume. Providers price these separately.

  • Request ID. Links the log line to the invoice line item.

Three places to attach those fields:

  1. API keys per team or service. The simplest control. One key per team and environment means the provider's own usage report is already split.

  2. Provider workspaces and projects. OpenAI projects and Anthropic Console workspaces each carry their own usage reporting and their own limits. Give each product its own.

  3. A gateway. A proxy that sits between your code and the providers can stamp team, product and customer onto every request and write one log across all vendors. This is the only reliable way to get usage-based and customer-level allocation across more than one provider.

What costs to include beyond API invoices

The provider invoice is the visible part. Fully loaded AI cost is larger, and leaving the rest out makes every product look cheaper than it is.

Count these:

  • Inference and GPU hosting for any self-hosted or fine-tuned models.

  • Vector databases and retrieval storage that exist only to feed prompts.

  • Evaluation and test runs. Easy to miss, and rarely owned by anyone.

  • Observability and gateway tooling. Logging, tracing and prompt management subscriptions.

  • AI seats. Coding assistants and chat subscriptions, usually allocated fixed per head.

  • Labeling and human review, where a person checks model output.

  • Engineering time on prompt and model maintenance, if the allocation feeds a unit-economics model.

Put the first six in the allocation. Treat engineering time as a separate line so the model cost stays comparable across products.

The KPIs to report

Raw dollars tell a team what it spent. Ratios tell it whether the spend was worth it.

KPIFormulaQuestion it answers
Cost per requestAllocated cost / request countIs a single call getting cheaper or dearer?
Cost per customerAllocated cost / active customers on the featureWhich accounts cost more than they earn?
Cost per resolved taskAllocated cost / completed outcomesWhat does the useful output cost?
AI cost as % of revenueAllocated AI cost / revenue from AI-powered productsDoes the margin hold at scale?

Cost per resolved task is the one finance should push hardest. Cost per request favors a team that makes a bad answer cheaply, while cost per resolved task only improves when the answer works.

A worked example

The numbers below are illustrative, not a benchmark. They show the mechanics, not what any company should expect to pay.

Take a company with a $20,000 monthly AI bill across providers. Tagging shows $15,000 belongs directly to three teams. The other $5,000 is shared: evaluation runs, an embeddings index and the gateway.

Step 1: direct allocation. Support $8,000, Search $5,000, Sales Assist $2,000.

Step 2: shared-cost allocation. Split the $5,000 by each team's share of direct spend: Support 53.3%, Search 33.3%, Sales Assist 13.3%.

TeamDirectShared shareFully loaded
Support$8,000$2,667$10,667
Search$5,000$1,667$6,667
Sales Assist$2,000$666$2,666
Total$15,000$5,000$20,000

Step 3: unit economics. Say Support resolved 40,000 tickets that month. Fully loaded cost per resolved task is $10,667 / 40,000, or about $0.27. If the company's monthly revenue from AI-powered products is $400,000, AI cost is 5% of that revenue.

The method matters more than the figures. Every dollar landed on a team, the totals reconcile to the invoice, and the shared rule fits in one sentence.

A 4-step rollout

Do not try to launch chargeback on day one. The sequence below takes four to six months and each step earns the next.

Month 1: get visibility. Inventory every AI vendor from payment and expense records. Split provider accounts into one project or workspace per team and environment. Report total spend by vendor, weekly.

Month 2: tag and attribute. Add the metadata fields above through keys, workspaces or a gateway. Track coverage: the percentage of spend that carries a team and product tag. Aim for 90%.

Months 3 to 4: showback. Send each team a monthly statement with direct and shared costs and the four KPIs. Hold a review with finance and engineering. Fix the shared-cost rule while nobody's budget is affected.

Months 4 to 6: chargeback. Once coverage holds above 90% for two consecutive months and the shared rule is signed off, move allocated cost into team budgets. Reconcile to the invoice every close.

Where the payment layer helps

Tags explain the API invoice. The card that pays it can carry structure too. On the Rho platform, finance can issue a separate virtual card for each AI provider or team, so each card's charges belong to one provider or team.

Each card can have a recurring monthly limit. Any transaction that would exceed it is declined, and monthly limits reset on the 1st. Merchant-specific controls can restrict a card to a list of up to 20 named merchants, so a team's card only pays the providers it is meant to.

This does not replace request-level tagging. It gives finance a second view of AI spend, from the payment side.

FAQs