> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cognee.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Analytics in the Cloud UI

> Where your tokens went, broken down by dataset, access channel, action, and agent

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](/cognee-cloud/ui/activity).

Tokens are what the workspace actually recorded; cost is estimated from the gateway rate. Open it from **View breakdown →** on the [Overview](/cognee-cloud/ui/dashboard)'s Cost Savings panel, which passes its current range through.

<Note>
  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](/cognee-cloud/local-ui#cloud-only-pages).
</Note>

## Time range

A segmented control in the header scopes the whole page:

| Range   | Window              |
| ------- | ------------------- |
| **24h** | The last 24 hours   |
| **7d**  | The last 7 days     |
| **30d** | The last 30 days    |
| **All** | All loaded activity |

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:

| Table                 | Groups by                                                                                                                                                      |
| --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **By dataset**        | The dataset each operation was scoped to                                                                                                                       |
| **By access channel** | How the operation reached Cognee                                                                                                                               |
| **By action**         | `recall`, `remember`, `improve`, `forget`, and `unknown` for an operation name this UI has not been taught (see [Activity](/cognee-cloud/ui/activity#columns)) |
| **By agent**          | The actor that ran it                                                                                                                                          |

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](/cognee-cloud/ui/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.*
