learnaiwithrafa
Multi-ToolWorkflows

A 3-Step AI Cost Audit: Seats, Tokens, and the Hours Nobody Books

Two thirds of companies have an AI dashboard. Barely a quarter can actually see what AI costs them. Here is the 3-step audit I run on a tooling budget: what to list, which number to pull for each line, and the threshold that means kill it.

5 min read4 sources
  • #workflows
  • #cost
  • #finops
  • #engineering-management
  • #claude

A dashboard is not cost control. KPMG's Q2 2026 AI Pulse survey — 204 US C-suite and business leaders at companies with $1B+ in revenue, fielded 28 April to 25 May 2026 — found 66% had AI monitoring dashboards and 61% had approval processes, but only 26% said their AI operating costs were fully visible and actively monitored. Only 36% had implemented direct token or usage controls. So the common failure mode isn't that nobody is watching. It's that everybody is watching a chart nobody can act on.

I own a tooling budget as an EM at a US company, and this is the audit I run on it. It takes an afternoon. It gives you three things per line: who pays for it, what shape the bill is, and what one unit of finished work actually costs.

Step 1 — List every line, tagged by billing shape

One row per AI line item. Columns: line, billing shape (seat, token, or both), owner, cost last 30 days, active users last 30 days.

Billing shape is the only column that predicts a surprise. Seat lines drift upward slowly, one hire at a time. Token lines can double in a week with nobody approving anything.

Pull each number from the source, never from memory:

  • Seats. The Claude Code Console dashboard shows a team insights table listing every member with Spend this month and Lines this month. A row with spend and no lines is a licence somebody forgot they had. (Anthropic labels those spend figures as estimates — fine for a reclaim decision, not for finance.)
  • Tokens. Don't read the dashboard, query it. The Usage and Cost Admin API exposes /v1/organizations/cost_report, which you can group_by[]=workspace_id and group_by[]=description at daily granularity, plus /v1/organizations/usage_report/messages with bucket_width=1d grouped by model. It needs an Admin API key, not a normal one.
curl "https://api.anthropic.com/v1/organizations/cost_report?\
starting_at=2026-07-01T00:00:00Z&ending_at=2026-08-01T00:00:00Z&\
group_by[]=workspace_id&group_by[]=description" \
  -H "anthropic-version: 2023-06-01" \
  -H "x-api-key: $ANTHROPIC_ADMIN_KEY"

Kill threshold: a seat with spend and zero output for 30 days gets reclaimed next cycle, no meeting required. And token spend landing in a workspace with no named owner gets frozen until it has one. An unattributable line isn't a budget problem, it's a governance one.

Step 2 — Price one unit of finished work, verification included

The invoice total tells you nothing you can act on. What you need is the cost of one shipped thing.

Anthropic's own worked example prices a one-hour Claude Opus 5 coding session at $0.705 — 50k input tokens, 15k output tokens, plus session runtime. Turn on caching for 40k of those input tokens and the same session costs $0.525, because a cache hit bills at 0.1x the input rate.

Now put a senior engineer's hour beside that. Anything more than a few minutes of re-reading, re-running, or arguing with the output dwarfs the invoice line entirely. That is the cost nobody books, and it's the only one that scales with headcount instead of with usage. So price each line like this:

cost per verified unit = (30-day line cost + verification hours × loaded hourly rate) ÷ units shipped

Kill threshold: if the cost per verified unit is above what that output costs you without the tool, cancel it. And if verification hours are climbing while the invoice stays flat, you don't have a cost problem — you have a quality problem wearing a cost problem's clothes.

Step 3 — Cap what floats, and calendar the price changes

Per-token prices are not a constant, and three of these move without anyone on your team deciding anything:

  • Cache reads bill at 0.1x base input. Same workload, tenfold spread, settled by whether somebody set cache_control.
  • Batch is 50% off in both directions. Anything that doesn't need an answer this second belongs there.
  • The premium tier isn't where you think. Claude Fable 5 outputs at $50/MTok; Claude Opus 5 outputs at $25/MTok, half as much. Haiku 4.5 sits at $1 in, $5 out.
  • Claude Sonnet 5's introductory $2/$10 runs through 31 August 2026, then standard pricing takes over at $3/$15. A 50% input increase is already on the calendar — if your Q4 forecast uses today's rate, it's wrong today.
  • Upgrading a model moves token counts, not just token prices. Claude 4.7 and later use a newer tokenizer that produces roughly 30% more tokens for the same text. A flat per-token price can still hand you a bigger bill.

Do this today

Pull one cost report grouped by workspace for last month and open the per-user seat table next to it. Circle every seat with spend and no output, and every workspace with no name attached to it. That's one hour, and it's the hour that pays for the rest of the audit.

Sources