← FinOpsAid blog

Tracking AI spend across your org — Copilot, Claude, and the cloud LLM bill
Two years ago your AI spend was one line: Copilot seats. Now it's Copilot plus Anthropic and OpenAI API bills plus Vertex, Azure OpenAI, and Bedrock — each in its own console, in its own units. Here's how to get it back into one view.
Not long ago, "AI spend" at most companies meant one thing: the monthly Copilot bill. It was a per-seat subscription, it was predictable, and it lived in one place. That era is over. Today an engineering organization's AI cost is scattered across a Copilot subscription, direct API bills from model providers like Anthropic and OpenAI, and LLM workloads running inside the cloud accounts you already had — Vertex AI on Google, Azure OpenAI on Microsoft, Amazon Bedrock on AWS. Each has its own console, its own pricing model, and its own idea of what a "unit" is. The bill fragmented faster than anyone set up to track it.
The shape of modern AI spend
The bill fragmented faster than anyone set up to track it. Note that three of the five never appear in an "AI" budget line at all — they arrive inside cloud invoices someone else already owns.
The reason this is hard isn't the total — it's the shape. Different AI costs are priced on fundamentally different models:
- Per seat. Copilot bills per assigned developer, stable and knowable, whether or not the seat is used.
- Per token. Direct API usage — Claude, GPT — bills by input and output tokens consumed. It scales with what your code actually does.
- Per cloud unit. Models run through Vertex, Azure OpenAI, or Bedrock bill through the cloud provider, tangled up in the rest of your cloud invoice.
No two of these speak the same language, and no one console shows all three. Finance ends up seeing fragments — a subscription here, a spike in the AWS bill there, an Anthropic invoice in someone's inbox — and never the whole.
Why per-token is a different beast than per-seat
The shift from per-seat to per-token spend is the one that catches teams out. A seat is a fixed cost: you know today what a seat will cost next month. A token is a variable cost, and the variance is the whole risk. A workload that changes overnight, an agent that starts looping, a new feature that calls a model in a hot path — any of these can move a per-token bill sharply in a direction nobody predicted, and you won't feel it until the invoice lands unless you're watching usage in near-real-time.
Per-seat spend is a budgeting problem. Per-token spend is a monitoring problem. Managing them the same way is how the AI line item surprises you.
The unit economics that actually move the bill
Cost per token is the headline, but it's not where the money is won or lost. The levers are one level down:
- Cache-hit rate. Reusing cached context instead of re-sending it changes the economics of a token-heavy workload dramatically. A high cache-hit rate is often the single biggest difference between a reasonable API bill and an alarming one.
- Input-vs-output mix. Output tokens and input tokens don't cost the same, and workloads differ wildly in their ratio. Knowing your mix tells you which knob matters.
- Model tier. Frontier models cost more than mid-tier ones, which cost more than entry-tier. Routing the right workload to the right tier — not sending every request to the most expensive model out of habit — is real money.
You can't tune any of these if all you have is a single "AI spend" total. The number that helps is the breakdown.
Bringing the providers into one view
There's no clever trick here, just the necessary work: pull each provider's usage and cost data — Copilot's billing, Anthropic's usage and cost APIs, each cloud's LLM billing — into a single place, normalized into consistent units, and attributed to teams. The alternative is reconciling four consoles by hand every month, which means in practice nobody does it, and the AI bill goes unmanaged precisely because it's inconvenient to see.
One view, consistent units, per-team attribution. That's the entire requirement, and meeting it is what separates an AI bill you manage from one that manages you.
Attribute it, like everything else
For all its novelty, AI spend is just another metered surface, and the same discipline applies as to Actions minutes or Copilot seats: attribute it to teams so it has an owner, label every modeled figure as an estimate, and reconcile the usage signal against the billed total rather than conflating the two. Tokens are a usage signal; the provider's invoice is the dollar. Meter the signal, anchor it to the bill.
Do that and the fragmentation stops being a problem. It doesn't matter that the spend lives in five consoles if you've pulled it into one with a consistent unit and an owner per team.
Consolidating that scattered AI spend — Copilot, Claude via Anthropic's usage APIs, and unified cloud LLM spend across Vertex, Azure OpenAI, and Bedrock — into a single attributed view, with cache-hit rate and model mix surfaced so you can act on them, is exactly what FinOpsAid was built to do. It also pairs with measuring Copilot's ROI: once every AI dollar is in one place, you can finally ask whether the whole stack is earning its keep.
Frequently asked questions
How do I track AI spend across Copilot, Claude and the cloud providers?
Bring each provider's billing API into one view with a shared time window and a shared set of units, then keep each source labelled. Vertex AI, Azure OpenAI, Bedrock, Anthropic and Copilot all report differently, and normalising them without recording where each figure came from is how reconciliation becomes impossible.
Why is per-token AI spend harder to manage than per-seat?
Because it is variable and nobody decides to spend it. A seat is provisioned once by a person; tokens accrue continuously as a side effect of work. That means the levers are different — model choice, context size and which surfaces are used — rather than how many licences you bought.
Can AI API spend be attributed to a developer or repository?
Rarely. Anthropic bills by workspace and API key, and the cloud providers group by account, service, model and region. None of them offer a per-person or per-repository split, so attribution depends on how you organised workspaces and projects before the spend happened.
Want your Copilot, Claude, and cloud LLM spend in a single attributed view? Connect your GitHub org — read-only and free during beta — or explore the demo dashboard first.