Open-status metrics on ticket assignment sessions: live, historical, and by agent
When a ticket is assigned to an agent and sits in an Open status, that agent owns it. Qvasa records every one of those ownership stretches as an assignment session and stamps it with a set of timestamps: when the assignment started and ended, when the ticket entered and left Open inside it, when the agent replied, and which channel the ticket was on. From those timestamps Qvasa builds two families of metrics: live metrics that show what every agent is doing on their assigned tickets right now, and historical metrics that show how sessions went over a date range.
This guide is the full catalog. It lists every metric in both families, explains which timestamps feed each one, and shows how to get each number at the top level (quick stats and basic charts) and per agent (agents table columns, donut charts and multi data charts).
What an assignment session is
An assignment session is one continuous stretch during which one agent was assigned to one ticket. If a ticket is passed from Alice to David and later back to Alice, that is three sessions. Every session counts on its own, so the same agent assigned to the same ticket three times is three data points. This is what makes these metrics per agent rather than per ticket: a ticket worked by two agents contributes one session to each of them, with only the Open time and replies that happened on that agent's watch.
Inside a session, Qvasa separates the time the ticket actually spent in an Open status from time it spent Pending, On-hold or Solved. Waiting on the customer never inflates an agent's number. If your account uses custom ticket statuses, the widgets use your own name for the Open status category.
The timestamps recorded on every session
Each session carries the following fields. The metrics below are all arithmetic over these, so knowing them tells you exactly what any number means.
Field | What it records | When it is written |
Assignment started at / ended at | When the agent was assigned and when they were unassigned or the ticket closed. A running session has no end time. | On every assignment change, in real time. |
Channel | The Zendesk channel the ticket was on when the session started: Email (Zendesk's Support channel: email, web form and API), Messaging (chat is folded into Messaging) or Talk. | At session start; corrected if the ticket's channel history is later revised. |
Time in Open status | Total time the ticket spent in an Open status during the session, summed over completed Open stints. | Each time an Open stint closes. |
Open-status count | How many separate times the ticket entered an Open status during the session. A ticket that went Open once and stayed there is 1. | On every ticket status change. |
First Open stint started / ended | The bounds of the first Open stretch inside the session. | On every ticket status change. |
Last Open stint started / ended | The bounds of the most recent Open stretch inside the session. A stint that is still running has no end time, which is what the live metrics key on. | On every ticket status change. |
Public agent comment count, first / last public agent comment at | Public replies the agent sent while they held the ticket, and when the first and last one landed. A reply sent after a handoff belongs to nobody's session. | When comments sync, on accounts that track ticket comment records. |
Public end-user comment count, first / last public end-user comment at | Public customer comments that arrived during the session, credited to whichever agent's session was live at the time. | When comments sync, on accounts that track ticket comment records. |
One thing to know about history. The Open-stint, comment and channel fields have been recorded since 2 September 2026, and only for tickets that have had activity since then. Nothing is backfilled. A ticket that has sat untouched since before that date joins these metrics the moment anything happens on it (a reply, a status change, a reassignment), so the gap closes on its own. The account-wide session counts and durations are older and always show the complete picture.
Live: what agents are doing on their tickets right now
The live metrics look at one population: sessions that are still running, whose ticket is in an Open status right now, on a given channel. Every live widget measures that same set, so a quick stat and an agents table column built on it can never disagree.
There are two clocks, because there are two questions. The assignment clock runs from the moment the agent was assigned: it answers "how long has this agent been handling this ticket?" The Open clock runs from the moment the ticket last entered Open, which can be well before the agent picked it up: it answers "how long has this ticket been sitting in Open, and who is holding it?" If a ticket went Open at 09:00, was assigned to an agent at 09:40, and it is now 10:00, the assignment clock reads 20 minutes and the Open clock reads 60 minutes. Both clocks stop the instant the ticket leaves Open or the agent is unassigned.
Top level: live quick stats
Quick stat | What it counts | Clock / timestamps |
Agents on Open Email Tickets (Live), Agents on Open Messaging Tickets (Live), Agents on Open Talk Tickets (Live) | How many distinct agents are right now holding at least one ticket on that channel that is in Open, with their assignment still active. Each agent is measured by their single longest-running such assignment. Two optional thresholds, at least X (mins) and under X (mins), turn the count into a bucket; leave either at 0 to switch it off. | Assignment clock: now minus assignment started at. Drill-ins list the counted agents and each agent's longest-running open ticket. |
Open Assignment Sessions | The number of assignment sessions running right now, in any ticket status: the current queue height of active assignments. | Assignment started at with no ended at. |
Active Assignment Sessions | Sessions that started inside the selected date range and are still running. Use the ticket status filter to narrow to Open. The Agents drill-in is a live workload list. | Assignment started at inside the range, no ended at. |
The threshold pair is what turns the channel quick stat into a live board. Build one quick stat per bucket, for example under 5 minutes, 5 to 10 minutes and 10 minutes or more, and the bucket shows in each widget's title:
By agent: live columns in the agents table
Every column below is also available as a standalone donut chart. Clicking a cell opens the ticket the value was measured on.
Column | What it shows per agent | Clock / timestamps |
Email Longest Current Assignment (Live), Messaging Longest Current Assignment (Live), Talk Longest Current Assignment (Live) | How long the agent's longest-running current assignment on that channel has been running, for tickets currently in Open. An agent on several such tickets is measured by the longest. The date range does not limit which assignments count, so a ticket picked up days ago still shows. | Assignment clock: now minus assignment started at. |
Email Longest Time in Open Status (Live), Messaging Longest Time in Open Status (Live), Talk Longest Time in Open Status (Live) | The longest time any ticket the agent currently holds on that channel has been sitting in Open, including time before the agent was assigned. Built for team-manager views: which of my agents is sitting on the ticket that has been open longest? | Open clock: now minus last Open stint started at. |
Active Open Assignments | How many of the agent's running sessions, started inside the date range, are on a ticket currently in Open. | Assignment started at in range, no ended at, ticket currently Open. |
Active Open Messaging Assignments | The same count narrowed to messaging tickets (tickets attached to a Sunshine conversation). | As above. |
Email Tickets Open (Live) | Email tickets the agent is holding open right now, the email arm of the live per-channel workload trio next to the Talk and Messaging occupied-slot columns. | Running sessions started in range on currently-Open Support-channel tickets. |
Active Sessions | Running sessions the agent started inside the date range, in any ticket status. | Assignment started at in range, no ended at. |
Longest Open Assignment, Longest Time in Open Status | The account-wide versions of the two channel clocks above, limited to assignments that started inside the date range. | Assignment clock and Open clock respectively. |
Here both clocks sit side by side. Maya has held her ticket for under two hours, but that ticket has been in Open for over three hours; Ava picked hers up about ten minutes ago on a ticket that had already been in Open for nearly an hour. Sort by either column to put the agent who needs help at the top:
For the same agent the two columns can legitimately point at different tickets, because each one drills into the ticket its own clock was measured on.
Auditing sessions one by one: the Assignment Sessions table
The Assignment Sessions configurable table lists individual sessions, one row per agent-ticket stretch: ID, Assignment Started At, Status (open or closed), Duration (still counting up for open sessions), Time In Open Status, Agent Name, Agent Email, Assignment Ended At and a View in Qvasa link. It is the fastest way to check what a live column is pointing at. Time In Open Status sums completed Open stints, so a session whose ticket is in Open right now reads 0s until that stint closes.
Historical: how sessions went over a date range
Historical metrics look at sessions that ended inside the selected date range. A session that started in June and ended in July counts in July; sessions still running are not counted until they finish. The Open-status metrics additionally include only sessions where the ticket spent some time in an Open status under that agent. Every duration comes in an average and a median; use the median when a handful of very long sessions drag the average around.
Top level: quick stats and basic charts
Metric | What it measures | Timestamps used |
Assignment Sessions Started, Assignment Sessions Finished | How many sessions started, or ended, in the range. | Assignment started at, assignment ended at. |
Average / Median Assignment Session Duration | Elapsed ownership per session regardless of ticket status. | Assignment ended at minus assignment started at. |
Average / Median Assignment Session Open-Status Duration | The time the ticket spent in Open during each session: the closest thing to a true per-agent handle time. Also available as an over-time basic chart in your chosen time unit. | Time in Open status. |
Email / Messaging / Talk Average and Median Assignment Session Open-Status Duration | The same handle time pinned to one channel, each with its own over-time chart. See Agent handle time by channel with assignment session open-status duration for the full walkthrough. | Time in Open status, channel. |
Open Assignment Sessions Over Time | Queue height of running sessions at the end of each time bucket, reconstructed from session start and end times. This is the historical counterpart of the live Open Assignment Sessions quick stat. | Assignment started at, assignment ended at. |
Over-time charts bucket each session into the period its assignment ended in, so the trend and the quick stat always describe the same sessions. Set Time Unit in the widget's configuration to pick the duration unit on the y-axis.
By agent: donut charts, agents table columns and multi data charts
Each historical metric above has a by-agent donut that doubles as an agents table column: Sessions Started, Sessions Finished, Avg Session Duration, Median Session Duration, Avg Open-Status Session Duration, Median Open-Status Session Duration, and the channel-pinned Email / Messaging / Talk Avg and Median Open-Status Session Duration columns. The Open-status durations also come as multi data charts by agent over time, one line per agent, so you can see an individual's trend rather than just their standing.
Email activity inside the Open time
Handle time on its own cannot tell you whether a long Open stretch was busy or idle. This family combines the Open-stint timestamps with the comment timestamps to describe the shape of an email agent's Open time: how much work happened inside it, how fragmented it was, and how much of it was dead time before the first reply and after the last one. It is available for the Email channel on accounts that track ticket comment records. Every metric comes as an average and a median, and each has the same four surfaces: a quick stat with Tickets and Agents drill-ins, an over-time basic chart, a by-agent donut that is also an agents table column, and a by-agent multi data chart over time.
Agents table column (Avg shown; Median twin exists) | What it measures per session | Timestamps used |
Email Avg Agent Comments / Session | Public replies the agent sent during the session. Sessions where nobody replied count as zero. | Public agent comment count. |
Email Avg End User Comments / Session | Public customer comments that arrived during the session. | Public end-user comment count. |
Email Avg Agent Comments / Open Hr | The agent's replies divided by the hours the ticket was in Open during that session, averaged across sessions (one reply in a 30-minute Open stretch is 2.0 per hour). Sessions with less Open time than the configured minimum (default 5 minutes, shown in the widget title) are left out so a session that was Open for seconds cannot dominate. | Public agent comment count, time in Open status. |
Email Avg End User Comments / Open Hr | The same rate for customer comments. | Public end-user comment count, time in Open status. |
Email Avg Open-Status Count / Session | How many separate times the ticket entered Open during the session: how fragmented the agent's Open time was. | Open-status count. |
Email Avg Open Stint Duration | The length of each individual Open stretch: the session's Open time divided by its Open-status count. A session that went Open three times for 30 minutes in total contributes 10 minutes. | Time in Open status, Open-status count. |
Email Avg Session Start to First Agent Reply | Time from the agent being assigned to their first public reply in that session. | Assignment started at, first public agent comment at. |
Email Avg Open Start to First Agent Reply | Time from the ticket first entering Open during the session to the agent's first public reply. | First Open stint started at, first public agent comment at. |
Email Avg Last Agent Reply to Open End | Open time the ticket sat on after the agent had already sent their last reply: the "replied and then held it" gap. | Last public agent comment at, last Open stint ended at. |
The three timing metrics only use sessions where the sequence makes sense. A session where the agent never replied, or where the reply landed before the assignment or before the ticket first went Open, is dropped rather than counted as zero. The last-reply gap also drops sessions whose final Open stint had not ended yet.
Related metrics that measure something different
Avg / Median Public Agent Comment Count Per Ticket Assignment counts replies per agent assignment from the ticket assignment record rather than the session timeline, scoped by when the assignment started, with a configurable minimum number of replies (default 1). Its per-session cousins are the Email Avg Agent Comments / Session widgets above.
Avg Time In Open Status By Agent and the other time-in-status metrics measure a ticket's status durations, not assignment sessions.
Avg Session Open Time by Zendesk user field, and the Avg Assignment Session Open-Status Duration (mins) user field by skill metric matrix, slice the same session Open time by an agent dropdown field (hub, site, BPO) and by agent skill, for accounts that sync user fields.
Adding the widgets to a dashboard
Edit a dashboard, click Add Widget, pick the widget type, then find the metric in its section:
Quick stat → Ticket Assignment Metrics (every session quick stat, live and historical)
Basic chart → Ticket Management (the over-time charts)
Donut chart → Granular Assignment Session Metrics for the historical by-agent cuts; Agent Metrics for the live channel columns and Email Tickets Open (Live)
Multi data chart → Agent Metrics (the by-agent over-time lines)
Configurable table → Agent Metrics for the Agents table; Ticket Management for the Assignment Sessions table
Or type into the search box at the top of the list: "assignment session", "open status", "longest" and "live" all find the families. To add columns to an Agents table, open the dashboard in Edit mode, click the widget's Configure Columns icon and search the column list the same way. The widget picker's description panel states for every metric whether it is live or historical and which sessions it includes.
Two configuration options appear across the family. Ticket Status Names renames the statuses in titles to your own status vocabulary; it is not a filter. Time Unit sets the duration unit on the over-time charts.
Troubleshooting
"No Talk (talk) Zendesk channel found for this account." Your account has never had a ticket on that channel, so there is nothing to pin the metric to. On the Agents table the same situation renders as a not enabled cell. It starts reporting once the first ticket arrives on that channel.
A live column is blank for an agent you can see holding an Open ticket. The ticket has had no activity since 2 September 2026, when this tracking began. It appears on its next reply, status change or reassignment.
The two live clocks show different numbers, or drill into different tickets, for the same agent. Expected. Longest Current Assignment starts at assignment; Longest Time in Open Status starts when the ticket entered Open, which can be earlier. Each one drills into the ticket it measured.
The three channel cuts don't add up to the account-wide number. Expected on date ranges that reach back before channel stamping began, and whenever a session was on a channel outside Email, Messaging and Talk.
The email activity widgets are missing from the picker, or return an error. They require ticket comment record tracking on your account. Ask your Qvasa representative to enable it.
The number looks lower than your idea of handle time. Open-status durations deliberately exclude Pending and On-hold time. For elapsed ownership regardless of status, use Average Assignment Session Duration.
An agent's average is dominated by one enormous session. Switch to the median variant of the same metric.






