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

# Per-queue analytics drilldown console

> Read the dedicated per-queue analytics page — live queue state, SLA/AHT/ASA KPIs, volume trend, heatmap, agent leaderboard, hangup-party and per-skill breakdowns — from first open to CSV-ready insight.

# Per-queue analytics drilldown console

Every queue in **Voice → Queues** carries its own analytics page. The list view at `/voice/queues` shows one summary row per queue — offered, answered, service level, abandon across every queue at once. The drilldown — `/voice/queues/{queueId}/analytics` — is where a supervisor reads *one* queue in full: live state pushed over a stream, the summary KPI strip, a volume-and-SLA trend, a day-by-hour heatmap, a per-agent leaderboard, and two breakdowns (who hung up, and how each skill performs).

Open it from the queues list by selecting a queue row's analytics action, or navigate directly to the route above.

## 1. What the page aggregates

The page reads one queue end to end. The live section streams six counters over Server-Sent Events: agents logged in, agents available, agents on call, agents in wrap-up, calls waiting, and the longest current wait. Everything below the live section is historical, aggregated over the window you pick (1, 7, or 30 days) and bucketed (30 minutes, 1 hour, or 1 day):

| Aggregate                            | Where it shows                                                       | How to read it                                                                          |
| ------------------------------------ | -------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
| Queue ingress                        | Offered calls in the KPI strip and in the per-skill table            | Calls the queue received in the window                                                  |
| Offers vs answers                    | The time-series chart (bars + SLA% line)                             | Offered vs answered per bucket; the line is service level                               |
| AHT                                  | KPI strip, leaderboard, skill table                                  | Talk + hold + wrap, divided by answered calls — pre-answer queue wait is *not* included |
| ASA                                  | KPI strip and skill table                                            | Average Speed of Answer — how long callers waited before pickup, on average             |
| First-contact resolution (FCR) proxy | CSAT/NPS columns in the leaderboard alongside handled count and AHT  | High handled count with low CSAT/NPS trends is your regression signal                   |
| Occupancy                            | Live tiles (logged in, available, on call, in wrap)                  | Staffing posture right now — not a historical metric                                    |
| Abandon vs SLA bucket                | KPI strip (abandon %), the SLA% line, and skill-table abandon column | The KPI strip colors abandon over 10% red and SLA at 80%+ green                         |

<Note>
  AHT on this page deliberately excludes the time a caller spends waiting in queue before an agent answers. That matches how Five9, Genesys, and NICE CXone define the metric, so a supervisor comparing Orbit's number to a prior vendor's wallboard is comparing the same thing. The AHT tile carries a (?) definition on hover and keyboard focus.
</Note>

Summary numbers are volume-weighted on the server, so the KPI strip agrees with the cross-queue comparison and the list view — a 1-call bucket never skews a 30-day average.

## 2. Reading the tiles, in order

Read top to bottom; each section answers a narrower question than the one above:

1. **Live tiles** — four cards (available agents, on call, calls in queue, longest wait) beneath a connection status line. **Live** means the stream is connected; **Reconnecting** means it is re-establishing. Under 5 waiting reads normal; over 5 highlights. Over 2 minutes of longest wait flags. If the stream cannot connect, the section renders an error card with a retry — the historical sections below still load.
2. **Summary KPI strip** — five aggregate tiles for the selected window: service level, AHT, ASA, abandon %, and total offered. SLA at 80% or higher renders green, abandon above 10% red.
3. **Time-series chart** — offered vs answered bars (left axis) overlaid with the service-level line (right axis, 0–100%) across buckets. An empty window renders an explicit empty state rather than a flat chart.
4. **Heatmap** — day-of-week × hour grid of offered volume. Use it for staffing: the hour-row you shade agents for is the hour the grid shows dark.
5. **Agent leaderboard** — ranked per agent: calls handled, AHT, average CSAT, average NPS. The first 50 rows mount; **Load more** pages the rest.
6. **Hangup-party breakdown** — who ended calls: caller, agent, system, carrier, or unknown, as share bars. Caller-hung-up share rising alongside abandon % points to wait-time pressure, not agent behavior.
7. **Per-skill breakdown** — offered, service level, AHT, ASA, abandon per skill tag on the queue. Same coloring rules as the KPIs. **Load more** pages long skill lists.

Every section handles its own loading, error, and empty states inline, so one failing query never blanks the whole page.

## 3. Comparing across time

Two selectors in the page header shape every historical section at once:

* **Window** — 1 day, 7 days, or 30 days ending now.
* **Bucket** — the time granularity of the trend chart: 30 minutes, 1 hour, or 1 day.

The workflow that gets comparison out of these two controls:

1. Set **Window: 30 days** with **Bucket: 1 day** — this is the monthly baseline. Note the SLA line's average and where it dips.
2. Drop to **Window: 7 days** with **Bucket: 1 hour** — zoom into the trough you found in step 1. Same metrics, finer grain.
3. For intraday diagnosis, **Window: 1 day** with **Bucket: 30 minutes** lines a bad stretch up with the heatmap's busy cells — that pairing answers "did staffing match the load."

A queue-level SLA dip then localizes to one skill in the per-skill table without leaving the page, and to one agent group in the leaderboard.

## 4. Export to CSV

The KPI strip and tables answer questions inside the dashboard. When the numbers leave the dashboard — a weekly staffing review, a slide, or a spreadsheet — work in the window you already verified on screen:

1. Set the window and bucket you intend to export.
2. Copy the KPI strip (five numbers, volume-weighted) directly — paste into a slide as the headline.
3. For the leaderboards and skill tables, the rendered columns (agent handled / AHT / CSAT / NPS; skill offered / SL / AHT / ASA / abandon) copy cleanly into a CSV spreadsheet — select the table, copy, and use paste-with-formatting. Long tables export the whole set: click **Load more** until no button remains, then copy.

For programmatic export, the same rollups are served by the per-queue analytics API under `/api/v1/voice/queues/{id}/analytics` — pull the window server-side and write it out exactly as displayed, with the same volume-weighted totals.

## 5. Link out — scorecard and wallboard

The drilldown is one of three queue-observability surfaces; use each for its job:

* **Per-agent scorecard** — when the leaderboard flags one agent (handled count far below peers, AHT out of family, CSAT/NPS dropping on normal volume), open that agent's scorecard for the coaching view. Covered in [Agent scorecard](/guides/agent-scorecard).
* **Wallboard** — the drilldown's live tiles answer "right now" for one queue; the wallboard keeps *all* queues' real-time SLA up on a screen without interaction. When the live tiles show sustained pressure across several queues, move to the wallboard and its alarm rules rather than refreshing drilldowns. Covered in [Wallboard](/guides/wallboard) and [Wallboard alarm rules](/guides/wallboard-alarm-rules).

## 6. How this page relates to Voice → Queues

Pick the surface by scope:

* **`/voice/queues` (the list)** — all queues at once, one summary row each, for "which queue hurts." See [Voice queues](/guides/voice-queues).
* **`/voice/queues/{id}/analytics` (this page)** — one queue in depth, for "why does this queue hurt and where."

The summary metrics are computed from the same volume-weighted rollup as the list view, so a queue whose list row shows SLA 74% and abandon 12% shows exactly those values on this page's KPI strip for the same window. The queues list is the triage surface; this drilldown is the diagnosis surface.

## 7. Screenshot sequence

Capture the page for a review in this order — each shot stands alone and the set tells one story:

1. **Header + live tiles** — includes the window/bucket selectors (so every later shot is dated) and the four live counters.
2. **KPI strip** — the five aggregate numbers, with the AHT definition tooltip visible.
3. **Time-series chart** — hover the worst bucket so the tooltip shows offered, answered, and SLA% for that interval.
4. **Heatmap** — full grid; mark the cells you actually staff.
5. **Leaderboard, top rows** — truncate politely (top 10), or name the agent in closed session.
6. **Hangup breakdown + skill table** — pair them; caller-share plus one bad skill row is the actionable cell.

## See also

* [Voice queues](/guides/voice-queues) — the list view and queue management this page drills into
* [Queue SLA forecast-callback runbook](/guides/queue-sla-callback-runbook) — set the SLA target the drilldown measures you against, and wire the breach response
* [Per-queue SLA escalation policies](/voice/queue-sla-escalation-policies) — the objective per queue
* [SLA breach forecast + callbacks](/voice/sla-breach-forecast-callbacks) — act before the line breaks
* [Wallboard](/guides/wallboard) — the real-time fleet view when one-drilldown-at-a-time stops scaling
* [Agent scorecard](/guides/agent-scorecard) — the follow-up surface after the leaderboard flags an agent
