Agent occupancy rate is the percentage of an agent's logged-in (available) time that's actually spent handling customer conversations. On a chat team, if an agent is signed in for 8 hours and spends 5.5 of those hours in active chats, occupancy is 68.75%. Unlike utilization, which counts scheduled hours against a shift, occupancy zooms in on live availability — making it the sharpest signal of whether your concurrency settings are sustainable or grinding people down.
Key takeaways
- Agent occupancy rate = time in conversations ÷ time logged in as available, expressed as a percentage. It excludes breaks, admin work, and offline time.
- The healthy band for chat is 60-75%. Above 85% you'll see quality collapse; below 50% you're overstaffed or your routing is broken.
- Occupancy is the correct governor for concurrency caps and proactive-chat triggers — utilization tells you about scheduling, occupancy tells you about workload intensity.
- B2B SaaS teams should measure per-agent occupancy weekly, segment by shift, and correlate it with CSAT and first-response time to catch burnout before it shows up in attrition.
- Concurrency of 3 parallel chats is the practical ceiling for most B2B SaaS support — beyond that, occupancy math looks fine on paper but resolution quality drops fast.
What agent occupancy rate actually measures
Agent occupancy rate is a workload-intensity metric. It answers one question: when your agent is signed in and available to take chats, how much of that time are they actually in one?
The formula is straightforward:
Occupancy % = (Total time in active conversations ÷ Total available time logged in) × 100
"Active conversation" means the agent is engaged with at least one customer thread — typing, reading, waiting on a specific customer response. "Available time" means signed in with a status that permits routing (Online or Busy in most systems, not Away or Offline).
The metric has origins in call-center workforce management, where an agent could only handle one call at a time and 85% occupancy was the industry ceiling before agents started melting down. Chat inherits the formula but complicates it: with concurrency, an agent can be in three conversations simultaneously, which means their "time in conversations" can theoretically exceed their logged-in time. Most modern implementations cap the numerator at 100% of available time and treat each concurrent chat as adding to workload intensity separately.
Occupancy vs utilization: the difference that actually matters
These two metrics get conflated constantly, and the confusion costs teams real money.
| Dimension | Utilization | Occupancy |
|---|---|---|
| Denominator | Scheduled shift hours | Logged-in available hours |
| Includes breaks? | Yes | No |
| Includes admin/training? | Yes | No |
| Best used for | Workforce planning, headcount | Real-time workload health |
| Healthy range (chat) | 75-85% | 60-75% |
| What high number means | You're getting your money's worth | Your agent is drowning |
Utilization is a scheduling metric: it asks whether the shift you paid for is being used productively. Occupancy is a fatigue metric: it asks whether the person on that shift is being asked to do too much per available minute.
A team can have healthy 82% utilization and dangerous 91% occupancy simultaneously — that combination means breaks and admin time are protecting the shift-level number while the actual conversation load is unsustainable. Support ops managers who only watch utilization will miss burnout coming until agents start quitting.
The chat concurrency question: how many is too many
Occupancy is where the concurrency debate resolves itself. Every chat platform lets you configure how many parallel conversations one agent can hold — the default is often 3, some teams push to 5.
Here's the math that matters. If an average B2B SaaS chat takes 12 minutes of actual agent engagement time (typing, reading, thinking) inside a 25-minute total conversation window, then:
- 1 concurrent chat: 48% occupancy per conversation → agent is idle nearly half the time
- 2 concurrent chats: 96% occupancy → sustainable if durations vary
- 3 concurrent chats: occupancy caps at 100% but response times start slipping
- 4+ concurrent chats: context-switching penalty kicks in; measured productivity per chat drops 20-30% (estimate)
Three is the practical ceiling for B2B SaaS, where conversations are often technical, involve reading logs or code, and require research. E-commerce and consumer chat can push higher because more conversations are quick, template-answerable, and low-context.
The right way to set the cap: measure your current per-agent occupancy at existing concurrency, and only raise the ceiling when occupancy runs below 65% consistently for two weeks with steady CSAT.
Why occupancy should govern proactive chat triggers
Proactive chat — the automated message that fires when a visitor lingers on pricing or hits an error page — is a demand generator. Every proactive trigger you fire adds a conversation to someone's queue.
Most teams configure proactive rules on visitor conditions alone: page URL, dwell time, cart value. That's a mistake. The rules should be gated by team-wide occupancy in real time. If your team is running at 78% occupancy right now, that additional proactive chat is going to push someone past 90% — which will hurt the response time on tickets already in progress more than the new one will help.
The policy your ops team should write:
- Below 55% team occupancy: fire all proactive rules aggressively
- 55-70% occupancy: fire proactive rules on high-intent pages only (pricing, checkout)
- 70-80% occupancy: disable dwell-based triggers, keep only error-page interventions
- Above 80% occupancy: suspend proactive triggers entirely until the queue drains
This single change tends to lift CSAT on already-open conversations by protecting the agents already busy — without materially hurting proactive-conversion metrics, because the highest-intent triggers stay live.
The measurement pitfalls that make occupancy lie
Occupancy numbers get gamed and misread constantly. Four traps to watch for:
- Idle-status abuse. Agents who flip to "Away" during slow periods artificially inflate occupancy by shrinking the denominator. Fix: audit status transitions weekly, or measure occupancy only during scheduled available blocks.
- Ghost conversations. Chats that stall for 20 minutes waiting on a customer keep the timer running. If your platform counts "in conversation" as "waiting for customer," your occupancy will overstate active workload. Prefer platforms that distinguish agent-active from customer-waiting time.
- Concurrent-conversation double counting. Some tools sum across parallel chats (so a 30-minute shift with two chats can report 60 minutes of "conversation time"). Decide which model you want and enforce it consistently.
- Mixed-channel muddling. An agent handling both email and chat in a unified inbox has a fundamentally different occupancy profile from a chat-only agent. Segment by channel or the number is meaningless.
Before trusting any occupancy dashboard, spend an hour tracing how the numerator and denominator are actually calculated. The definition varies more between products than you'd expect.
Setting occupancy targets for a 3-15 agent team
For B2B SaaS support teams in this size range, here's a defensible operating framework:
- Target: 65-70% average occupancy across the team, measured weekly
- Alert threshold: any individual agent above 85% for two consecutive days
- Investigation threshold: any individual agent below 45% for a week (skill gap, routing broken, or overstaffing)
- Concurrency cap: 3 parallel conversations for tenured agents, 2 for anyone with under 60 days on the team
- Correlation to watch: if occupancy trends up while CSAT trends down, cut concurrency or add headcount — don't wait for attrition
Review these numbers in your weekly ops standup alongside first-response time and CSAT. Occupancy on its own is a workload metric; paired with quality metrics, it becomes the earliest warning system you have.
How Helptal fits in
Helptal treats occupancy inputs as first-class data. Every agent has a tracked presence status — Online, Away, Busy, Offline — with a 60-second heartbeat, so your available-time denominator reflects reality rather than stale sessions. Live chat conversations flow into the same unified inbox as email tickets, so you can segment occupancy by channel instead of averaging across mixed workloads. And proactive chat rules let you build the dwell-and-URL triggers described above, so you can gate them by team capacity in your ops playbook. Occupancy governance stops being a spreadsheet exercise and starts being a live control.
Frequently asked questions
What is a good agent occupancy rate for live chat?
For B2B SaaS support teams running live chat, a healthy occupancy rate sits between 60% and 75% averaged across the team. Above 85% you'll see quality metrics like CSAT and first-response time deteriorate rapidly. Below 50% typically indicates overstaffing, broken routing, or a demand-generation problem — the team has capacity that isn't being used.
How is agent occupancy rate calculated?
Agent occupancy rate = (total time spent in active customer conversations ÷ total time logged in as available) × 100. Available time excludes breaks, training, and offline status. Time in conversations counts periods when the agent is actively engaged with at least one thread. Most teams calculate this weekly per agent and roll it up to a team average for capacity planning.
What's the difference between agent occupancy and utilization?
Utilization measures what percentage of a scheduled shift is productive work — it includes breaks and admin time in the denominator. Occupancy measures what percentage of logged-in available time is spent in conversations — it excludes those overhead activities. Utilization is a scheduling metric useful for headcount planning; occupancy is a workload metric that predicts burnout and quality degradation.
How many concurrent chats can one agent handle?
For B2B SaaS support, three concurrent chats is the practical ceiling for most agents. Consumer or e-commerce teams handling shorter, more template-driven conversations can push to four or five. New agents should be capped at two until they've been on the team 60 days. The correct way to set the cap is to measure current occupancy — only raise it when the team runs below 65% for two consecutive weeks with stable CSAT.
Should proactive chat rules consider agent occupancy?
Yes. Firing proactive chats without regard to current team occupancy is how ops teams accidentally overload agents who are already busy. A reasonable policy: fire all rules below 55% team occupancy, keep only high-intent triggers between 55-70%, disable dwell-based triggers between 70-80%, and suspend all proactive triggers above 80%. This protects response times on in-progress conversations without meaningfully hurting proactive conversion.
This week, pull last month's chat data and calculate occupancy per agent using the formula above — segment by shift and by tenure. You'll almost certainly find one or two agents running hot enough to explain your CSAT variance, and one or two running cold enough to explain your response-time queue. If you're evaluating tooling that surfaces this data cleanly, Helptal's free plan includes live chat, presence tracking, and reporting on every account.



