Skip to main content

Reading the dashboard

Costpilot answers one question: what does AI-assisted work on a feature cost? Everything on the dashboard is cost, rolled up by a dimension, for a date range. This page explains how to read it without knowing the telemetry underneath.

Pick a date range​

The range picker offers Today, 7, 30 and 90 days, This month, Last month, All time and a custom range. Every number on the page follows it, and the deltas compare against the previous period of the same length.

Dates are the dates the cost occurred, in UTC, not when an issue was created or closed. An issue that was worked on in two months shows up in both with the respective share.

The hero band​

FigureMeaning
SpendTotal cost in USD. Claude Code's own reported cost where available, otherwise priced from tokens
Issues touchedDistinct issues with at least one model call in the range
Ø cost per issueSpend divided by issues touched
TurnsPrompts people sent, each with the model calls until the next prompt, plus one turn per pipeline-agent run. Shown with Ø cost per turn in place of the issue figures once the scope is a single issue
Ø cost per turnSpend inside turns divided by turns

The chart under the figures is the cost per day, or per hour for ranges up to two days. In a drilldown it becomes the trend of the selected scope, or a stacked chart by the group-by dimension.

Tokens are not comparable across tools, providers or models because tokenizers and prices differ. USD is the authoritative, comparable figure.

Dimensions and drilldown​

Seven tiles break the cost down: Project, Issue, Actor, Provider, Model, Source (which tool emitted the telemetry) and Repository. Actor type separates humans from agents. Click any value to drill down. The breadcrumb shows the active filters; filters combine, so "project PLAT, actor Alice" is one click away.

  • Project comes from the issue key when it matches a project's pattern, else from the repository. "No project" means neither matched; see Projects.
  • Issue carries the key and, if your tracker is mirrored, the title. "No issue" collects calls on branches without an issue key; the branch name is still available as the branch dimension.
  • Actor is a person at a coding tool or a named pipeline agent. An actor's drilldown shows a KPI strip, the active period, and a weekday × hour punchcard of calls. An agent's drilldown shows runs and cost per run. "No actor" is usage with neither a user nor an agent name.

The Analysis tab​

The Analysis tab compares issues inside a project, or across all projects: by cost, by turns, or by cost per turn. A distribution shows where the median sits and which issues are outliers, and a scatter plots every issue. You can compare two groups, for example two squads' projects, within the same date range. Groups under 30 issues carry a note that differences may be chance.

By default (whole) an issue counts everything ever recorded for it, so that an issue that started before the range is not cut in half; range counts only the selected range.

Tool usage card​

Calls, errors and average duration of the coding tools' tool calls (Claude Code, Gemini CLI, Codex CLI) and MCP servers. It shows how often tools were used, never what they cost: the telemetry cannot split tokens by tool. See What telemetry can tell you.

What is deliberately missing​

  • Lines of code are collected but not shown. They reward the wrong thing.
  • Active time is collected but not shown as a KPI either. It is a tool-side measure that includes waits on the human; the turn is the unit the dashboard works with.
  • Cost per prompt is not shown; the atomic unit is the model call, and the turn is the unit of developer interaction.
  • Issues without any AI usage never appear. The absence of tokens cannot be distinguished from "no AI work" and "work without AI".