Skip to content

Usage Dashboard

The Usage Dashboard gives admin users a real-time view of the organisation’s current billing-period consumption. It is available at Admin → Usage in the portal.


The dashboard renders four independent sections. All four data requests fire in parallel on page load. A failure in one section does not block the others — each section handles its own error state with an inline retry button.

SectionSourceDescription
Current Period SummaryGET /api/admin/usage/summaryRequest count vs plan limit, token totals, cost
Daily Request TrendGET /api/admin/usage/history?granularity=daily&limit=3030-day sparkline of request counts
Model BreakdownGET /api/admin/usage/by-model?granularity=monthlyPer-model request counts and cost
Alert HistoryGET /api/admin/usage/alerts?limit=20&offset=0Recent threshold-crossing events

The summary card shows a colour-coded progress bar for the current billing period.

ColourThresholdMeaning
Green< 80%Normal usage
Amber80–94%Approaching limit — warning active
Red≥ 95%Critical — throttle active

The fill level is capped at 100% for display purposes even if percentage_used exceeds 100.

The card also shows:

  • Requests — current count vs plan limit (e.g. 834,200 requests / limit: 1,000,000)
  • Input Tokens — total input tokens consumed this period
  • Output Tokens — total output tokens consumed this period
  • Est. Cost — estimated USD cost, formatted to 4 decimal places (e.g. $47.8300)

The plan tier badge (e.g. ENTERPRISE_SAAS) is displayed next to the billing period dates.

The warning_level field from the API drives the colour of the percentage label in the top-right corner:

warning_levelLabel colour
noneGreen
warning_80Amber
warning_95Red

The sparkline shows the last 30 days of daily request counts. It is a native SVG <polyline> — no external charting library is required.

  • X-axis: dates across the period (first, middle, last labels shown)
  • Y-axis: request count, normalised to the min/max range of the visible data
  • Dots: data point markers (radius 3 for ≤ 14 days; radius 2 for longer windows)
  • Baseline: a faint horizontal line at the zero position

Tooltip titles on each dot show the date and request count:

Mar 7: 38,400 requests

The footer line shows the number of days plotted and the peak requests-per-day value.


The model breakdown shows the top 10 models by request count for the current month. Each row includes:

  • Model ID (truncated with title tooltip if long)
  • Request count — e.g. 450,000 req
  • Estimated cost — e.g. $29.4000
  • Mini bar — proportional width relative to the top model’s count

Models are sorted by request count descending (highest-volume model first).


The alert history uses DataTableV2 to display the most recent 20 usage threshold alerts. Each row shows:

ColumnDescription
ThresholdPercentage threshold that triggered the alert (e.g. 80%)
At TriggerActual usage percentage when the alert fired, colour-coded (green / amber / red)
RequestsAbsolute request count at trigger time
TriggeredDate and time the alert fired
WebhookDelivery status badge — Delivered (green) or Pending (grey)

A Pending webhook status means the webhook was not successfully delivered at alert time. See the usage metering guide for details on webhook retry behaviour.

An empty table means no usage alerts have been triggered for the organisation yet.


Each section independently shows a skeleton placeholder while its data loads. If a request fails:

  1. The section displays the error message from the API detail field.
  2. A Retry button re-fires just that section’s request.

Refreshing the whole page reloads all four sections in parallel.