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
- Select Reports in the app rail, then AI ROI report.
- Choose the workspace scope and period in the header. The filter bar repeats the date range read-only; the header sets it.
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.
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
- Investigate agent cost: Follow a spend increase through tokens, cache use, and model rates.
- Compare agent usage: Where agent and test-run spend lives, and how agents compare.
- How skill security scans work: What the flagged-skills table summarizes.