Sign in

Blog · Board and management reporting · Customer service

KPIs for B2B customer service teams: ten measures that matter, each with its formula and the export it comes from

The ten KPIs a B2B customer service or support team should run on, each with its formula, the export it comes from and what it tells you: contact volume per account against its own baseline, first contact resolution per account, repeat contact rate, SLA attainment against the SLA each account signed, effort per account against revenue, silence as a churn signal, deflectable tickets by category, time to resolution by severity, backlog ageing, and cause categories that recur. Also the three measures most teams miss, the figures to drop, the identities, and who owns what.

The short answerA B2B customer service team should run on ten measures, most of them per account: contact volume against the account's own baseline; first contact resolution; repeat contact rate; SLA attainment against the SLA that account actually signed; support effort against the revenue the account pays; silence from accounts that normally make contact; deflectable tickets by category; time to resolution by severity; backlog ageing; and recurring cause categories. They come from the ticket export, the account list with revenue and contract terms, and time records where kept. The three most often missed are the per-account view itself, because team averages hide the three accounts having a terrible month; silence, because an account that stops raising tickets has often stopped using the product; and SLA attainment against each account's own contract, since a blended figure can be green while the accounts with the strictest terms are in breach.

A service team is measured on averages, and customers leave one account at a time. The measures that matter are the familiar ones, computed per account, against that account's own history and its own contract.

The ten measures

# Measure Formula Export What it tells you
1 Contact volume against own baseline Tickets in the last 30 days ÷ the account's trailing 12-month monthly average; surges and drops Ticket export; account list Accounts in trouble, and accounts gone quiet
2 First contact resolution per account Tickets resolved without reopen or follow-up ÷ tickets, per account, above a minimum count Ticket export Customers who have to ask twice
3 Repeat contact rate Tickets reopened, or raised in the same category within 14 days of a closure ÷ tickets Ticket export Fixes that did not fix
4 SLA attainment, account's own SLA Tickets meeting the response and resolution times in that account's contract ÷ tickets Ticket export; contract terms Breaches where the terms are strictest
5 Effort per account against revenue Support cost or hours ÷ account revenue Time records or handling time; revenue Accounts that cost more than they pay
6 Silence list Accounts with volume below a stated fraction of own baseline for 6 weeks, by revenue Ticket export; account list Usage that has stopped
7 Deflectable tickets How-to tickets answerable by an article ÷ tickets, by category Ticket export with category Articles worth writing
8 Time to resolution by severity Median and 90th percentile, by severity Ticket export Whether serious issues close faster than minor ones
9 Backlog ageing Open tickets by age band and owner Ticket export Where tickets wait
10 Recurring causes Categories with repeats across many accounts in the period Ticket export Product faults, with the account list attached

Every one of these is computed per account, per account and team, and in total, and every one carries an identity that must hold before the table is shown.

The three most service teams miss

The per-account view. Tools report by agent, queue and team. The account is a field few reports group by.

Silence. Nobody is alerted by a ticket that was not raised.

SLA against each account's own contract. One SLA target applied to everyone, when enterprise accounts signed for something tighter.

A worked line

The team's first contact resolution is 84 percent and SLA attainment is 96 percent. One account, the fourth largest, raised 31 tickets this month against a baseline of 9. Its first contact resolution is 45 percent, seventeen of its tickets are in one category, and its contract specifies a four-hour response that was met on 71 percent of them. Its renewal is in ten weeks. None of this appears on the team dashboard.

What to drop

Tickets closed per agent. Rewards closing, not resolving; drives repeat contact.

Average handling time as a target. Shorter calls, more of them.

A single blended SLA percentage. By account, against the contract.

The identities

Table Must hold
Tickets Tickets = first-contact resolved + repeat + open
SLA Tickets = met + breached + not yet due; every account has its SLA terms recorded
Accounts Every ticket belongs to one account; unmatched tickets are counted, not dropped
Backlog Opening + raised − closed = closing

A table whose identity fails is a table with a row missing or counted twice. It is not shown until it is fixed.

Who owns what

Measure Owner Reviewed
Surge and silence lists Head of service with account management Weekly
SLA by account; backlog ageing Team leads Weekly
First contact resolution and repeats by account; recurring causes Head of service; product Monthly
Effort against revenue; deflectable tickets Head of service; finance Quarterly

A measure with no owner is a metric, not a KPI; see KPI versus metric versus measure.

Go deeper

The short version

Ten measures, nearly all per account, from the ticket export and the account list. Watch the surges, the silences and the accounts whose own SLA is being missed. Covirage computes all of them from the exports service teams already produce, files only, with the definitions stated and the identities checked. See Covirage for customer service teams.

Questions people ask

Why per account and not per agent or team?

Because the customer experiences service as an account. A team average of 85 percent first contact resolution can include an account at 40 percent that is about to leave. Team figures manage the team; account figures protect the revenue. Both are needed, and most service reports have only the first.

How can silence be a signal?

An account that raised ten tickets a month for a year and has raised none for six weeks has either had every problem solved or stopped using the product. The second is far more common. Volume against the account's own baseline flags drops as well as surges, and the drop list goes to the account manager.

What is effort per account?

Support hours, or tickets weighted by handling time, set against the revenue the account pays. An account paying $20,000 a year and consuming $18,000 of support is either badly onboarded, on the wrong plan, or using the product for something it was not built for. Each has a different fix, and none is visible without the ratio.