October 5, 2026
AI agent chargeback without false precision
A straightforward allocation ledger for shared agents, including the unattributed spend that most team dashboards hide.
Quick answer
Tag each agent run with an owner and workflow at the trigger, sum all calls and retries under that run, and keep untagged usage in an explicit unattributed bucket. Don't assign shared overhead to a team just to make a dashboard total look tidy.
One agent can handle support, engineering, and internal operations. A provider invoice can tell you what the account spent. It cannot settle, on its own, which team's work caused each request. Chargeback starts with an attribution rule that people can audit.
Build the smallest useful ledger
For each request, keep the provider request id, timestamp, model, token categories, billed amount or calculated estimate, agent run id, workflow, team, and outcome. The run id is the join key. Calls made by child agents and fallback models belong to their parent workflow unless you document a different rule.
Reconcile the sum of allocated, shared, and unattributed usage to the provider bill for the same period. If the two disagree, show the difference. Don't hide it by spreading it across teams.
An illustrative allocation
Suppose a monthly bill is $100. Tagged support runs account for $40, tagged engineering runs for $35, shared monitoring for $15, and requests with missing ownership for $10. That is $100 total, but only $75 is directly attributable. Showing the $10 unknown bucket is more honest than calling it support spend by default.
For shared monitoring, pick a policy up front. Keep it as a central platform cost, or distribute it by a stated driver such as active seats. Either is defensible if the policy is consistent and visible. Neither is a measurement of exact causality.
Make the report actionable
Show spend by team and workflow next to accepted tasks, retry spend, and the unattributed share. A team with high usage may be getting a lot done. A team with low usage may still have a costly stuck workflow. Chargeback should reveal decisions, not just move a bill around.
FAQ
What if a run crosses teams?
Choose an owner at the trigger and record any later transfer. Avoid silently splitting a single run by guesswork.
Should I allocate every cent?
Reconcile every cent, yes. Attribute every cent to a team, no. An unknown bucket is a useful data-quality signal.
How often should the policy change?
Only when a documented business rule changes. Keep historical reports reproducible under the policy used at the time.
See your actual numbers
The calculator runs in your browser. No account needed.