WFM custom report metrics

<body>
<p id="docs-hc-snippet" style="display: none;">This article lists the metrics available for Zendesk Workforce management (WFM) custom reports.</p>
<div class="article-banners">
<div id="docs-wmp-link">
<a href="https://support.zendesk.com/hc/en-us/articles/5411234991258-plan" rel="noopener" target="_blank">What's my plan?</a>
</div>

<div class="article-banner" id="addon_wfm">
<table>
<tbody>
<tr>
<td>
<strong>Add-on</strong>
</td>
<td>Workforce Management (WFM) or Workforce Engagement Management (WEM)</td>
</tr>
</tbody>
</table>
</div>

</div>
<div id="docs-ai-summary">
<p id="docs-ai-summary-toggle">
Summary: <span id="up-triangle">◀</span><span id="down-triangle">▼</span>
</p>
<p id="docs-ai-summary-content">
This article outlines metrics for Workforce Management custom reports, helping you track and analyze agent performance. It covers point metrics like assigned and solved points, and rate and time metrics such as adherence rate and average handle time. Use these metrics to monitor productivity, adherence, and ticket handling efficiency, enabling data-driven decisions to enhance your team's customer support operations.
</p>
</div>

<div class="body">

<p class="p">This article lists the metrics available for Zendesk Workforce management (WFM) custom
reports.</p>
<div class="p">
<div class="note attention">
<span class="attentiontitle"></span> <strong class="ph b">Note:</strong> Pre-ticket messaging interactions aren't tracked by WFM.
Metrics compile only after ticket creation. See <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/4408829019162" target="_blank">Routing messaging tickets and notifying agents</a>. This means live
chat and messaging interactions also don't count as public comments in WFM. See <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/4409149177242" target="_blank">Metrics and attributes for live chat</a> and <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/4724624097818" target="_blank">Metrics and attributes for Zendesk messaging</a> to learn about those
metrics and attributes.</div>
</div>
<div class="p">This article contains the following topics:<ul class="ul" id="topic_yzk_zm4_52c__ul_wtf_tn4_52c">
<li class="li"><a class="xref" href="#topic_ocb_3n4_52c">Point metrics</a></li>
<li class="li"><a class="xref" href="#topic_xwv_3n4_52c">Rate and time metrics</a></li>
</ul>
</div>
<p class="p">Related articles</p>
<div class="p">
<ul class="ul" id="topic_yzk_zm4_52c__ul_pr3_n4y_w2c">
<li class="li" dir="ltr"><a class="xref" href="https://support.zendesk.com/hc/en-us/articles/6443331692698" target="_blank">About WFM custom report templates</a></li>
<li class="li"><a class="xref" href="https://support.zendesk.com/hc/en-us/articles/8920679615258" target="_blank">Zendesk WFM report and dashboard metrics overview</a></li>
</ul>
</div>
</div>
<div aria-labelledby="ariaid-title2" class="topic nested1" id="topic_ocb_3n4_52c">
<h2 class="title topictitle2" id="ariaid-title2">Point metrics</h2>
<div class="body">
<div class="p">Point metrics include:<ul class="ul" id="topic_ocb_3n4_52c__ul_b33_4vy_w2c">
<li class="li"><a class="xref" href="#topic_ocb_3n4_52c__assigned_point">Assigned
points</a></li>
<li class="li"><a class="xref" href="#topic_ocb_3n4_52c__attended_point">Attended
points</a></li>
<li class="li"><a class="xref" href="#topic_ocb_3n4_52c__escalated_point">Escalated
points</a></li>
<li class="li"><a class="xref" href="#topic_ocb_3n4_52c__handled_point">Handled points</a></li>
<li class="li"><a class="xref" href="#topic_ocb_3n4_52c__private_comment">Private
comments</a></li>
<li class="li"><a class="xref" href="#topic_ocb_3n4_52c__public_comments">Public
comments</a></li>
<li class="li"><a class="xref" href="#topic_ocb_3n4_52c__reopened_point">Reopened
points</a></li>
<li class="li"><a class="xref" href="#topic_ocb_3n4_52c__solved_point">Solved points</a></li>
<li class="li"><a class="xref" href="#topic_ocb_3n4_52c__bounced_points">Ticket bounce
points</a></li>
</ul>
</div>
<div class="p">
<div class="tablenoborder">
<table border="1" cellpadding="4" cellspacing="0" class="table" frame="border" id="topic_ocb_3n4_52c__table_d1y_zn4_52c" rules="all" summary="">
<colgroup>
<col style="width:33.222591362126245%">
<col style="width:33.55481727574751%">
<col style="width:33.222591362126245%">
</colgroup>
<thead class="thead" style="text-align:left;">
<tr class="row">
<th class="entry cellrowborder" id="d51e155" style="vertical-align:top;">Metric</th>
<th class="entry cellrowborder" id="d51e158" style="vertical-align:top;">Description</th>
<th class="entry cellrowborder" id="d51e161" style="vertical-align:top;">Formula</th>
</tr>
</thead>
<tbody class="tbody">
<tr class="row">
<td class="entry cellrowborder" headers="d51e155" id="topic_ocb_3n4_52c__assigned_point" style="vertical-align:top;">Assigned points</td>
<td class="entry cellrowborder" headers="d51e158" style="vertical-align:top;">Same as the system report <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/6443331680538#topic_dqz_cht_fkc__assigned_points" target="_blank">assigned points</a> metric.</td>
<td class="entry cellrowborder" headers="d51e161" style="vertical-align:top;">N/A</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d51e155" id="topic_ocb_3n4_52c__attended_point" style="vertical-align:top;">Attended points</td>
<td class="entry cellrowborder" headers="d51e158" style="vertical-align:top;">Same as the system report <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/6443331680538#topic_dqz_cht_fkc__attended_points" target="_blank">attended points</a> metric.</td>
<td class="entry cellrowborder" headers="d51e161" style="vertical-align:top;">N/A</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d51e155" id="topic_ocb_3n4_52c__escalated_point" style="vertical-align:top;">Escalated points</td>
<td class="entry cellrowborder" headers="d51e158" style="vertical-align:top;">Same as the system report <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/6443331680538#topic_dqz_cht_fkc__escalated_points" target="_blank">escalated points</a> metric. </td>
<td class="entry cellrowborder" headers="d51e161" style="vertical-align:top;">N/A</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d51e155" id="topic_ocb_3n4_52c__handled_point" style="vertical-align:top;">Handled points</td>
<td class="entry cellrowborder" headers="d51e158" style="vertical-align:top;">Unique count of ticket IDs that an agent worked on. An agent is given a point

if:<ul class="ul" id="topic_ocb_3n4_52c__ul_twc_vzy_w2c">
<li class="li">The agent updated a ticket by performing any of these actions: <ul class="ul" id="topic_ocb_3n4_52c__ul_vhx_qf5_nfc">
<li class="li">Adding a public comment</li>
<li class="li">Adding an internal note</li>
<li class="li">Assigning the ticket to another group</li>
<li class="li">Assigning the ticket to another agent or to themselves in another

group</li>
<li class="li">Changing the ticket status</li>
</ul>
</li>
<li class="li">The agent has not received a handled point for that same Ticket ID within
the last 12 hours.</li>
</ul>
</td>
<td class="entry cellrowborder" headers="d51e161" style="vertical-align:top;">N/A</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d51e155" id="topic_ocb_3n4_52c__private_comment" style="vertical-align:top;">Private comments</td>
<td class="entry cellrowborder" headers="d51e158" style="vertical-align:top;">Tracks how many internal notes have been left inside of a ticket. Each
internal note an <em class="ph i">agent</em> leaves in the ticket is counted as one private
comment.</td>
<td class="entry cellrowborder" headers="d51e161" style="vertical-align:top;">N/A</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d51e155" id="topic_ocb_3n4_52c__public_comments" style="vertical-align:top;">Public comments</td>
<td class="entry cellrowborder" headers="d51e158" style="vertical-align:top;">Tracks how many public comments have been sent.
Each public comment an agent sends is counted as one public comment.</td>
<td class="entry cellrowborder" headers="d51e161" style="vertical-align:top;">N/A</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d51e155" id="topic_ocb_3n4_52c__reopened_point" style="vertical-align:top;">Reopened points</td>
<td class="entry cellrowborder" headers="d51e158" style="vertical-align:top;">Same as the system report reopened points metric. </td>
<td class="entry cellrowborder" headers="d51e161" style="vertical-align:top;">N/A</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d51e155" id="topic_ocb_3n4_52c__solved_point" style="vertical-align:top;">Solved points</td>
<td class="entry cellrowborder" headers="d51e158" style="vertical-align:top;">Same as the system report solved points metric. </td>
<td class="entry cellrowborder" headers="d51e161" style="vertical-align:top;">N/A</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d51e155" id="topic_ocb_3n4_52c__bounced_points" style="vertical-align:top;">Ticket bounce points</td>
<td class="entry cellrowborder" headers="d51e158" style="vertical-align:top;">Number of points where the agent recorded time spent on a ticket but no work
was actually done.<p class="p">If tickets are updated via bulk editing, you might see more
attended tickets than touched tickets, where agents actually clocked in. Also,
automations change tickets and add attended points without agents clocking time
in, which can result in negative bounced points.</p>
</td>
<td class="entry cellrowborder" headers="d51e161" style="vertical-align:top;"><code class="ph codeph">(Number of tickets touched - Attended points)</code></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div aria-labelledby="ariaid-title3" class="topic nested1" id="topic_xwv_3n4_52c">
<h2 class="title topictitle2" id="ariaid-title3">Rate and time metrics</h2>
<div class="body">
<div class="p">Rate and time metrics include:<ul class="ul" id="topic_xwv_3n4_52c__ul_orz_pvy_w2c">
<li class="li"><a class="xref" href="#topic_xwv_3n4_52c__adherence_rate">Adherence
rate</a></li>
<li class="li"><a class="xref" href="#topic_xwv_3n4_52c__a_h_t">Average handle time</a></li>
<li class="li"><a class="xref" href="#topic_xwv_3n4_52c__f_r_t">First response time</a></li>
<li class="li"><a class="xref" href="#topic_xwv_3n4_52c__f_r_t_after_assignment">First response
time after assignment</a></li>
<li class="li"><a class="xref" href="#topic_xwv_3n4_52c__idle_time">Idle time</a></li>
<li class="li"><a class="xref" href="#topic_xwv_3n4_52c__in_adherence_time">In adherence
time</a></li>
<li class="li"><a class="xref" href="#topic_xwv_3n4_52c__tickets_touched">Number of tickets
touched</a></li>
<li class="li"><a class="xref" href="#topic_xwv_3n4_52c__unique_tiquets_with_time_spent">Number of
unique tickets with time spent</a></li>
<li class="li"><a class="xref" href="#topic_xwv_3n4_52c__out_of_adherence">Out of adherence
time</a></li>
<li class="li"><a class="xref" href="#topic_xwv_3n4_52c__paid_time">Paid time</a></li>
<li class="li"><a class="xref" href="#topic_xwv_3n4_52c__paid_general_task_time">Paid general task
or status time</a></li>
<li class="li"><a class="xref" href="#topic_xwv_3n4_52c__productive_general_task_time">Productive
general task or status time</a></li>
<li class="li"><a class="xref" href="#topic_xwv_3n4_52c__productive_time">Productive
time</a></li>
<li class="li"><a class="xref" href="#topic_xwv_3n4_52c__resolution_rate">Resolution
rate</a></li>
<li class="li"><a class="xref" href="#topic_xwv_3n4_52c__solved_points_per_hour">Solved points per
paid hour</a></li>
<li class="li"><a class="xref" href="#topic_xwv_3n4_52c__solved_points_per_productive_hour">Solved
points per productive hour</a></li>
<li class="li"><a class="xref" href="#topic_xwv_3n4_52c__bounce_rate">Ticket bounce
rate</a></li>
<li class="li"><a class="xref" href="#topic_xwv_3n4_52c__solved_rate">Ticket solved
rate</a></li>
<li class="li"><a class="xref" href="#topic_xwv_3n4_52c__ticket_time">Ticket time</a></li>
<li class="li"><a class="xref" href="#topic_xwv_3n4_52c__unproductive_time">Unproductive
time</a></li>
<li class="li"><a class="xref" href="#topic_xwv_3n4_52c__entry_nbl_cvt_nfc">Unproductive general
task or status time</a></li>
<li class="li"><a class="xref" href="#topic_xwv_3n4_52c__unpaid_general_task_time">Unpaid general
task or status time</a></li>
<li class="li"><a class="xref" href="#topic_xwv_3n4_52c__untracked_time">Untracked
time</a></li>
<li class="li"><a class="xref" href="#topic_xwv_3n4_52c__utilization">Utilization</a></li>
<li class="li"><a class="xref" href="#topic_xwv_3n4_52c__utilization_ocr">Utilization (with
unified agents status synchronization)</a></li>
</ul>
</div>
<div class="p">
<div class="tablenoborder">
<table border="1" cellpadding="4" cellspacing="0" class="table" frame="border" id="topic_xwv_3n4_52c__table_qkl_bm5_x2c" rules="all" summary="">
<colgroup>
<col style="width:33.222591362126245%">
<col style="width:33.55481727574751%">
<col style="width:33.222591362126245%">
</colgroup>
<thead class="thead" style="text-align:left;">
<tr class="row">
<th class="entry cellrowborder" id="d51e483" style="vertical-align:top;">Metric</th>
<th class="entry cellrowborder" id="d51e486" style="vertical-align:top;">Description</th>
<th class="entry cellrowborder" id="d51e489" style="vertical-align:top;">Formula</th>
</tr>
</thead>
<tbody class="tbody">
<tr class="row">
<td class="entry cellrowborder" headers="d51e483" id="topic_xwv_3n4_52c__adherence_rate" style="vertical-align:top;">Adherence rate</td>
<td class="entry cellrowborder" headers="d51e486" style="vertical-align:top;">Same as the system report <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/6443331680538#topic_dqz_cht_fkc__adherence_rate" target="_blank">adherence rate</a> metric. </td>
<td class="entry cellrowborder" headers="d51e489" style="vertical-align:top;"><code class="ph codeph">(Time in adherence / Total scheduled time) x 100</code></td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d51e483" id="topic_xwv_3n4_52c__a_h_t" style="vertical-align:top;">Average handle time (AHT)</td>
<td class="entry cellrowborder" headers="d51e486" style="vertical-align:top;">Represents the average amount of time an agent spends on each ticket they
worked on. AHT doesn't include new tickets created by the agent. </td>
<td class="entry cellrowborder" headers="d51e489" style="vertical-align:top;"><code class="ph codeph">Total ticket time / Number of unique tickets with time
spent</code></td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d51e483" id="topic_xwv_3n4_52c__f_r_t" style="vertical-align:top;">First response time (FRT)</td>
<td class="entry cellrowborder" headers="d51e486" style="vertical-align:top;">
<p class="p">The first response time (FRT) measures the duration between a ticket's creation
and the first public reply from an agent. </p>
<p class="p">Note that live chat interactions do not count as public comments and will not
trigger the FRT count. If you group the data by attributes other than Ticket ID
or select a date range, you get an average first response time.</p>
</td>
<td class="entry cellrowborder" headers="d51e489" style="vertical-align:top;"><code class="ph codeph">Time of first public reply - Time ticket is created</code></td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d51e483" id="topic_xwv_3n4_52c__f_r_t_after_assignment" style="vertical-align:top;">First response time after assignment</td>
<td class="entry cellrowborder" headers="d51e486" style="vertical-align:top;">
<p class="p">The time it takes for an agent to send a public comment after a ticket is
assigned to them. </p>
<p class="p">Note that live chat or messaging interactions don't count as public comments
and won't trigger the FRT count.</p>
</td>
<td class="entry cellrowborder" headers="d51e489" style="vertical-align:top;">N/A</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d51e483" id="topic_xwv_3n4_52c__idle_time" style="vertical-align:top;">Idle time <div class="p" dir="ltr">
<div class="note note">
<span class="notetitle">Note:</span> This metric isn’t available for reports, however, it replaces <a class="xref" href="#topic_xwv_3n4_52c__untracked_time">Untracked time</a>
when <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/10114746509978" target="_blank">unified agent status synchronization</a>
is on. It can be calculated using the formulas provided here.</div>
</div>
</td>
<td class="entry cellrowborder" headers="d51e486" style="vertical-align:top;">
<a class="xref" href="https://support.zendesk.com/hc/en-us/articles/5286614817562#topic_wwb_5l1_cwb" target="_blank">Idle time</a> is the period when an agent is
not working on a ticket while in a status of online, away, transfers only, or a
<a class="xref" href="https://support.zendesk.com/hc/en-us/articles/4410525357594" target="_blank">custom unified status</a> using one of those
three <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/5133523363226#topic_vrd_ld1_4vb" target="_blank">standard statuses</a>. Tickets can still route
to the agent. <p class="p">Offline is not idle time because tickets can’t route to the
agent.</p>
</td>
<td class="entry cellrowborder" headers="d51e489" style="vertical-align:top;">To calculate idle time:<ul class="ul" id="topic_xwv_3n4_52c__ul_rrf_yxp_xjc">
<li class="li">Use the Agent activity page to view idle time duration per day in the <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/6443347506970#topic_ub5_whd_tzb" target="_blank">User summary for each agent</a>.</li>
<li class="li">
<a class="xref" href="https://support.zendesk.com/hc/en-us/articles/6443331692698#topic_mjm_nwr_3fc" target="_blank">Access the Reports page</a> and export
Agent activity. Sum status durations for Online, Away, and Transfers only
entries without ticket activity.</li>
</ul>
</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d51e483" id="topic_xwv_3n4_52c__in_adherence_time" style="vertical-align:top;">In adherence time</td>
<td class="entry cellrowborder" headers="d51e486" style="vertical-align:top;">
<p class="p">Adherence time refers to the duration an agent is in adherence.</p>
<p class="p">Agents are considered in adherence when they are clocked into a general task,
unified agent status, or workstream for which they are scheduled.</p>
</td>
<td class="entry cellrowborder" headers="d51e489" style="vertical-align:top;"> N/A</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d51e483" id="topic_xwv_3n4_52c__tickets_touched" style="vertical-align:top;">Number of tickets touched</td>
<td class="entry cellrowborder" headers="d51e486" style="vertical-align:top;">A count of all tickets where there's ticket time recorded. This is agent
activity-based and is unrelated to ticket data.</td>
<td class="entry cellrowborder" headers="d51e489" style="vertical-align:top;">N/A </td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d51e483" id="topic_xwv_3n4_52c__unique_tiquets_with_time_spent" style="vertical-align:top;">Number of unique tickets with time spent</td>
<td class="entry cellrowborder" headers="d51e486" style="vertical-align:top;">
<p class="p">Count of tickets where there's ticket time recorded for an agent. Each unique
ticket is counted only once per agent.</p>
<p class="p">If there are two agents on the same team and those two agents spend time on the
same ticket, each has a value of one unique ticket. At the team level it has a
value of one because it’s only one unique ticket.</p>
</td>
<td class="entry cellrowborder" headers="d51e489" style="vertical-align:top;">N/A </td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d51e483" id="topic_xwv_3n4_52c__out_of_adherence" style="vertical-align:top;">Out of adherence time</td>
<td class="entry cellrowborder" headers="d51e486" style="vertical-align:top;">Duration of time the agent was out of adherence. <p class="p" dir="ltr"> If the agent
is working on a general task, unified status, ticket, or a workstream that isn’t
in their schedule, the agent is considered out of adherence.</p>
</td>
<td class="entry cellrowborder" headers="d51e489" style="vertical-align:top;"> N/A</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d51e483" id="topic_xwv_3n4_52c__paid_time" style="vertical-align:top;">Paid time</td>
<td class="entry cellrowborder" headers="d51e486" style="vertical-align:top;">Same as the system report paid time metric. </td>
<td class="entry cellrowborder" headers="d51e489" style="vertical-align:top;"><code class="ph codeph">Total time - Unpaid general task or status time</code></td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d51e483" id="topic_xwv_3n4_52c__paid_general_task_time" style="vertical-align:top;">Paid general task or status time</td>
<td class="entry cellrowborder" headers="d51e486" style="vertical-align:top;">Same as the system report general task or status time. </td>
<td class="entry cellrowborder" headers="d51e489" style="vertical-align:top;">N/A</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d51e483" id="topic_xwv_3n4_52c__productive_general_task_time" style="vertical-align:top;">Productive general task or status
time</td>
<td class="entry cellrowborder" headers="d51e486" style="vertical-align:top;">Sum of time an agent tracked in a <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/6443329426330" target="_blank">general task</a> or <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/10114746509978" target="_blank">unified agent status</a> where the option to
log this general task or status as productive time is turned on under Occupancy
settings.</td>
<td class="entry cellrowborder" headers="d51e489" style="vertical-align:top;">N/A</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d51e483" id="topic_xwv_3n4_52c__productive_time" style="vertical-align:top;">Productive time</td>
<td class="entry cellrowborder" headers="d51e486" style="vertical-align:top;">Total time an agent is actively clocked in a productive state. This includes
all ticket time as well as any <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/6443329426330" target="_blank">general task</a> or <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/10114746509978" target="_blank">unified agent statuses</a> where the option to
log this general task or status as productive time is turned on under Occupancy
settings. All productive time is included in paid time.</td>
<td class="entry cellrowborder" headers="d51e489" style="vertical-align:top;"><code class="ph codeph">Ticket time (including new ticket time) + All productive general task
or status time.</code></td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d51e483" id="topic_xwv_3n4_52c__resolution_rate" style="vertical-align:top;">Resolution rate</td>
<td class="entry cellrowborder" headers="d51e486" style="vertical-align:top;">Percentage of tickets assigned to an agent compared to the number of tickets
they solve. </td>
<td class="entry cellrowborder" headers="d51e489" style="vertical-align:top;"><code class="ph codeph">(Solved ticket count / Assigned points) x 100</code></td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d51e483" id="topic_xwv_3n4_52c__solved_points_per_hour" style="vertical-align:top;">Solved points per paid hour</td>
<td class="entry cellrowborder" headers="d51e486" style="vertical-align:top;">Number of tickets an agent solved on average for each paid hour the agent
tracked. <p class="p">Paid time = Ticket time + Paid general task or status time + Untracked
time.</p>
<p class="p">This metric calculates results on a per-hour basis, even if smaller
intervals are selected for display.</p>
</td>
<td class="entry cellrowborder" headers="d51e489" style="vertical-align:top;">
<code class="ph codeph">Solved points / Paid tim</code>e</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d51e483" id="topic_xwv_3n4_52c__solved_points_per_productive_hour" style="vertical-align:top;">Solved points per productive hour</td>
<td class="entry cellrowborder" headers="d51e486" style="vertical-align:top;">Number of tickets an agent solved on average for each productive hour the
agent tracked.</td>
<td class="entry cellrowborder" headers="d51e489" style="vertical-align:top;"><code class="ph codeph">Solved points / Productive time</code></td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d51e483" id="topic_xwv_3n4_52c__bounce_rate" style="vertical-align:top;">Ticket bounce rate</td>
<td class="entry cellrowborder" headers="d51e486" style="vertical-align:top;">
<p class="p">Percentage of tickets where the agent recorded time but didn't work on
them.</p>
<p class="p">If the tickets are updated using bulk editing, it might result in a higher
number of attended tickets than touched tickets, where agents actually clocked
in. The percentage can drop below 0% if bulk editing creates more attended
points than touched tickets, but it never exceeds 100%.</p>
</td>
<td class="entry cellrowborder" headers="d51e489" style="vertical-align:top;"><code class="ph codeph">(Number of tickets touched - Attended points) / Number of tickets
touched x 100</code></td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d51e483" id="topic_xwv_3n4_52c__solved_rate" style="vertical-align:top;">Ticket solved rate</td>
<td class="entry cellrowborder" headers="d51e486" style="vertical-align:top;">Ratio of tickets solved compared to tickets handled. This helps provide a
clear picture of agent effectiveness and customer issue resolution speed.</td>
<td class="entry cellrowborder" headers="d51e489" style="vertical-align:top;"><code class="ph codeph">(Solved points / Handled points) x 100</code></td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d51e483" id="topic_xwv_3n4_52c__ticket_time" style="vertical-align:top;">Ticket time</td>
<td class="entry cellrowborder" headers="d51e486" style="vertical-align:top;">Sum of time an agent is tracked in a ticket or new ticket time. </td>
<td class="entry cellrowborder" headers="d51e489" style="vertical-align:top;">N/A</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d51e483" id="topic_xwv_3n4_52c__unpaid_general_task_time" style="vertical-align:top;">Unpaid general task or status time</td>
<td class="entry cellrowborder" headers="d51e486" style="vertical-align:top;">Sum of time an agent is tracked in a <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/6443329426330" target="_blank">general task</a> or <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/10114746509978" target="_blank">unified agent status</a> that has the option
to log as paid time turned off under Occupancy settings.</td>
<td class="entry cellrowborder" headers="d51e489" style="vertical-align:top;">N/A</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d51e483" id="topic_xwv_3n4_52c__unproductive_time" style="vertical-align:top;">Unproductive time</td>
<td class="entry cellrowborder" headers="d51e486" style="vertical-align:top;">Total time an agent is tracked in an unproductive state. This includes the
<a class="xref" href="https://support.zendesk.com/hc/en-us/articles/6443329426330" target="_blank">general tasks</a> or <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/10114746509978" target="_blank">unified agent statuses</a> where the option to
log as productive time is turned off under Occupancy settings.</td>
<td class="entry cellrowborder" headers="d51e489" id="topic_xwv_3n4_52c__unproductive_general_task_time" style="vertical-align:top;"><code class="ph codeph">Unproductive general task time or
status time + Untracked time</code></td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d51e483" id="topic_xwv_3n4_52c__entry_nbl_cvt_nfc" style="vertical-align:top;">Unproductive general task or status time</td>
<td class="entry cellrowborder" headers="d51e486" style="vertical-align:top;">Sum of time an agent is tracked in <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/6443329426330" target="_blank">general tasks</a> or <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/10114746509978" target="_blank">unified agent statuses</a> where the option to
log as productive time is turned off under Occupancy settings.</td>
<td class="entry cellrowborder" headers="d51e489" style="vertical-align:top;">N/A</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d51e483" id="topic_xwv_3n4_52c__untracked_time" style="vertical-align:top;">Untracked time</td>
<td class="entry cellrowborder" headers="d51e486" style="vertical-align:top;">Sum of time an agent is tracked while not in a general task or other
activities such as tickets, chats, and voice.</td>
<td class="entry cellrowborder" headers="d51e489" style="vertical-align:top;">N/A</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d51e483" id="topic_xwv_3n4_52c__utilization" style="vertical-align:top;">Utilization rate</td>
<td class="entry cellrowborder" headers="d51e486" style="vertical-align:top;">Percentage of paid agent time in which agents are actually logged in and
assisting or available to assist customers.<p class="p">This calculation follows <a class="xref" href="https://www.copc.com" target="_blank">COPC</a>
(Customer Operations Performance Center) standards for contact center workforce
management. </p>
<div class="p">
<div class="note tip">
<span class="tiptitle">Tip:</span> The key difference from <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/6443331680538#topic_ocb_3n4_52c__occupancy_rate" target="_blank">occupancy rate</a> is that the utilization
numerator includes untracked time, while the occupancy numerator includes only
productive activities.</div>
</div>
</td>
<td class="entry cellrowborder" headers="d51e489" style="vertical-align:top;">
<p class="p"><code class="ph codeph"><a class="xref" href="#topic_xwv_3n4_52c__ticket_time">Ticket
time</a> + <a class="xref" href="#topic_xwv_3n4_52c__productive_general_task_time">Productive general task time</a> + <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/6443376913818#topic_xwv_3n4_52c__untracked_time" target="_blank">Untracked time </a>) / (<a class="xref" href="https://support.zendesk.com/hc/en-us/articles/6443331680538-WFM#topic_ocb_3n4_52c__total_time" target="_blank">Total time</a> - <a class="xref" href="#topic_xwv_3n4_52c__unpaid_general_task_time">Unpaid
general task time</a>)</code></p>
<p class="p" dir="ltr"><strong class="ph b">Simplified</strong>: The denominator (Total time - Unpaid general task
time) = Paid time</p>
<p class="p">If you use <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/6443331692698#topic_tmj_khs_3fc" target="_blank">activity type as an attribute</a> to group
your report, the total of the grouping level above is used as the denominator in
the calculation of occupancy.</p>
</td>
</tr>
<tr class="row">
<td class="entry cellrowborder" headers="d51e483" id="topic_xwv_3n4_52c__utilization_ocr" style="vertical-align:top;">Utilization (with <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/10114746509978" target="_blank">unified agent status
synchronization</a>)</td>
<td class="entry cellrowborder" headers="d51e486" style="vertical-align:top;">
<p class="p">Percentage of paid agent time in which agents are actually logged in and
assisting or available to assist customers.</p>
<div class="p" dir="ltr">
<div class="note note">
<span class="notetitle">Note:</span> This calculation applies only to customers who have activated the <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/10114746509978" target="_blank">unified agent status integration with Zendesk
WFM</a>.</div>
</div>
<p class="p">This calculation follows <a class="xref" href="https://www.copc.com" target="_blank">COPC</a> (Customer Operations Performance Center)
standards for contact center workforce management. </p>
<div class="p">
<div class="note tip">
<span class="tiptitle">Tip:</span> The key difference from <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/6443331680538#topic_ocb_3n4_52c__occupancy_rate_ocr" target="_blank">occupancy rate</a> is that the utilization
numerator includes both productive time and idle/available time, which is why
Utilization is typically higher than Occupancy for the same agent.</div>
</div>
</td>
<td class="entry cellrowborder" headers="d51e489" style="vertical-align:top;">
<p class="p"><code class="ph codeph"><a class="xref" href="#topic_xwv_3n4_52c__ticket_time">Ticket
time</a> + <a class="xref" href="#topic_xwv_3n4_52c__idle_time">Idle
time</a> - <a class="xref" href="#topic_xwv_3n4_52c__unpaid_general_task_time">Unpaid status time</a>) / (<a class="xref" href="https://support.zendesk.com/hc/en-us/articles/6443331680538-WFM#topic_ocb_3n4_52c__total_time" target="_blank">Total time</a> - Unpaid status
time)</code></p>
<p class="p" dir="ltr"><strong class="ph b">Simplified</strong>:</p>
<p class="p" dir="ltr">Numerator: (Ticket time + Idle time - Unpaid status time) = Logged
paid time</p>
<p class="p" dir="ltr">Denominator: (Total time - Unpaid status time) = Paid time</p>
<p class="p">If you use <a class="xref" href="https://support.zendesk.com/hc/en-us/articles/6443331692698#topic_tmj_khs_3fc" target="_blank">activity type as an attribute</a> to group
your report, the total of the grouping level above is used as the denominator in
the calculation of occupancy.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<script id="docs-schema-markup" type="application/ld+json">{
"@context": "https://schema.org",
"@type": "TechArticle",
"@id": "https://support.zendesk.com/hc/en-us/articles/6443376913818",
"url": "https://support.zendesk.com/hc/en-us/articles/6443376913818",
"headline": "WFM custom report metrics",
"description": "You can use this article to review WFM custom report metrics, including point, rate, and time formulas, and to note which messaging and live chat interactions are not tracked before ticket creation.",
"articleSection": "Reporting on workforce performance (WFM add-on)",
"datePublished": "2023-11-30T20:11:12+00:00",
"dateModified": "2026-08-19T11:52:38.935313+00:00",
"inLanguage": "en",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://support.zendesk.com/hc/en-us/articles/6443376913818"
},
"author": {
"@type": "Organization",
"name": "Zendesk",
"@id": "https://www.zendesk.com"
},
"publisher": {
"@type": "Organization",
"name": "Zendesk",
"@id": "https://www.zendesk.com"
},
"isPartOf": {
"@type": "WebSite",
"name": "Zendesk Help",
"@id": "https://support.zendesk.com/hc/"
},
"about": {
"@type": "SoftwareApplication",
"name": "Zendesk",
"@id": "https://www.zendesk.com",
"softwareAddOn": {
"@type": "SoftwareApplication",
"name": "Workforce Management",
"@id": "https://support.zendesk.com/hc/en-us/sections/7156071715738"
}
}
}</script><script id="ai-summary-script">
//<![CDATA[
const ai_summary_style = document.createElement('style');
ai_summary_style.innerHTML = `#styled-article-body{padding:0 0 0}#article-body #docs-ai-summary{background-color:#f3f3f3;border:1px solid #d3d3d3;padding:10px 10px 6px;margin-bottom:16px}#article-body #docs-ai-summary #docs-ai-summary-toggle{font-size:.9em;font-weight:700;margin-bottom:4px;cursor:pointer;display:flex;justify-content:space-between;align-items:center}#article-body #docs-ai-summary #docs-ai-summary-toggle #up-triangle{margin-left:auto;padding-right:10px;display:none}#article-body #docs-ai-summary #docs-ai-summary-toggle #down-triangle{margin-left:auto;padding-right:10px}#article-body #docs-ai-summary #docs-ai-summary-content{font-size:.9em;padding-left:25px;padding-right:25px;margin-bottom:12px}`;
document.head.appendChild(ai_summary_style);

const toggleAISummary = () => {
const summary = document.getElementById("docs-ai-summary-content");
const upTriangle = document.getElementById("up-triangle");
const downTriangle = document.getElementById("down-triangle");
if (summary.style.display === "none") {
summary.style.display = "block";
upTriangle.style.display = "none";
downTriangle.style.display = "inline";
} else {
summary.style.display = "none";
upTriangle.style.display = "inline";
downTriangle.style.display = "none";
}
};

document.getElementById("docs-ai-summary-toggle").addEventListener("click", toggleAISummary);
//]]>
</script>
</body>