Blog · Board and management reporting · Customer service
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.
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.
| # | 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 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.
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.
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.
| 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.
| 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.
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.
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.
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.
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.