Usage Dashboard

Token spend by source. Cache-aware cost. Timezone-correct charts. The dashboard is only useful if the numbers are trustworthy — so we spent v0.4.0 making it so.

Pinchy usage dashboard — token consumption by source, with cache reads and writes

Tokens Are More Than One Number

Modern model usage isn't just prompt tokens and completion tokens. Caching, plugin calls, vision APIs and background system activity all move the bill in different directions. If the dashboard treats all of that as "tokens used", the cost picture is incomplete.

Pinchy tracks each source separately. So when a company asks "why did this agent cost so much yesterday?" the dashboard has an answer beyond "there were tokens".

💬 Chat

Tokens spent in user conversations. This is what most people intuitively mean by "AI cost", but it's only a slice.

⚙️ System

Background activity: memory updates, summarisation, tool preflights, automated housekeeping. Usually smaller, but easy to ignore if nobody's looking.

🔌 Plugins

Work done by plugins the agent invokes — including vision-API reads inside pinchy-files for PDFs and images, which gets expensive without being obvious.

🗄️ Cache Read / Write

Tracked separately and included in cost estimation. Caching changes the economics; the dashboard reflects that instead of pretending it doesn't exist.

Honest Over Flashy

A dashboard that looks nice but subtly misleads is worse than no dashboard at all. A few choices that sound like presentation logic but aren't:

🕐 Your Timezone, Not UTC

Daily aggregations are grouped by day in your timezone. If "Tuesday" silently meant UTC while you meant Vienna, the chart wouldn't be observability — it'd be astrology.

0️⃣ Zero-Filled Missing Days

Days with no activity render as zero, not as gaps. A flat line reads "the agent was idle", not "the chart is broken".

🔁 Explicit Retry States

When a dashboard API call fails, the UI says so and offers retry. Silent failures train users to mistrust everything else they see.

❓ Unavailable ≠ Zero

Missing cost data is shown as "unavailable", not as $0.00. If we don't know, we say we don't know.

📍 Dots for Single Points

A line chart with one point is just an invisible dot. Pinchy renders it as an actual dot, because one data point is still a data point.

🗑️ Deleted Agents Stay Attributed

If an agent was deleted last week, its past cost doesn't vanish from last month's total. The dashboard marks it as deleted and keeps the history.

How the Numbers Get There

Pinchy runs a usage poller that connects to the underlying OpenClaw runtime and records token consumption with source classification. Plugin usage records are resolved back to the originating session and user. Negative token reports are rejected outright — garbage that would otherwise quietly distort charts.

The result: the dashboard shows what actually happened, under the right identity, with data that makes sense.

Related