← FinOpsAid blog

Tracking AI spend across your org — Copilot, Claude, and the cloud LLM bill — 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

Five consoles, five units, one AI bill Organizational AI spend is split across GitHub Copilot billed per seat, direct model-provider APIs billed per token, and LLM workloads inside Vertex AI, Azure OpenAI and Amazon Bedrock billed per token within existing cloud accounts. Each lives in its own console with its own unit, and normalizing them to a common currency and period is what produces a single view. WHERE AI SPEND ACTUALLY LIVES Copilot per seat Anthropic per token Vertex AI in the GCP bill Azure OpenAI in the Azure bill Bedrock in the AWS bill NORMALIZE Same currency · same period boundary · same definition of a unit One number you can trend
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:

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:

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.