Measuring agent idle time on Messaging
When chat volume dips, agents can be clocked in on the Messaging channel without a single conversation to handle. That gap is idle time, and Qvasa now tracks it as first-class data — per agent, over any date range, plus a live view of who is idle right now. This is the view vendors and team leads use to understand how much of paid online time is actually being spent on conversations.
This article explains what messaging idle time means, exactly how Qvasa calculates it, and the metrics you get.
What "messaging idle time" means
An agent is idle on Messaging when they are online on the Messaging channel but not occupied by any messaging conversation — no chat is offered to them and none is active. The moment a conversation is offered or active, they are occupied, not idle.
Two companion measures come with it:
Online time (Messaging) — the total time an agent was clocked in on the Messaging channel. This is the denominator.
Idle rate (Messaging) — idle time as a percentage of online time, so you can compare agents and teams fairly regardless of shift length.
How Qvasa calculates it
Idle time is real interval math, not a simple counter. For each stretch of time an agent is online on Messaging, Qvasa:
takes every messaging conversation the agent was occupied by that overlaps that online stretch — including conversations that started before it or ended after it;
clamps each one to the boundaries of the online stretch;
merges any overlapping conversations into a single busy timeline, so time spent handling two chats at once is only counted once;
subtracts that busy time from the length of the online stretch. Whatever is left over is idle time.
In short: idle = time online on Messaging − time occupied by at least one conversation. Because overlapping conversations are counted once and the result is floored at zero, idle can never exceed online time or go negative.
The idle rate is calculated across the whole date range as total idle time ÷ total online time — a sum-over-sum, never an average of per-stretch percentages. That means a full shift carries far more weight than a few-second reconnect, and the number you see is the true share of online time spent idle.
Live "right now" vs. historical
There are two ways to look at idle, and they are computed differently on purpose:
Historical metrics (totals, rates, and over-time charts) sum up completed and in-progress online stretches across the date range you choose — the range-based view for analysis and reporting.
Live — the Live Messaging Idle Time by Agent donut shows only agents who are online on Messaging with no conversation attached right now, and for each one, how long they have been idle (measured from the moment they last finished a conversation, or since they came online if they haven't handled one yet). Agents currently handling a conversation don't appear. This live view is computed fresh from what's happening this second, so it's always current — even for the agents who have been idle the longest.
The metrics you get
Idle, online, and idle-rate are available across every dashboard surface, so you can drop them into quick stats, charts, and tables.
Agents table columns — the fastest way to see idle per agent for a vendor or team. Add these columns to any Agents Table widget:
Idle Time (Msg) — total idle time in the date range.
Online Time (Msg) — total messaging online time (the denominator).
Idle % (Msg) — idle as a share of online time.
Quick stats — account- or team-level headline numbers: Total Messaging Idle Time, Total Messaging Online Time, and Messaging Idle Rate.
By-agent donut charts — the same three measures broken out per agent, each with a drill-in to the underlying agents. Use Total Messaging Idle Time by Agent to rank who is sitting idle the most.
Over-time charts — idle time, online time, and idle rate plotted across the day or week (basic charts), and per agent over time (multi-data charts), so you can see idle rising or falling as volume changes.
Live donut — Live Messaging Idle Time by Agent for real-time monitoring of who is idle right now.
Before you start
These metrics rely on Qvasa's agent-status and messaging-work-item tracking:
The idle, idle rate, and live idle metrics require messaging work-item processing to be enabled on your account — that's Qvasa ingesting your Zendesk agent-status changes and tracking which conversations each agent is occupied by. This is switched on by the Qvasa team.
The Online Time (Msg) metric only needs agent-status tracking enabled.
If the idle columns or widgets don't appear when you go to add them, reach out to the Qvasa team to confirm messaging work-item tracking is enabled for your account.
Good to know
Idle tracking is go-forward only. Idle is measured from when the feature was turned on for your account and cannot be backfilled. Online stretches from before that point still count their online time, but their idle shows as zero because it was never measured — so for date ranges that reach back before launch, idle totals and rates read low. Recent and current data is fully accurate.
Overlap is counted once. An agent handling three chats at once is simply "occupied" for that time — idle is about having nothing to do, not about capacity. To measure how heavily loaded agents are, use the messaging capacity and occupancy metrics instead.
Idle isn't necessarily bad. Some idle is healthy headroom for volume spikes. The idle rate is most useful as a trend and a comparison across agents and vendors, not as a single pass/fail number — an agent at 0% idle is overloaded, not ideal.
Live idle is Messaging-only. The live donut measures the Messaging channel specifically, so it can legitimately differ from the combined Availability & Status column, which spans Talk and Messaging together.
