Skip to main content
The AI ROI report shows what coding agents spend, what work they do, and how that work ends. The figures about spend and sessions read the coding sessions traced in the period and scope you pick. The judged answers read one shared sample of up to 100 sessions from the last 30 days, scored when you generate the report — so every question answers about the same sessions, and the cards can filter one another.

Before you begin

  • Reports access: The Reports section appears in the app rail only for members who can manage organization settings, usually the Admin role.
  • Traced coding sessions: Sessions your coding tools trace to Atlan Trident. See Send and verify traces.
  • A workspace to generate in: You generate the report for one workspace at a time, and scoring it needs permission to create and run scorers in that workspace. A question that cannot be scored for that reason reports it on its own card.
1

Open the report

  1. Select Reports in the app rail, then AI ROI report.
  2. Choose the workspace scope and period in the header. The filter bar repeats the date range read-only; the header sets it.
The report opens on its live figures whether or not anyone has generated it yet. The strip shows Sessions, the coding-agent sessions traced in the period; Spend, their model spend at list price; and Cost per session, spend divided by sessions — each with its change from the previous period, and a day-by-day line under the first two. Beside them, Cost by day shows the period’s total spend day by day with the peak day called out, and Cost by AI tool shows each coding tool’s share of spend and its spend, largest first.The report counts coding tools a person drives only — Claude Code, Codex, Conductor and similar. Agent and test-run spend is not counted here; it lives on the Agent usage report.Two more tiles on the strip are judged figures, not live ones: Untested code changes and Spend on dropped work. They fill in when you generate the report.
2

Generate the report

Before the first run, a card under the figures offers Generate report. It stays off until you pick one workspace in the header, as the tooltip says. Selecting it asks before it spends: the confirmation names the workspace, the last 30 days, and that scoring runs a paid judge over those sessions; it takes a few minutes, and you can leave the page and come back. Select Generate.A run makes sure every question’s scorer exists in the workspace you picked and is live, creating and publishing what is missing. It samples up to 100 coding-agent sessions from the last 30 days — sessions of the coding tools a person drives — and starts one background scoring run per question over that one shared sample. Each question’s card shows its own progress and its own failure, so a question that cannot be scored does not hold the others back.A note under the figures says what scoring covers. Before the first run it says scoring reads each session’s transcript and trims very large sessions to fit the judge’s input budget. After a run it says how many sessions the last run sampled, the fewest any question was answered from, and the most that failed to score or had no transcript.Scoring continues after you leave the page. A run started in another tab, or by someone else, shows its progress here too, and the cards read the newest generation whose runs have all settled. Once the report has answers, the run control reads Run again — its confirmation says the same thing — and the time of the last generation shows beside it. The control moves up beside the header, and back onto the page on small screens.
3

Read the judged cards

One card per question, grouped by what the questions ask. Every question is judged over the same sample, so the cards read together: what the sessions’ work was, how each session ended, how much correction it needed, where friction came from, and whether a secret was visible in the session. The cards about code — work kind, edits kept, testing, loops, risky actions, and insecure code — count only sessions judged Software work; each says so, and says when the work question has no answers in the sample yet, so the card reads every session until it does.A card leads with its headline figure and shows its answers as shares of the sampled sessions, with a one-line insight and a next step that names who acts on it — FinOps, the platform owner, or Security.The strip’s two judged figures belong to two of these questions:
  • Untested code changes counts the code-changing sessions in the sample where nothing ran after the agent’s last edit — no test, build, lint or run. Sessions that changed no code are left out, and the tile says how many of how many code-changing sessions it is.
  • Spend on dropped work is an estimate, shown with an Illustrative badge and its math: the dropped share of the sample, times the coding-agent sessions in the 30 days the sample was drawn from, times that window’s average cost per session. It assumes a dropped session costs as much as any other — per-session cost is not joined to answers yet.
The last card is the flagged-skills table — the same one the Skill security report shows — with the next step to review the flagged skills people still run and block or replace the ones gating at critical first. It answers to no filter on this page.
4

Filter the page

Any bar filters the page. An answer on a question card keeps the sessions that scorer answered that way; an AI tool bar, or a pick in the filter bar’s AI tool or Repository select, keeps that tool’s or repository’s sessions. Filters stack across questions and dimensions. Within one question, or one dimension, another choice replaces the current one, and selecting the active choice again clears it. Active answer filters show as chips, with Clear all to start over.An AI tool or repository filter narrows the live figures and the judged shares. Each question card’s basis line says how many of the sampled sessions match the active filters, and that the date range above does not change the sample: the sample is always the 30 days ending when the report was generated. An answer filter keeps the sessions every filter’s scorer answered that way.Some cards cannot answer to a filter, and they say so instead of narrowing:
  • The figure strip and the two cost cards dim under an answer filter: spend and sessions are not joined to answers yet.
  • A question card that cannot be split by the AI tool or repository filter says to clear the filter to read it.
  • The flagged-skills table dims under any filter: flagged skill use is not split by AI tool, repository or answer.
  • The Spend on dropped work estimate drops out under an answer filter: spend is not joined to answers.

Troubleshooting

  • A card says The scoring run failed. Select Run again to run the report again.
  • A card reports You don’t have permission to create or run scorers in this workspace. — scoring that question needs that permission; ask someone who has it.
  • The filter bar shows Couldn’t load AI tools or Couldn’t load repositories — the list of options could not be read; reload the page to try again.
  • No coding-agent session to score in the last 30 days. — the sample found no coding sessions in the window. Check that your coding tools trace their sessions; see Send and verify traces.
  • Couldn’t read the shared sample of sessions. Run again. — the run’s sample could not be read. Select Run again.

Next steps