EnableYourData.com

KPI · Customer service

Tickets per agent: formula and example.

Tickets per agent is the number of tickets resolved in a period divided by the number of agents or FTE in customer service. It gives an indication of the team's workload and productivity and helps with staffing plans. Always read it together with quality measures such as CSAT and reopen rate.

Tickets per agent formula

Number of resolved tickets in the period ÷ number of FTE in customer service

Worked example

In March Acme Groothandel's customer service team had 8 FTE and resolved 1,150 tickets. That is 1,150 ÷ 8 = 143.75, or around 144 tickets per FTE per month.

Fictitious figures for Acme Groothandel, a sample wholesaler.

How to read this KPI

A rising number of tickets per FTE can mean the team is working more efficiently, but also that the workload is getting too high. So look at resolution time, CSAT and reopen rate at the same time. Only compare agents who handle similar tickets: whoever gets the difficult requests closes fewer per day.

Pitfalls with tickets per agent

  • Comparing agents without allowing for how difficult their tickets are.
  • Using headcount instead of FTE, or ignoring leave and sickness.
  • Managing for a high ticket count, which leads to tickets being closed too quickly and reopened more often.

SQL & DAX

Calculating tickets per agent 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', resolved_at)::date AS month,
       COUNT(*) AS resolved_tickets,
       COUNT(DISTINCT agent_id) AS active_agents,
       ROUND(COUNT(*)::numeric / NULLIF(COUNT(DISTINCT agent_id), 0), 1) AS tickets_per_agent
FROM tickets
WHERE resolved_at IS NOT NULL
  AND resolved_at >= current_date - interval '12 months'
GROUP BY 1
ORDER BY 1;
DAX · Power BI
Resolved Tickets = CALCULATE(COUNTROWS(Tickets), NOT ISBLANK(Tickets[ResolvedAt]))

Tickets per Agent =
DIVIDE([Resolved Tickets], CALCULATE(DISTINCTCOUNT(Tickets[AgentId]), NOT ISBLANK(Tickets[ResolvedAt])))

In ENABLE

Tracking this KPI in ENABLE

Plain-language questions

Ask for tickets per agent 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 tickets per agent?

Divide the number of tickets resolved in a period by the number of FTE in customer service. With 1,150 resolved tickets and 8 FTE, that is around 144 tickets per FTE per month. Use FTE and allow for absence.

What is the difference between tickets per agent and handle time?

Tickets per agent measures how many tickets someone resolves in a period, handle time how much active time each contact takes. A lower handle time allows more tickets per agent, but only if there is enough incoming work.

How many support agents do you need?

Work it out from expected inflow, average handle time and your service standards. Divide the expected number of tickets by the number one FTE can resolve at the quality you want, and keep a margin for peaks and absence.

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.