For Finance · Every token counts.

Defend the AI bill, line by line.

When the AI line item shows up on the variance report, you already have the row that explains it — signed by SSO, tagged to a project task, allocated to a GL code, immutable at the SQL layer.

The last week of the quarter

Reena runs FP&A. She used to call this week “AI archaeology.”

Old world

Five invoices. Four spreadsheets. Two days of pinging engineers.

OpenAI charged $42k. Anthropic charged $61k. Nobody can map either back to a product line. Reena calls the variance “Other.” The CFO underlines it.

After Tokenality

One query. By project, by team, by GL.

Project Alpha: $28.4k, 83% Anthropic. Onboarding initiative: $11.2k, four engineers. Reena clicks Export CSV. It posts to Workday before her coffee's cold.

In the variance review

The AI line item stops being the awkward one.

The CFO asks who's over budget. Reena pulls up the project view: nobody is. Two budgets blocked themselves at 90% last Tuesday — Engineering already adjusted.

What becomes true

Four things stop being projects.

Month-end close on AI: an afternoon, not a week. Filter, export, done.

Hard budget caps that the gateway enforces before the LLM is called — surprise invoice ends.

Chargeback CSV that joins to Workday or Netsuite without a translation layer.

When Engineering says "the agent ran away," the row says it didn't — the cap stopped it.

How it actually works

Spend Tokens are the second factor on the bill.

Every virtual key is bound to a budget at issuance — the cap is signed into the token envelope itself. The gateway verifies it offline, before any LLM call. When it's exhausted, the response is 402 Payment Required — not an alert email after the fact.

# Issued with a $500 hard cap, bound to Project Alpha's GL
eval $(vis-issue alice proj-alpha --cap 500 --gl 6210-AI-RND)

# Every commit lands on the ledger
{
  "person":   "[email protected]",
  "project":  "proj-alpha",
  "task":     "PROJ-128",
  "gl":       "6210-AI-RND",
  "model":    "claude-haiku-4-5",
  "spend":    "$0.0142",
  "remaining": "$487.18"
}

# Cap hit → 402 before the LLM is called. Zero overrun.

Your GL stays source of truth.

We post to your ERP, we don't replace it. Chargeback exports land joinable to the cost-center and account-code structure you already use.

Workday

Cost-center mapping + GL allocation

Netsuite

Chargeback CSV → GL postings

QuickBooks

Class + customer tagging for project rollups

Sage Intacct

Multi-entity AI spend allocation

SAP

Cost-center + WBS mapping at the line level

Snowflake

Ledger replication for FP&A analytics

Three other people are asking different questions.

The same row in our ledger answers all four. Pick the door that matches the meeting you're in.