Skip to content

Accuracy contract

Every figure in the UI carries one of four badges, and nothing is invented.

Badge Meaning
Actual Read straight out of your transcripts: token counts, timestamps, models, effort, tool calls, file paths, session and project identity.
Estimated Derived. Every dollar figure is estimated, because Claude Code transcripts contain token counts but no billed amount. Cost is tokens × the price table in config/pricing.json.
Forecast Projected from your history, assuming the recent pattern continues.
Recommendation Based on an observed share of your spend. No estimated saving is attached.

The following aren’t in Claude Code transcripts, so the dashboard shows “Unavailable from connected Claude data” instead of guessing:

  • Plan tier, allowance and remaining credits
  • Message and request allowances
  • Billed invoice amounts
  • Assistant response text (only usage metadata is extracted)
  • Lines changed, commits, pull requests, bugs fixed

You can declare several of these yourself in configuration. Once you do, the usage-vs-limit and days-until-limit projections appear, labelled as your own figures.

  • billable_tokens: input + output + cache read + cache write. Agentic coding is dominated by cache reads, so this number is large by nature.
  • context_tokens: input + cache read + cache write, i.e. the prompt side of one request.
  • latency: the gap to the preceding message. Gaps over 15 minutes count as idle time and are discarded.
  • Uncached counterfactual: what the same tokens would have cost with no cache at all. It’s shown for context and labelled “not a saving”.
  • Prompt categories: assigned by keyword rules that you can inspect. Each prompt records the terms it matched and a confidence score. Short steering turns that match no rule (“do that”, “fix all”) are follow-up.
  • Days: your local calendar days. Claude Code stamps transcripts in UTC; finops converts them. Billed vs local is the exception: it compares on UTC days, as the vendors report them.