Skip to main content

Guide

AI spend attribution: who spends what on AI, and on what

By the Caliber team · Updated

The short answer

AI spend attribution means assigning every AI dollar, whether a seat, an API token or an agent run, to the team, the person and the work behind it. The invoice can't do it alone. You get there by joining vendor billing and usage with three things the invoice lacks: who holds each seat and key, where that person sits on the org tree in your HRIS, and what the work was.

Why the invoice can't answer it

Finance sees a total per vendor. Engineering leads see a usage dashboard per tool. Nobody sees the one view the business asks for: spend by team, by owner and by kind of work. The data that would answer it is split across systems that were never joined.

  • Seats are billed per workspace. A Claude or Cursor invoice lists a seat count, not the team each seat belongs to.
  • Tokens are billed per key or project, and keys get shared: by a team, by a script, by an agent running on a service account.
  • Gateways such as Portkey and LiteLLM aggregate many callers behind one upstream bill.
  • People change teams, managers and cost centers. Last quarter's mapping is wrong this quarter.
  • Seats and usage trade off. A seat in one tool can replace API spend in another, so tracking them in separate systems hides the real cost of a team.

The four joins that make attribution work

Attribution is a data problem with four joins. Each one closes a gap the invoice leaves open.

01Seats to people
Match every paid seat to a person through SSO and the vendor's admin API. Seats with no matching person, or matched to someone who left, surface on their own.
02Keys and agents to owners
Give every API key and agent an owner: one key per person or per agent, gateway request metadata that names the user, or cloud tags for Bedrock. A key with no owner is a finding, not a rounding error.
03People to the org tree
Join each person to the HRIS (HiBob, BambooHR, Shapes) for team, manager, department and cost center. This is what turns a list of users into spend by team, and it stays current as people move.
04Usage to work
Tie sessions to what they produced: the objective of each AI session, and the issues and pull requests in Jira, Linear and GitHub. This is what lets you price output, not logins.

What to measure once spend is attributed

  • Spend per team and per head, seats and usage counted together.
  • Seats idle for 30 days or more, by tool and by team.
  • Keys and agents with no owner.
  • People who left the company, per the HRIS, and still hold paid seats or spend.
  • Model mix: the share of spend on frontier models for routine work, and work done on a model a major version behind.
  • Cost per shipped item: what each merged pull request or closed issue cost in AI, per team.
  • Budget against actual, per person, department and work type.

Seats and tokens belong in one number

Most companies already track software seats in one place and cloud spend in another. AI breaks that split. The same team pays for Claude seats, Cursor seats, API tokens through a gateway and agents on Bedrock, and moving work between them moves the bill. A budget that counts only seats, or only tokens, can be met on paper while the team's real AI cost doubles.

So set budgets on the all-in number: seats and usage together, per person, per department and per kind of work. Then push the cap to the vendor where it can hold, instead of finding the overrun on next month's invoice.

Doing it by hand, and where it breaks

A first pass in a spreadsheet is worth doing, because it shows how big the gaps are.

  • Export seat lists and usage from each AI vendor's admin console.
  • Export the people list from the HRIS with team, manager and department.
  • Join on work email, then chase the rows that don't match: shared accounts, aliases, contractors, leavers.
  • List every API key, ask who owns it, and tag the ones nobody claims.
  • Pivot spend by team, and repeat next month.

It breaks in the same places every time: shared keys can't be split after the fact, a reorg invalidates the mapping, and a monthly export means you learn about an overrun a month late.

How Caliber does it

Caliber is AI spend and usage intelligence for the whole org. It does the four joins continuously and keeps them current:

  • Connects the AI tools you pay for: Claude (Team, Enterprise, Claude Code), Cursor, OpenAI (ChatGPT, Codex, API) and Amazon Bedrock, plus the Portkey and LiteLLM gateways.
  • Reads the org tree from your HRIS (HiBob, Shapes, BambooHR) and sign-in from Okta or Microsoft Entra ID.
  • Reconciles every seat, key and agent to an owner and a team, including the ones nobody uses.
  • Sets budgets per person, department and work type, seats and usage together, with caps pushed to the vendor.
  • Ties spend to output through Jira, Linear and GitHub: cost per shipped item and the work mix of every AI session.
  • Scopes every view to the person asking: the executive sees the company, a manager sees their team, everyone else sees themselves.

The data plane runs in your own cloud. Delivery bottlenecks, from prompt to production, are next on the roadmap.

Questions and answers

What is AI spend attribution?

Assigning every AI dollar, seats, API tokens and agent runs, to the team, person and work that caused it, so the business can see AI spend by team and owner instead of a total per vendor.

How is it different from cloud cost management?

Cloud cost tools attribute infrastructure through accounts and tags. AI spend spans seats in SaaS tools and tokens across several vendors, and its owner is a person on the org tree, not a cloud account. Attributing it means joining billing with identity and the HRIS.

Can spend on a shared API key be attributed?

Not after the fact. Route calls through a gateway that tags each request with a user, or issue one key per person or agent. Caliber flags keys and agents that have no owner so they can be reassigned.

What data does attribution need?

Seat lists and usage from each AI vendor, identity from SSO, and the org tree from the HRIS. To price output, add Jira, Linear or GitHub for issues and pull requests.

Does attribution mean monitoring individuals?

It doesn't have to. In Caliber, a person sees their own usage, a manager sees their team, and the executive sees the company, so each view is scoped to the asker's place on the org tree.

See your own AI spend by team in one call.

Thirty minutes with the founding team, on your org tree and your tools.