Why AI spend is unattributable by default
The invoice grows and nobody can say which team caused it. That is the default, and it is structural.
How it happens
- One shared API key per provider.
- Keys copied between teams.
- No team or app on the request.
- A separate invoice per provider.
- Self-hosted models metered by nobody.
Why spreadsheets fail
Asking teams to log their usage decays within weeks. New apps inherit old keys.
The fix
- All model traffic through one gateway.
- Team, app and user on every request.
- Budgets enforced at the gateway.
- Telemetry in the monitoring you already run.
The result
Finance gets chargeback it can defend. Teams get budgets they control. The question becomes whether the spend was worth it.