How to attribute AI and LLM costs by team
Turn one opaque provider invoice into per-team accountability.
By Quordo · Published · Updated · 6 min read
Key takeaways
- You attribute AI costs by team by giving each team its own provider key or project, then mapping every usage event on that connection to the owning team at ingestion.
- Provider invoices report cost by model and time bucket, not by team, so attribution requires a mapping layer between provider usage and your org structure.
- Storing denormalized provider/model/team/cost on each usage event keeps historical attribution stable even when keys are rotated or prices change.
Why the provider invoice isn't enough
A single OpenAI or Anthropic invoice tells you what the organization spent — not who spent it. For finance, that's the difference between a number to pay and a number to manage.
Most AI usage APIs report cost by model and time bucket, not by the team, product, or cost center that incurred it. Without a mapping layer, per-team accountability is impossible and showback and chargeback stall.
Pick an attribution model that matches reality
The most reliable coarse-grained model is per-connection: give each team its own provider key (or project), then attribute all usage on that key to the team. It's honest, auditable, and requires no per-request tagging.
Finer-grained models (per-request metadata, per-agent tags) are powerful but require discipline at call time and a provider that preserves the dimension. Start coarse, then refine where the spend justifies it.
Operationalize it
Stamp every usage event with its team at ingestion, store the denormalized provider/model/team/cost on the event, and roll it up by day and month. That keeps historical attribution intact even when a key is rotated or a connection is removed. Attribution is also the foundation everything else in AI cost governance builds on — budgets and alerts only change behavior when they're scoped to a team, and a spend forecast is only as good as the per-team run-rates underneath it.
In Quordo you assign a connection to a team once; usage is then attributed automatically and the dashboard slices cost by team, model, and provider — ready for chargeback.
Frequently asked questions
- How do I attribute AI costs by team?
- Give each team its own provider API key or project, then map all usage on that connection to the team at ingestion time. This per-connection model is auditable and needs no per-request tagging. Finer-grained models (per-request metadata or per-agent tags) work too, but require discipline at call time and a provider that preserves the dimension.
- Why doesn't the OpenAI or Anthropic invoice show cost per team?
- Provider usage APIs report cost by model and time bucket, organized around the provider's own boundaries — accounts, keys, and deployments — not around your org chart. Without a mapping layer that translates provider usage into your team structure, per-team accountability and chargeback are impossible.
- What data should I store for AI cost attribution?
- Stamp every usage event with its team at ingestion and store the denormalized provider, model, team, and dollar-cost on the event itself, then roll it up by day and month. That keeps historical attribution intact even when a key is rotated, a connection is removed, or a provider changes its prices.