EnableYourData.com

KPI · Customer service

Average handle time (AHT): formula and example.

Average handle time (AHT) is the average time an agent actively spends on a single customer contact. For phone calls it is talk time plus hold time plus after-call work. AHT is a key input when calculating the staffing you need.

Average handle time (AHT) formula

(Total talk time + total hold time + total after-call work) ÷ number of handled contacts

Worked example

In March Acme Groothandel's customer service team answered 2,000 phone calls. Total talk time including hold was 280,000 seconds and after-call work was 80,000 seconds. AHT is (280,000 + 80,000) ÷ 2,000 = 180 seconds, or 3 minutes.

Fictitious figures for Acme Groothandel, a sample wholesaler.

How to read this KPI

A shorter AHT means each agent can handle more contacts. Shorter is not always better, though: if calls are rushed, more customers call back. So read AHT alongside FCR and customer satisfaction, and compare by type of request.

Pitfalls with average handle time (AHT)

  • Forgetting after-call work, which makes AHT too low and the staffing plan wrong.
  • Counting transferred calls twice, or not at all.
  • Managing agents on a low AHT, so questions are not fully resolved.

SQL & DAX

Calculating average handle time (AHT) in SQL and DAX

Two examples on a fictitious data warehouse for Acme Groothandel: a PostgreSQL query and a measure for a Power BI model. Adjust table and column names to your own model.

SQL · PostgreSQL
SELECT date_trunc('month', started_at)::date AS month,
       COUNT(*) AS answered_calls,
       ROUND(AVG(handle_seconds), 0) AS aht_seconds,
       ROUND(AVG(handle_seconds) / 60.0, 1) AS aht_minutes
FROM calls
WHERE NOT abandoned
  AND answered_at IS NOT NULL
  AND started_at >= current_date - interval '12 months'
GROUP BY 1
ORDER BY 1;
DAX · Power BI
Answered Calls = CALCULATE(COUNTROWS(Calls), Calls[Abandoned] = FALSE())

AHT (seconds) = DIVIDE(CALCULATE(SUM(Calls[HandleSeconds]), Calls[Abandoned] = FALSE()), [Answered Calls])

In ENABLE

Tracking this KPI in ENABLE

Plain-language questions

Ask for average handle time (AHT) per month, customer or product in the SQL Explorer with AI. The AI writes the SQL, you see the query and run it yourself; the AI only receives metadata.

Read more →

In your Power BI dashboard

Define the KPI as a measure in your Power BI model and show it in the portal, with "Last refreshed" next to it. Access profiles and optional row-level security decide who sees which figures.

Read more →

Custom dashboards (pilot)

Add the KPI as a tile to a custom dashboard, compared with last year. The Dashboard Builder is a pilot and can be switched on per client.

Read more →

Monthly targets

With the built-in Targets app you set a target for the KPI per month, so you see actuals and target side by side.

Read more →

FAQ

Frequently asked questions

How do you calculate average handle time?

Add up talk time, hold time and after-call work for all handled contacts and divide by the number of contacts. With 360,000 seconds across 2,000 calls, AHT is 180 seconds, or 3 minutes.

What is the difference between handle time and resolution time?

Handle time is only the time an agent actively spends on a contact. Resolution time is the total elapsed time of a request, including waiting on the customer or other departments. A request with an AHT of 3 minutes can therefore have a resolution time of a day.

What counts as after-call work?

After-call work is what an agent does straight after a call to finish it off, such as writing notes, updating a ticket or creating a return. It is part of handle time, because the agent cannot take a new contact during that time.

Use AI on your own data. Securely, and without the headache.

In an online demo we show how ENABLE makes your data securely available and how you build on it: describing an app in the AI Builder, plain-language questions, dashboards and APIs. And how we set it up and manage it for you.