I’m currently assisting a client with an RFP evaluation for a new workforce management tool, and we’ve hit a major snag in how we calculate ‘Agent Occupancy’ within Genesys Cloud.
In our hybrid environment (where agents handle voice, chat, and email simultaneously), the built-in WFM reports seem to be double-counting agents when they are in an ‘Interacting’ state across multiple media types. For example, if an agent is on a call and has two active chat sessions, their occupancy is being reported as >100%.
Has anyone found a robust way to calculate ‘True Occupancy’—the actual percentage of time an agent is handling at least one interaction, regardless of the media type—using the Analytics API?
I inherited an org that had this exact issue. The ‘Standard’ occupancy metric in the UI is indeed additive. To get ‘True Occupancy’, you can’t rely on the aggregate metrics. You have to pull the User Status events from the Analytics User Details query and look at the systemPresence and routingStatus segments.
Specifically, you want to count the time the agent was in a COMMUNICATING routing status. The routing status doesn’t care about the number of interactions; it just tells you if the agent is busy with at least one. If you sum the COMMUNICATING time and divide by the total ON_QUEUE time, you get the actual occupancy percentage without the multi-session inflation.
To add to what was mentioned, also keep an eye on your ‘Utilization’ settings. If your agents are allowed to handle multiple chats while on a voice call (which is brave!), the ‘Interacting’ time in analytics will overlap.
When I pull reports for our trunk management, I often use a custom SQL view in our BI tool that de-duplicates overlapping segments based on the startTime and endTime of the conversation detail records. It’s more processing-intensive, but it’s the only way to get a single ‘Busy’ timeline for an agent handling diverse media streams.