Agent ROI attribution
Agent ROI answers one question per AI agent: is this agent returning more than it costs? It puts the agent’s model-call cost (what the agent spent on LLM tokens in a window) against the attributed revenue of the outcomes it resolved (what the resolved conversations were worth to you), and reports the difference as a margin. If two agents both sound good in demos, this is the surface that tells you which one is actually paying for itself. The dashboard at Insights → Agent ROI in the Orbit console renders these numbers per agent, with an org-wide daily trend and a config form for the pricing assumptions. The same data is available over the API — for endpoint shapes and every field, see the Insights API reference. This guide explains what the numbers mean and how to set the assumptions responsibly.What ROI measures
For a selected window, every metric is computed per agent and summed for the org:- AI cost — the model-call spend recorded for the agent’s conversations in the window (the same ledger that feeds the LLM spend dashboard).
- Attributed revenue — the count of resolved outcomes the agent passed, priced by your value-per-outcome config (below). A conversation counts when it reaches a resolved status or passes an outcome rubric.
- Margin — attributed revenue minus AI cost, plus a
margin_percent(margin over revenue). A positive margin means the agent returned more than it spent; negative means it cost more than its outcomes were priced at.
The three surfaces
The feature is one dashboard backed by three API endpoints:
All reads are served from a read-replica with the org’s billing timezone applied to day boundaries — a day in the trend is your local day, not UTC.
Tuning attribution
Attribution is priced by a two-level lookup: an explicit per-rubric override if one exists, otherwise the org default, otherwise zero.PUT /api/v1/insights/agent-roi/config is a read-merge-write: both fields are optional, omitted fields keep their current value, and the server re-validates on write. Send null (not omitted) to clear the default.
Reading the dashboard
Open Insights → Agent ROI in the console. The layout, top to bottom:- Stat cards — org totals for the window: AI cost, attributed revenue, margin, and margin share, computed by summing every agent row.
- Cost vs revenue trend — the daily org-wide trend. Margin is the gap between the cost and revenue lines on any given day.
- Attribution config — the assumptions card (default + per-rubric values).
- By agent table — one row per agent in the window: cost, attributed revenue, margin, margin %, outcome count, and the priced outcome lines (each rubric that contributed revenue, with its passed count and subtotal). Rows are ordered so the largest contributors are first; if your org has more agents than the page limit, a note under the table tells you the table is truncated.
- AI cost: $412.00
- 61 resolved outcomes priced at 1,525.00 attributed revenue
- Margin: $1,113.00 (73% margin)
Role access
The Agent ROI dashboard and its API endpoints are visible to the owner, admin, developer, and billing roles only — the same guard as the LLM spend dashboard, since both surface aggregate cost and revenue numbers. Agent and viewer roles do not see the page in the console, and API calls from those roles are rejected.See also
- Insights API reference — endpoint shapes for the summary, trend, and config
- AI agent cost controls — budgets and hard spend caps for your agents