The 5 KPIs Every Service Team Should Track (and the 3 Most Get Wrong)

FCR, AHT read with quality, service level, segmented CSAT, and occupancy used carefully, plus the 3 mistakes that quietly break most KPI dashboards.

Every service and contact-center team I have worked with already tracks KPIs. That was never the problem. The problem is usually that half of them are tracking the wrong things, or tracking the right things in a way that quietly lies to them.

I have spent years building KPI frameworks and reporting for service and contact-center environments, and the patterns repeat everywhere. So here are the 5 KPIs I think actually matter, and 3 mistakes I see constantly, even from teams that consider themselves data driven.

The 5 KPIs worth tracking

1. First Contact Resolution (FCR)

If a customer has to come back a second time for the same issue, something in your process failed, regardless of how fast that first contact was. FCR tells you whether your team is actually solving problems or just closing tickets quickly and pushing the real resolution downstream.

The catch is defining what “same issue” means in your system. If your ticketing tool does not have a clean way to flag repeat contacts, you need to build that logic yourself, usually by matching customer ID and category within a set time window (7 days is common, but it depends on your business).

2. Average Handle Time (AHT), read alongside quality

AHT by itself tells you almost nothing useful. A team that rushes through calls and creates rework will have a great AHT and a terrible FCR. I only look at AHT next to quality and resolution metrics, never alone. If AHT is dropping while FCR and CSAT hold steady or improve, that is a real efficiency gain. If AHT drops and FCR drops with it, you have a coaching problem, not a process win.

3. Service Level

The classic “X% of contacts answered within Y seconds.” It matters because it is one of the few KPIs customers actually feel directly, but it is also one of the easiest to game or misreport if your interval definitions are inconsistent across queues or channels.

Make sure everyone reporting on service level agrees on the same threshold and the same measurement window before you put it on a dashboard. I have seen two departments in the same company report different service level numbers for the exact same queue, simply because one excluded abandoned calls from the denominator and the other did not.

4. Customer Satisfaction (CSAT), segmented

A single CSAT average across the whole operation hides more than it reveals. What matters is CSAT by queue, by issue type, and ideally by agent tenure band. A stable overall CSAT can mask a specific queue or issue category that is quietly dragging customers to the edge of leaving.

5. Agent Occupancy (used carefully)

Occupancy tells you how much of an agent’s logged-in time is spent actually handling contacts versus waiting. It is a genuinely useful staffing and forecasting metric. It is also one of the most misused, because leadership sometimes treats it as a productivity score for individual agents rather than what it actually is: a signal about workload distribution and staffing accuracy at the team or queue level.

The 3 mistakes I see most often

Mistake 1: Averaging percentages

This one comes up constantly in Power BI and Excel reports alike. If you have service level by day and you average those daily percentages to get a monthly number, you are calculating the wrong thing. A day with 50 calls and a day with 5,000 calls should not carry equal weight in your monthly figure, but a simple average of percentages treats them as if they do.

The correct approach is to calculate the underlying numerator and denominator across the whole period, then divide once. In DAX, that usually means writing the measure as a true ratio (SUM of contacts answered within threshold, divided by SUM of total contacts), never as an AVERAGE of a pre-calculated percentage column.

Mistake 2: Ignoring seasonality in trend lines

A month-over-month trend line that does not account for call volume seasonality, staffing changes, or even the number of business days in each month will send leadership the wrong signal more often than the right one. I have seen a “declining performance” trend get flagged in a leadership meeting that was really just a shorter month with two extra public holidays.

Before you present a trend as good or bad news, check whether the underlying volume or staffing context changed enough to explain it on its own. If it does, say so directly rather than let the trend line speak for itself.

Mistake 3: Reporting individual metrics without context or a target

A number without a benchmark is just a number. “AHT is 6 minutes 40 seconds” tells a leadership team nothing on its own. Compared against last month, against target, against a similar team, it becomes information. Every KPI on a dashboard should sit next to something that gives it meaning, whether that is a target line, a prior period comparison, or a peer group average. Otherwise you are just producing numbers, not reporting.

Where to go from here

None of these five KPIs are exotic. What separates a useful reporting setup from a decorative one is whether the definitions are consistent, whether the metrics are read together instead of in isolation, and whether the math behind them is actually correct. That last part sounds obvious, but it is the one I have to fix most often when I open up someone else’s Power BI file or Excel report.

If you want to check your own setup, pick one KPI from your current dashboard and ask yourself honestly: do I know exactly how this number is calculated, and would it survive someone auditing the formula line by line. If the answer is no, that is where to start.