Overview
This article defines metrics available in Assembled reports, Team Performance, adherence views, Scorecards, and related dashboards. It covers schedule and time-tracking metrics (such as adherence, utilization, and occupancy) and ticket and message metrics (such as handle time, cases solved, and CSAT). Use this as a reference when building reports, explaining data to stakeholders, or troubleshooting discrepancies.
Important note: Many metrics rely on productive time. Productive time is determined by:
- Event types (Settings → Event types): which scheduled events count as productive, non-productive, or time off.
- Agent state mappings (Settings → Agent states): how statuses from your contact center or CRM (for example Zendesk, Talkdesk, Five9) map to productive, available, busy, or offline in Assembled.
- Integrations and queue mapping (Settings → Queues and exclusions): how tickets and agent activity are assigned to channels and queues.
Time spent working on tickets comes from your support platform. Agent activity may be tracked through status selections (aux codes), automatic browser or app activity, or integration syncs, depending on your setup.
How common metrics differ:
| Metric | What it measures |
|---|---|
| Productive adherence | Right activity at the right time during scheduled productive blocks |
| Schedule adherence | Following all scheduled events (except time off) |
| Conformance | Right amount of productive time worked vs scheduled (timing does not matter) |
| Scheduled utilization | Share of the schedule allocated to productive events |
| Actual utilization | Share of actual worked time that was productive |
| Occupancy | Share of logged-in time spent actively on customer work |
| In-office shrinkage | Share of scheduled time spent in non-productive states |
High productive adherence does not guarantee high occupancy. An agent can be fully adherent during a productive block but idle when contact volume is low.
What's in this article:
- Overview
- Schedule and adherence metrics
- Productivity and utilization metrics
- Case resolution and response metrics
- Quality, case management, and messaging metrics
- Configuration that commonly changes metrics
- When numbers do not match expectations
Schedule and adherence metrics
Actual hours worked (total)
Number of hours the agent worked during the specified interval, regardless of their schedule. This includes both productive and non-productive actual time.
Calculation: sum(hours worked)
Notes:
- Based on agent state data and your agent state mappings.
- Used as the denominator for Actual utilization and related metrics.
Actual productive hours worked
Number of productive hours the agent worked during the specified interval, regardless of whether they followed their schedule.
Calculation: sum(productive hours worked)
Notes:
- Only includes time in agent states mapped to productive (and, if enabled for your account, productive auxiliary states).
- Used as the numerator for Conformance and as the denominator for Solved (per actual hour).
Actual productive hours worked (all channels)
Number of productive hours worked across all channels and platforms, including productive auxiliary time when that configuration is enabled for your account.
Calculation: sum(productive hours worked across all channels)
Notes:
- Appears when your account uses expanded productive or auxiliary event definitions.
- May differ from Actual productive hours worked when auxiliary productive states are included.
Hours in productive adherence
Total time the agent was in the correct productive state while scheduled for productive work during the specified interval.
Calculation: sum(hours in productive adherence)
Notes:
- This is the hour-based companion to Productive adherence (percentage).
- Requires agent state data and correct agent state mappings.
Productive adherence
Percentage of time an agent was in the correct productive state while scheduled for productive work.
Calculation: (hours in productive adherence during scheduled productive time ÷ scheduled productive hours) × 100
Notes:
- Maximum value is 100%.
- Only evaluates periods when the agent is scheduled for events marked productive in Event types.
- Requires agent state data synced from your platforms and correct agent state mappings.
- Agent state exclusions (for example training, outages, or approved exceptions) remove affected periods from adherence calculations when configured.
- If capacity is split across queues or channels for your account, adherence time may be allocated proportionally across those dimensions.
How this differs from schedule adherence: Productive adherence only considers scheduled productive events. Schedule adherence considers all scheduled events except time off (meetings, breaks, training, and so on).
How this differs from conformance: Adherence cares about doing the right thing at the right time. Conformance cares about working the right total amount of productive time, regardless of timing.
Productive adherence (all)
Same as Productive adherence, but calculated using productive and productive-auxiliary definitions across all channels when that configuration is enabled for your account.
Calculation: (hours in productive adherence during scheduled productive time ÷ scheduled productive hours) × 100
Notes:
- Appears when your account uses expanded productive auxiliary event types.
- Compare to Productive adherence only when you understand whether auxiliary time is included in each metric.
Hours in schedule adherence
Total time the agent followed their full schedule (all scheduled events except time off) during the specified interval.
Calculation: sum(hours in schedule adherence)
Schedule adherence
Percentage of time an agent followed all scheduled events except time off.
Calculation: (hours in schedule adherence during scheduled events ÷ total scheduled hours) × 100
Notes:
- Maximum value is 100%.
- Time off event types are excluded from both numerator and denominator.
- Includes adherence to non-productive scheduled events (breaks, meetings, training) as well as productive events.
- Often lower than productive adherence because more scheduled activity is included.
Scheduled hours (total)
Time the agent was scheduled to work on any event during the specified interval.
Calculation: sum(all scheduled hours)
Notes:
- Includes productive and non-productive scheduled events.
- Excludes time off when calculating metrics that use "scheduled hours (total)" as defined in reporting (see Schedule adherence and In-office shrinkage).
Scheduled hours (productive)
Time the agent was scheduled to work on productive events during the specified interval.
Calculation: sum(scheduled productive hours)
Notes:
- Used as the denominator for Productive adherence and Conformance.
- Does not indicate whether the agent actually worked those hours — only what was on the schedule.
Conformance
Percentage of actual productive hours worked compared to scheduled productive hours, regardless of whether the agent was in the correct state at each moment.
Calculation: (actual productive hours worked ÷ scheduled productive hours) × 100
Notes:
- Can be greater than 100% if the agent worked more productive time than scheduled.
- Can be less than 100% if the agent worked fewer productive hours than scheduled.
- Timing does not matter: an agent can have high conformance but low adherence (or the reverse).
- Useful for flexible teams where total productive hours matter more than minute-by-minute schedule match.
- When you filter by channel or queue, conformance is calculated in that filter context (productive actual vs productive scheduled for that scope).
How this differs from productive adherence: Adherence requires matching scheduled productive events with the correct agent states in real time. Conformance only compares total productive hours worked to total productive hours scheduled.
Conformance (strict)
Percentage of all actual hours worked (productive and non-productive) compared to all scheduled hours (productive and non-productive, excluding time off).
Calculation: (actual productive and non-productive hours worked ÷ scheduled productive and non-productive hours) × 100
Notes:
- Can exceed 100% for the same reasons as Conformance.
- Includes non-productive scheduled and actual time (for example breaks and meetings), not only customer-facing productive time.
- Available in reporting when enabled for your account; not all customers see this metric in every view.
Out of adherence duration
How long an agent has been out of adherence for their currently scheduled productive event in real-time adherence views.
Calculation: duration of current out-of-adherence period
Notes:
- Typically shown in real-time or agent-level adherence views, not as a historical aggregate in all reports.
- Measured in seconds or hours depending on the report.
Productivity and utilization metrics
Email productivity (case throughput)
Average number of email contacts handled per agent per hour.
Calculation: average(email contacts handled per hour)
Notes:
- Specific to the email channel and your queue and channel configuration.
- Distinct from Messages sent (per scheduled hour) or Messages sent (per actual hour), which count outbound messages rather than completed contacts.
Occupancy
Percentage of logged-in time an agent spent actively working on customer issues. Occupied and available states are defined by admins in agent state mappings.
Calculation: occupied time ÷ (occupied time + available time) × 100
Notes:
- Only includes agent states mapped to occupied (busy) or available for the channel or platform in scope.
- Does not measure schedule compliance — that is adherence.
- Does not measure whether scheduled time was productive — that is utilization.
- For channel-specific occupancy, only states mapped to that channel are included.
Industry context (informational only; Assembled does not enforce targets):
- Many contact centers aim for roughly 70–85% occupancy on real-time channels.
- Sustained occupancy above ~85% may indicate burnout risk.
- Occupancy below ~70% may indicate underutilization or low volume.
Example state mappings (your configuration may differ):
| Platform | Often mapped as occupied (busy) | Often mapped as available |
|---|---|---|
| Zendesk Talk | On call, wrap-up | Online |
| Five9 | On call, after-call work, on hold, on park | Ready |
| Kustomer, Twilio, UJET, Talkdesk | Depends on your agent state mappings | Depends on your mappings |
Read more about configuring occupancy in your Assembled help center (search for "configurable occupancy").
Occupancy (all channels)
Percentage of logged-in time spent actively on customer work across all channels and platforms configured in agent state mappings.
Calculation: occupied time (all channels) ÷ available and occupied time (all channels) × 100
Notes:
- Use this when you need a single occupancy number across phone, chat, and other channels.
- Compare to channel-specific Occupancy when diagnosing a single channel.
Scheduled utilization
Percentage of scheduled time allocated to productive events, whether or not the agent followed the schedule.
Calculation: (scheduled productive hours ÷ total scheduled hours) × 100
Notes:
- Answers: "Are we scheduling the right mix of customer work vs meetings, breaks, and other events?"
- Time off is excluded from the denominator (total scheduled hours for this metric uses scheduled time excluding time off, consistent with utilization reporting).
- Does not use actual agent states — only the schedule.
Actual utilization
Percentage of actual worked time spent in productive states, regardless of adherence to the schedule.
Calculation: (actual productive hours worked ÷ actual hours worked (total)) × 100
Notes:
- Answers: "Of the time agents actually worked, how much was productive?"
- Ignores the schedule except indirectly (actual hours come from agent states).
- Preferred over legacy utilization definitions that divided by scheduled hours.
How this differs from scheduled utilization: Scheduled utilization uses the plan. Actual utilization uses what happened.
Actual utilization (all channels)
Percentage of actual worked time spent in productive and productive-auxiliary states across all channels when that configuration is enabled.
Calculation: (actual productive and auxiliary productive hours worked ÷ actual hours worked (total)) × 100
Notes:
- Appears when your account includes auxiliary productive time in utilization reporting.
In-office shrinkage
Percentage of scheduled time spent in non-productive states (for example breaks, meetings, training, or time out of adherence on productive events).
Calculation: actual hours in non-productive states ÷ total scheduled hours
Notes:
- Only includes hours during scheduled periods; time off is excluded.
- Non-productive states must be mapped correctly in agent state mappings and Event types.
- Not reliable for async channels (email, messaging): agents may appear "available" while not actively working. For async workflows, use Actual utilization or Solved (per actual hour) instead of shrinkage alone.
- Your organization may separately track planned vs unplanned shrinkage in BPO or vendor-requirement workflows.
How this differs from conformance: Shrinkage measures non-productive share of scheduled time. Conformance measures whether total productive hours matched the schedule.
Actual non-productive hours
Total time an agent spent in non-productive auxiliary or non-productive states during the interval.
Calculation: sum(actual non-productive hours)
Notes:
- Appears when your account uses expanded auxiliary state definitions.
- Contributes to In-office shrinkage at the percentage level.
Case resolution and response metrics
Handle time
Total time to resolve contacts in the selected time range (typically using cases or contacts by created date, depending on the report).
General calculation: time contact ended − time contact started (definition varies by platform and channel)
Note: Assembled does not calculate handle time for email.
Platform-specific definitions:
Kustomer
-
Phone: conversation end time − first response time (often
endedAtvs first response timestamp; exact fields depend on conversation attributes). - Chat: conversation end time − first response time. Bot-handled portions may be excluded if your account is configured to ignore bot messages when determining the first response.
Zendesk
-
Zendesk Talk (phone): call end time − call start time (often
created_at + duration; waiting and wrap-up may be excluded depending on configuration). - Zendesk Chat: chat end time − first response time (often from Zendesk Chat API combined with ticket data). Waiting time before first response and wrap-up after the chat may be excluded.
-
Zendesk Messaging / ticket-based chat: often
solved_atrelative to first reply time (reply_time_in_minutesorreply_time_in_secondson the ticket metric set).
Salesforce
-
Case (phone):
ClosedDate − firstRespondedAt -
Case (chat):
ClosedDate − firstRespondedAt -
LiveChatTranscript (chat):
EndTime − StartTime
Talkdesk
-
Phone:
end_at − start_atfor handle duration; first-response timing may usestart_at + wait_timeorstart_at + total_time − talk_timedepending on your account configuration.
UJET
-
Phone:
ends_at − connected_at(or queue timing depending on call flow). -
Chat:
ends_at − first message sent(handle duration start from first handle segment).
Five9
-
Phone:
(timestamp + call_time) − timestamp(equivalent to call duration from answer/end timestamps).
Amazon Connect
-
Phone:
AgentInteractionDuration + CustomerHoldDuration + AfterContactWorkDuration
Intercom
- Chat: last admin/lead/user conversation part time − first admin response part time. Bot-authored parts may be filtered depending on conversation structure.
Troubleshooting handle time discrepancies:
- Compare the same channel and date definition (created vs solved date).
- Confirm whether hold, wrap-up, and queue wait are included on your platform vs in Assembled.
- Open metric calculation details in the product when available for your integration.
- Account-specific settings (for example excluding bots on Kustomer, Talkdesk wait-time handling) change results.
Average handle time
Average time to resolve a phone or chat contact in the selected time range.
Calculation: sum(handle time) ÷ number of contacts
Notes:
- Excludes email.
- With units of work enabled, you may also see Average handle time per case or Average handle time per unit of work — see below.
Average handle time per case
Average time to resolve a phone or chat case in the selected range when your account uses tickets v2 / units-of-work reporting with backward-compatible labeling.
Calculation: sum(handle time) ÷ number of cases
Average handle time per unit of work
Average time to handle one unit of work within a case (from when that unit of work started to when it ended).
Calculation: sum(handle time for units of work) ÷ number of units of work
Notes:
- Used when cases contain multiple segments (for example reopens, transfers, or multiple handling periods).
Total handle time (units of work)
Total time spent handling all units of work in the selected time range.
Calculation: sum(handle time across units of work)
Agent ticket time
Total time an agent spent viewing tickets (active handle time from the Assembled Zendesk app).
Calculation: sum(agent ticket viewing time)
Note: Currently available for Zendesk through the Assembled Zendesk app.
Agent tickets touched
Number of distinct tickets an agent viewed.
Calculation: count(distinct tickets viewed)
Note: Currently available for Zendesk through the Assembled Zendesk app.
Agent average handle time
Average time spent per ticket while viewing.
Calculation: agent ticket time ÷ agent tickets touched
Note: Currently available for Zendesk through the Assembled Zendesk app.
Agent ticket time (solved)
Total time an agent spent viewing solved tickets.
Calculation: sum(agent ticket viewing time for solved tickets)
Note: Currently available for Zendesk through the Assembled Zendesk app.
Agent tickets touched (solved)
Number of distinct solved tickets an agent viewed.
Calculation: count(distinct solved tickets viewed)
Note: Currently available for Zendesk through the Assembled Zendesk app.
Agent average handle time (solved)
Average time spent per solved ticket while viewing.
Calculation: agent ticket time (solved) ÷ agent tickets touched (solved)
Note: Currently available for Zendesk through the Assembled Zendesk app.
Cases solved
Number of cases solved by an agent or group of agents in the selected time range (typically by created date unless the report specifies otherwise).
Calculation: count(cases solved)
Notes — configuration affects this metric:
| Setting | Effect |
|---|---|
| Count every solve | Each solve event counts (reopens can produce multiple solves). |
| Final solve only | Only the last solve on a case counts. |
| Solve attribution | Solve may count for the assigned agent or the agent who closed the case, depending on configuration. |
| Pending = solved (Zendesk) | Moving a ticket to pending may count as a solve when enabled. |
| Units of work / tickets v2 | Solve timing may come from case-level events or the last unit of work, depending on configuration. |
Labels you may see:
- Cases solved — standard label.
- Total cases solved — when every solve counts.
- Unique cases solved — distinct cases solved, excluding cases that were reopened and solved again (when configured).
Units of work handled
Number of units of work that were solved, transferred, reassigned, or paused in the selected time range.
Calculation: count(units of work handled)
Notes:
- Appears when your account uses units of work / tickets v2 workflows.
- A single case may contain multiple units of work.
Units of work handled (per scheduled hour)
Calculation: units of work handled ÷ scheduled productive hours
Units of work handled (per actual hour)
Calculation: units of work handled ÷ actual productive hours worked
Unique case solved rate / Total case solved rate
Percentage of terminal units of work that represent a solve (definitions differ when counting every solve vs unique case solves).
Notes:
- Terminal unit of work: a unit of work with solved, reassigned, or transferred status.
- Appears with units-of-work reporting; ask your Assembled contact which variant your account uses.
Solved (per scheduled hour)
Number of cases solved per scheduled productive hour.
Calculation: cases solved ÷ scheduled productive hours
Solved (per actual hour)
Number of cases solved per actual productive hour worked.
Calculation: cases solved ÷ actual productive hours worked
Time to answer
Total time from first customer contact to first agent response for calls or chats in the selected time range.
Calculation: first response time − first contact time
Notes:
- For email, related service-level metrics may respect business hours when configured.
- Platform-specific first-response definitions apply (see your integration documentation).
Average time to answer
Average time to answer calls or chats in the selected time range.
Calculation: sum(time to answer) ÷ count(contacts)
Contacts received
Total inbound contacts received in the selected time range, regardless of subsequent messages or case splits.
Calculation: sum(contacts received)
Service level
Percentage of first contacts that met your service level agreement (SLA) in the selected time range.
Calculation: (first contacts that met SLA ÷ first contacts) × 100
Notes:
- For email, service level can respect business hours when configured.
- SLA definitions depend on your queue and channel SLA settings in Assembled.
New {calls / tickets / chats}
New contacts received in the selected time range.
Calculation: sum(new contacts)
Open {calls / tickets / chats}
Open contacts in the selected time range.
Calculation: sum(open contacts)
{Calls / tickets / chats} on hold
Contacts on hold in the selected time range.
Calculation: sum(contacts on hold)
Pending {calls / tickets / chats}
Pending contacts in the selected time range.
Calculation: sum(pending contacts)
Note: Depending on your configuration, pending tickets may count as solved (for example Zendesk pending-as-solved). That affects solve counts and downstream rates, not just the pending volume metric.
Quality, case management, and messaging metrics
CSAT responses received
Number of tickets or cases for which a customer provided a CSAT score attributed to an agent.
Calculation: count(tickets with a CSAT score)
Notes:
- Raw scores are passed through from your support platform; Assembled does not modify source CSAT values.
Average CSAT score
Average customer satisfaction score for an agent.
Calculation: sum(CSAT scores) ÷ number of CSAT responses
Notes:
- Many platforms use a 1–5 scale.
- On platforms like Zendesk, CSAT may be simplified to Good/Bad; the average may reflect the proportion of Good ratings to total Good + Bad ratings.
- In the product, hover or open metric details for platform-specific behavior.
Cases solved on first contact
Number of email tickets or cases resolved with a single agent response in the selected time range.
Calculation: count(cases resolved with one response)
Notes:
- Typically applies to email; channel availability depends on integration.
- Solve counting (every solve vs final solve) follows the same configuration as Cases solved.
First contact resolution rate
Percentage of email tickets or cases resolved with a single response.
Calculation: (cases solved on first contact ÷ email cases solved) × 100
Cases reassigned away
Number of cases reassigned from one agent to another within the same queue in the selected time range.
Calculation: count(cases reassigned)
Reassigned away rate
Percentage of cases reassigned within the same queue, out of all cases that were solved, transferred, or reassigned for that agent.
Calculation: (cases reassigned within same queue ÷ (cases reassigned within same queue + cases transferred to another queue + cases solved)) × 100
Notes:
- Denominator is terminal handling outcomes for the agent (solved, transferred, or reassigned), not all tickets ever assigned.
Cases transferred away
Number of cases transferred from one queue to another in the selected time range.
Calculation: count(cases transferred away)
Transfer away rate
Percentage of cases transferred to another queue, out of all cases that were solved, transferred, or reassigned for that agent.
Calculation: (cases transferred to different queue ÷ (cases reassigned within same queue + cases transferred to different queue + cases solved)) × 100
Messages sent
Number of messages or external comments an agent sent to a customer.
Calculation: count(messages sent)
Notes:
- Populated in the channel your integration is mapped to in Assembled.
- Not available for phone as a messages-sent metric.
- Not all integrations support this metric.
Integration-specific definitions:
Zendesk (excluding Zendesk Chat and Zendesk Talk as standalone message sources)
- Messages correspond to public comments on tickets.
- By default, Zendesk tickets map to the email channel but may also map to chat depending on configuration.
Intercom
- Messages correspond to conversation parts where the author type is admin, lead, or user, and the part type is comment, assignment, close, or open.
- If a conversation part has the same author as the prior part and is sent less than 5 minutes after, those parts are merged into a single message count.
Kustomer
- Messages correspond to messages in Kustomer.
Other integrations
- This metric is not currently supported unless documented for your specific integration.
Messages sent (per scheduled hour) {Email}
Number of messages sent on the email channel per scheduled productive hour.
Calculation: messages sent ÷ scheduled productive hours
Messages sent (per actual hour) {Email}
Number of messages sent on the email channel per actual productive hour worked.
Calculation: messages sent ÷ actual productive hours worked
Configuration that commonly changes metrics
Your Deployment Strategist or support team can confirm which settings apply to your account.
| Configuration | Metrics affected | What changes |
|---|---|---|
| Productive vs non-productive event types | Adherence, utilization, shrinkage | What counts as productive scheduled time |
| Productive auxiliary event types | Adherence (all), utilization (all channels) | Expands productive definitions |
| Agent state mappings | Adherence, occupancy | Which platform statuses count as busy, available, offline |
| Count every solve vs final solve only | Cases solved, rates per hour | Multiple solves per case vs one |
| Pending = solved (Zendesk) | Cases solved, pending volume | Pending tickets may count as solves |
| Units of work / tickets v2 | Handle time, solves, throughput | Case-level vs segment-level metrics |
| Queue and channel mapping | Volume, SLA, occupancy by channel | Which work appears in each channel |
| Agent state exclusions | Adherence | Periods removed from adherence (training, outages, etc.) |
| Kustomer ignore bots | Handle time, first response | Bot messages excluded from timing |
| Talkdesk wait time for first response | Handle time, time to answer | Wait time included in first-response duration |
When numbers do not match expectations
- Confirm the date range, timezone, and filters (channel, queue, site, team).
- Verify Event types — is the scheduled event marked productive?
- Verify Agent states — is each platform status mapped to the intended category?
- Confirm solve settings — every solve vs final solve; pending-as-solved; assignee vs closer.
- Compare the right metric — adherence, occupancy, conformance, and utilization answer different questions.
- For email and messaging, prefer actual utilization and solved per actual hour over occupancy or shrinkage alone.
- When comparing to your CRM or telephony report, align on timestamps, wrap-up, hold time, and created vs solved date definitions.
For account-specific questions, contact your Assembled Deployment Strategist or support@assembled.com.
Comments
0 comments
Please sign in to leave a comment.