Skip to content
Scalpels home

Scalpels is officially launching on October 31, 2026. Special early adopter pricing is available now.

← All documentation

Documentation

Assay

The usage dashboard

Updated

The usage dashboard lives at /assay/dashboard. Every admitted Owner, Admin and Member can open it. It is a single page of plain tables, one per view, with a Usage metric selector at the top that applies to every table that reports usage.

Assay reports usage units, never money. To estimate cost, combine these numbers with your provider's current published prices yourself.

Usage metrics

The selector offers every metric Assay stores. The default is input tokens.

input_tokens, output_tokens, cache_read_input_tokens, cache_write_input_tokens, reasoning_tokens, image_input_tokens, image_output_tokens, audio_seconds, search_units.

A metric only has values when the provider reported it. Assay does not estimate missing metrics.

The tables

Usage Over Time. Daily usage of the selected metric, broken down by app, environment, operation, provider and model.

Usage By Agent. For each agent class: how many runs it had, how many reported the selected metric, the median and 95th-percentile usage per run, and the median number of steps per run.

Usage By Subject. Usage and run count per app and subject. Runs without a subject appear as unknown.

Top Runs. The runs that used the most of the selected metric, counting everything below them in the run tree. Each row shows the app, environment, operation, agent, subject, capture mode, whether content was sampled, the failure-capture state and the run status. People with content access also get a Run tree link on each row.

Reliability. Agent failure rate, failover rate, tool failure rate and the failed-or-lost rate of non-agent operations, broken down by provider and model where it applies. Each row carries the event and observation counts behind the rate.

Latency. Median (p50) and 95th-percentile (p95) durations in milliseconds, by scope (agent, step or operation), provider and model.

Pipeline Health. One block per reporting application. It shows:

  • transport drops and hook drops, the cumulative counts reported by the client;
  • incomplete agent runs, runs that never sent a final record;
  • the share of runs with no subject;
  • runs whose captured content is incomplete;
  • client clock skew, the p50 and p95 gap between when the client sent a batch and when Assay received it.

Use Pipeline Health to confirm a new application is reporting and to spot one that has started dropping telemetry.

Filters and limits

The selector covers the metric. The other filters are query-string parameters on the dashboard or table URLs:

Parameter Applies to Values
metric every usage table one of the metrics above
app Usage Over Time, Pipeline Health an application's subject reference
environment Usage Over Time an environment name
operation Usage Over Time agent, embeddings, image, audio, transcription, reranking, classification
limit Usage By Subject, Top Runs 1 to 100, default 25

For example, /assay/dashboard?metric=output_tokens&app=billing-api&operation=agent.

Downloading a table

Each table is also available on its own, as JSON or CSV, at:

/assay/dashboard/{table}
/assay/dashboard/{table}.csv

where {table} is one of usage-over-time, usage-by-agent, usage-by-subject, top-runs, reliability, latency or pipeline-health. The same query parameters apply. The CSV downloads as assay-{table}.csv.

Run trees

The Run tree link in Top Runs opens /assay/runs/{run}/tree. It returns the run and every run below it as JSON: identifiers and parent links, operation, agent, provider, requested and responded model, subject, capture mode, sampling, failure capture, status and failure class. For runs captured in full mode it also includes the stored content records and messages, which is why the link is shown only to people with content access.

A run that has not sent a final record 30 minutes after Assay first received it is marked incomplete, or failed_or_lost for a non-agent operation. The scheduler checks for these every minute.

The risk guide

The dashboard links to /assay/risk, the full-capture risk and operations guide. It describes exactly what full capture stores, how sampling and failure capture behave, who can read content, the retention and erasure model, queue and MCP egress, and the payload-filter recipes. Everyone who can see the dashboard can read it.