Skip to main content
The Analytics page (route /analytics) answers one question: where your tokens went. It breaks the workspace’s memory operations down by dataset, access channel, action, and agent, and every breakdown row links through to the operations behind it on Activity. Tokens are what the workspace actually recorded; cost is estimated from the gateway rate. Open it from View breakdown → on the Overview’s Cost Savings panel, which passes its current range through.
Analytics is a Cognee Cloud feature, and was called Cost Breakdown before the September 2026 release. In the local, open-source UI the route renders a notice instead of the breakdown — see Local UI.

Time range

A segmented control in the header scopes the whole page: Beside it, a last updated readout, a Refresh button, and Export CSV, which writes every breakdown bucket shown, in the order shown.

Headline figures

Three figures lead the page:
  • Tokens — routed through memory over the range.
  • Estimated cost — at the gateway rate.
  • Operations — its hint reads recalls, writes and pipeline runs, replaced by plus 412 nested inside them when there is nested work.
A dash means not measured, which is not the same as zero: when no token usage was recorded for the operations in range, both Tokens and Estimated cost read and their tooltips say No token usage was recorded for these operations. A measured zero renders as 0. Under the figures, measurement caveats spell out what the numbers do not cover. The token-data caveat appears only when nothing in range was measured (None of these 412 operations report token usage, so no total can be given); a breakdown bucket that is only partly measured is flagged with an asterisk and a footnote saying the figure is a floor. Rows with no usable date are reported separately.

Trend

A Tokens over time panel — with a lighter per hour / per day / per week beside the heading — plots the range as bars on local calendar boundaries, so the busiest day does not move depending on when you look. 24h buckets by hour, 7d and 30d by day, and All takes the finest unit that fits in 30 bars, stepping up through hour, day, week, month, and year. The final bar is always the period the clock is currently inside. It is drawn with a diagonal hatch and reads (so far) on hover, because it is not comparable with the completed bars beside it. The same data is available to screen readers as a table with Period, Tokens, and Operations columns.

Breakdowns

Four tables split the same totals four ways: Each row carries the bucket name, its Share, Tokens, Est. cost, and Ops. The share percentage is the bucket’s slice of the page total (shown as <0.1% below a tenth of a percent), while the bar beside it is scaled to the largest bucket in that table — so the bars compare rows within a table, and the percentages compare across the page. Rows are ordered by tokens, and each table shows only the eight largest buckets with a Show all 23 / Show fewer control underneath. Clicking a row opens Activity filtered to that bucket. Two exceptions to that link:
  • Under By access channel, operations that record no channel are grouped as unattributed. Activity has no filter option for “absent”, so this one bucket does not link anywhere.
  • A dimension whose names have not resolved yet is dropped rather than shown, since its links would select nothing.

Notices and empty state

Notices sit above the figures rather than replacing them: a failed refetch leaves the previous numbers on screen with a warning, instead of blanking figures you were reading. Each notice says only what it knows — a load error, a sessions-only failure, or a feed capped at one page (in which case the breakdowns describe the newest slice, not the whole history). When nothing failed and there is genuinely nothing to show, the page reads No memory operations recorded in the last 7 days. Try a wider range. — or, on All, Connect an agent and its recall and ingestion will show up here.