We’ve added 3 new metrics to Assembled to help you measure the time agents spend on Zendesk tickets.

- **Agent average handle time (solved)** → The average time an agent spent on solved tickets. This is calculated with the formula `agent ticket time (solved) / agent tickets touched (solved)` using the metrics below.
- **Agent ticket time (solved)** → The total time an agent spent in the Online (Tickets) state for solved tickets. The agent only needs to view the ticket, not be the agent that solves the ticket.
- **Agent tickets touched (solved)** → The number of solved unique tickets an agent viewed. The agent only needs to view the ticket, not be the agent that solves the ticket. An agent can receive one tickets touched (solved) per ticket.

On the [**Team performance**](https://app.assembledhq.com/reports/team-performance) page, you can enable the new metrics by selecting **Select metrics** and choosing any metrics you'd like to add.

On the agent scorecard, you can enable the new metrics by selecting **View settings**.

### AHT methodology

Our methodology for this metric focuses on assessing the time agents spend on tickets across various channels and queues. Through these metrics, we aim to uncover:

- The distribution of agent time across different channels and queues
- The duration spent by agents in each channel and queue

The Assembled Zendesk app captures handle times that reflect the agent’s ticket navigation pattern.

- The timer starts when an agent enters the Online (Tickets) state and views a ticket.
- We end time tracking for the current ticket and begin time tracking for the next ticket when an agent switches to another ticket.
- We stop time tracking when the agent leaves the Online (Tickets) state.

### Understanding AHT

The new handle time metric is computed using 2 pieces of information:

- **Agent states** → captured by Assembled’s Zendesk App to capture the handle times and tickets touched
- **Zendesk ticket data** → pulled from Zendesk to capture which queues and channels the handle times belongs to.

Let's dive into an example. Lets say we have the following ticket information provided by Zendesk

| Ticket ID | Channel | Queue |
| --- | --- | --- |
| 1 | chat | T1 |
| 2 | email | T2 |
| 3 | chat | T1 |

Now lets say an agent named Adam, started at 1 p.m. and worked:

- 10 minutes on ticket 1
- 20 minutes on ticket 2
- 10 minutes on ticket 1
- 20 minutes on ticket 3

During this time, Adam solved ticket 1 and 2, but ticket 3 is left open.

Assembled’s Zendesk app would capture the following agent states:

| Agent | Start | End | Ticket ID |
| --- | --- | --- | --- |
| agent Adam | 1:00pm | 1:10pm | 1 |
| agent Adam | 1:10pm | 1:30pm | 2 |
| agent Adam | 1:30pm | 1:40pm | 1 |
| agent Adam | 1:40pm | 2:00pm | 3 |

Combining ticket and agent state data, we would get:

| Agent | Start | End | Duration | Ticket ID | Channel | Queue |
| --- | --- | --- | --- | --- | --- | --- |
| agent Adam | 1:00pm | 1:10pm | 10min | 1 | chat | T1 |
| agent Adam | 1:10pm | 1:30pm | 20min | 2 | email | T2 |
| agent Adam | 1:30pm | 1:40pm | 10min | 1 | chat | T1 |
| agent Adam | 1:40pm | 2:00pm | 20min | 3 | chat | T1 |

So our `metrics` would show.

| Agent | Channel | Agent average handle time (solved) | Agent ticket time (solved) | Agent tickets touched (solved) |
| --- | --- | --- | --- | --- |
| agent Adam | chat | 20min | 20min | 1 |
| agent Adam | email | 20min | 20min | 1 |

Please note: We do not count handle time for ticket 3 because it was not marked as solved.

### How AHT is aggregated

AHT is aggregated on to the time of solve. Lets say Adam has the following handle times:

- 1hr on Dec 1, changes ticket from new to open
- 1hr on Dec 2
- 1hr on Dec 5, changes ticket from open to solved

Then the metrics would be summed and shown on Dec 5.

|  | Dec 1 | Dec 2 | Dec 5 |
| --- | --- | --- | --- |
| Agent average handle time (solved) | 0 hr | 0 hr | 3 hrs |
| Agent ticket time (solved) | 0 hr | 0 hr | 3 hrs |
| Agent tickets touched (solved) | 0 | 0 | 1 |

If the ticket is reopened and then solved again, the metrics will be aggregated on the interval of the final solve (the latest solve).

### Frequently asked questions

- How do these new metrics affect the rest of the Assembled app?
  - These new metrics do not impact any other features in the Assembled app.
  - There is already an existing average handle time metric that will not be changed, for now.
  - The new AHT does not feed into forecasting
- What channels and platforms are the new metrics available for?
  - These metrics are computed based on agent state data collected from the Assembled Zendesk app and are only available for Zendesk channels like Chat, Email, Phone, Messaging.
- How does `Agent tickets touched (solved)` differ from `Cases solved`?
  - `Cases solved` counts the amount of cases an agent solved. However `Agent tickets touched (solved)` tells you the amount of cases that an agent worked on that eventually was solved. The agent does not need to solve the ticket, they just need to have viewed it.
- How does `Agent average handle time (solved)` differ from the existing `Average handle time`?
  - The existing `Average handle time` measures handle time from the ticket perspective whereas the new `Agent average handle time (solved)` measures handle time from the agent perspective. The new AHT uses agent states to calculate how much time an agent spent working on tickets which is different from the current AHT which measures how long a ticket took to resolve.
- **How can I make my agent state data more accurate?**

The Assembled team has been hard at work to improve time tracking data and we have a few new tools that can help you increase accuracy.
  - Have your agents install the [Assembled chrome extension](https://support.assembled.com/hc/en-us/articles/13799175384205-Best-practices-for-accurate-Zendesk-Agent-States) for better agent state tracking.

- Use [agent state exclusions](https://support.assembled.com/hc/en-us/articles/19380857079565-End-of-shift-state-exclusions) to fix agent states that are too long when an agent forgets to log out.
  - To help with undercounting AHT, we can configure your Assembled Zendesk app to maintain ticket states. Enabling this feature will count time spent outside of Zendesk towards the previously opened ticket.
