---
title: "Internal spend: where the AI money went"
description: "Tanso pulls usage and cost from Anthropic, OpenAI, Cursor, GitHub Copilot and LiteLLM's own admin APIs, reconciles them to the invoice, allocates spend to teams and projects, caps it, and joins it to what shipped. No proxy, no agent, no prompts collected. Open source."
date: 2026-08-26
canonical: https://tansohq.com/product/internal-spend
---

# Internal spend: the AI you buy

The vendor bill tells you the total. This tells you where it went.

Usage and cost come from the vendors' own admin APIs on a schedule. Nothing sits in your request path, nothing is installed on laptops, and no prompt or source code is collected. They are the same reports finance reconciles against.

## Visibility

Three numbers that should agree: what you metered by the price book, what the vendor's cost report says, what the invoice says. When they disagree you can see which one moved.

- **Usage by model, by day, by person.** Tokens in and out, cache reads and writes, requests. Two prices per row: the price book and the vendor's own report. Person level is off by default.
- **Reconcile.** Metered, vendor-reported and invoiced side by side per provider. Import the invoice as a two-column CSV and it lands beside them.
- **Connections.** Anthropic, OpenAI, Cursor, GitHub Copilot and LiteLLM. One admin key each, checked with one call, synced hourly.

![Reconcile: metered, vendor-reported, invoiced](https://tansohq.com/screenshots/spend-reconcile.png)

## Allocation and control

- **Teams and projects.** Rules on a vendor workspace, an API key or an actor put every dollar on a unit, with roll-up. Whatever no rule claims lands in an explicit Unattributed row that always adds up to the total.
- **Budgets and alerts.** A daily ceiling for runaway agents, a monthly one for the budget. Alerts at the threshold, the breach, a spike, and when the month-to-date pace projects past the ceiling.
- **Slack, webhook, email, digest.** Alerts go where the team already looks. A Monday digest sends last week per unit against the week before. Bump a ceiling until a date, with a reason, and it drops off on its own.
- **Block, if you run a gateway.** On its own a budget can only alert. If traffic goes through LiteLLM, a Block budget is pushed to the proxy as that team's hard max_budget. See [Gateway enforcement](https://tansohq.com/product/gateway.md).

![Teams: allocation with roll-up](https://tansohq.com/screenshots/spend-teams.png)

## What it bought

- **Outcomes.** Merged pull requests and completed issues from GitHub and Linear, or a single POST from CI. Cost per outcome per unit, and the share that was AI-assisted.
- **Savings and the route simulator.** What prompt caching saved per model, and the same tokens re-priced on another model with the caveats written down. Advice from the price book; Tanso does not route requests.
- **Feature P&L.** Link a project to the monetization feature it shipped. One report puts its AI build cost next to that feature's revenue and serving cost. That feature's margin, minus what it cost to build.

![Feature P&L](https://tansohq.com/screenshots/spend-pnl.png)

## Take this half, leave the rest

Runs without the billing engine. Set `APP_MODULES_MONETIZATION_ENABLED=false` and plans, customers, credits, invoices, the client API and Stripe are switched off: their routes answer 404, their jobs do not run, and the console shows Internal spend alone. Connect a vendor, sync, and Reconcile is populated within the minute. Turn monetization on later without reinstalling.

## On people

Per-person attribution is monitoring, and it is off by default. It cannot be turned on until you have written down what staff were told. There are no leaderboards. A person's own Claude Code estimate is shown on the person and never rolled into a team score.

## Also in Tanso

- [Monetization](https://tansohq.com/product/monetization.md)
- [Gateway enforcement](https://tansohq.com/product/gateway.md)
- [Launch post: where your AI spend went](https://tansohq.com/blog/where-your-ai-spend-went.md)

Code: https://github.com/tansohq/tanso-oss · Docs: https://tanso.mintlify.app/internal-spend
