Blog · Board and management reporting · Customer service
Build a customer service dashboard from ticket and account exports. Follow the worksheet formulas, account review layout, and reconciliation checks for backlog, resolution, SLA attainment, and repeat issues.
A customer service dashboard turns ticket exports into a dated account review: what remains open, how long completed cases took, which commitments were met, and which issues returned. Build the totals from individual tickets, then use account exceptions to decide who needs help and what needs fixing.
The first view should answer where service needs attention. Put open workload and overdue cases beside completed-ticket performance, then provide the account rows beneath them. A falling resolution average has little value if the difficult cases remain open.
Choose the measures before choosing charts. The existing KPIs for B2B customer service teams explains the broader measure set; this workflow assembles a smaller review from those definitions. The customer service dashboard template provides a copyable worksheet structure.
Use one timezone and a period with an inclusive start and exclusive end. In the example, the period runs from March 1, 2026, at midnight through just before March 8, 2026, at midnight, UTC. All dates below represent midnight. Preserve timestamps in a real export.
Export ticket ID, account ID, opened timestamp, final resolved timestamp, applicable resolution target, and a repeat-issue flag. Add severity, category, and queue when they explain different workloads. Join account ownership from a separate account list without multiplying ticket rows.
This example uses elapsed calendar hours and no paused clocks. A repeat flag means a new ticket is explicitly linked to the same account and issue as an earlier contact within the team's documented follow-up window. It is not inferred from a similar subject line.
| Ticket | Account | Opened | Resolved | Target (hours) | Repeat flag |
|---|---|---|---|---|---|
| T101 | Alder | February 27 | March 2 | 72 | 0 |
| T102 | Birch | February 28 | Blank | 72 | 0 |
| T103 | Alder | March 1 | March 2 | 48 | 0 |
| T104 | Birch | March 3 | March 6 | 48 | 1 |
| T105 | Alder | March 5 | Blank | 48 | 0 |
| T106 | Birch | March 7 | Blank | 48 | 0 |
Blank resolution dates mean unresolved. They must remain blank, rather than becoming an old default date. A missing target is a data exception; it cannot establish compliance.
Place the input columns in A:F, starting in row 2. Put the start timestamp in Controls!B2 and the cutoff in Controls!B3. Add these helper columns and copy the formulas through row 7:
G2 ClosedInPeriod
=--AND(ISNUMBER(D2),D2>=Controls!$B$2,D2<Controls!$B$3)
H2 OpenAtCutoff
=--AND(C2<Controls!$B$3,OR(D2="",D2>=Controls!$B$3))
I2 ResolutionHours
=IF(G2=1,(D2-C2)*24,"")
J2 OpenAgeDays
=IF(H2=1,Controls!$B$3-C2,"")
K2 CompletedSLAMet
=IF(G2=1,--(I2<=E2),"")
L2 NewInPeriod
=--AND(C2>=Controls!$B$2,C2<Controls!$B$3)
These formulas require real spreadsheet timestamps and validated targets. Tickets closed exactly at the cutoff remain open in this snapshot and enter the following period's closures.
Put an account name in N2. Count its completed tickets with the following formula. Microsoft documents COUNTIFS as applying criteria across ranges and counting qualifying occurrences.
=COUNTIFS($B$2:$B$7,N2,$G$2:$G$7,1)
Calculate the same account's mean completed resolution time as follows. AVERAGEIFS averages cells meeting the specified criteria.
=IFERROR(AVERAGEIFS($I$2:$I$7,$B$2:$B$7,N2,$G$2:$G$7,1),"")
Covirage is not affiliated with Microsoft.
Count opening tickets using the same open-ticket test at the start timestamp. Count new tickets from column L, closures from G, and closing backlog from H. The resulting review is:
| Account | Opening | New | Closed | Closing | Mean resolution (hours) | Completed SLA met | Repeat share of new tickets |
|---|---|---|---|---|---|---|---|
| Alder | 1 | 2 | 2 | 1 | 48.0 | 2 / 2 = 100.0% | 0 / 2 = 0.0% |
| Birch | 1 | 2 | 1 | 2 | 72.0 | 0 / 1 = 0.0% | 1 / 2 = 50.0% |
| Total | 2 | 4 | 3 | 3 | 56.0 | 2 / 3 = 66.7% | 1 / 4 = 25.0% |
Resolution durations are 72, 24, and 72 hours, totaling 168 hours; 168 / 3 = 56.0. Calculate the total from ticket durations, rather than averaging account averages. Percentages and durations are rounded to one decimal place after calculation.
The backlog identity is opening + new - closed = closing: 2 + 4 - 3 = 3. It also holds for every account. A reopened-ticket population needs reopening events added to the bridge; this example has no reopenings or cancellations.
Completed SLA attainment describes only closures. It must sit beside unresolved commitments: T102 is eight days old against a 72-hour target, T105 is three days old against 48 hours, and T106 is one day old against 48 hours. There are two overdue open tickets. The three closing tickets also reconcile into one aged under three days, one aged three to under seven days, and one aged seven days or more.
Give every exception an owner, a next step, and a review date. Birch needs a service lead to examine its overdue case and repeated issue. Alder needs action on its overdue open ticket despite meeting every completed-ticket target. Those are different interventions.
Show a short exception table before adding more charts. Include ticket ID, account, age, commitment, cause category, and responsible person. Use SLA reporting from ticket history when contracts use business hours, pauses, or multiple service events. A simple timestamp subtraction cannot reproduce those clocks.
Bring your ticket export and account list to Covirage. Covirage maps the columns, its tools compute and check the workload and account comparisons, and the external AI model explains the results with every figure traced to its rows. Create a free Covirage account and bring a sample of your own data.
See Covirage for customer service teams for the account review context.
Review open workload and overdue tickets frequently enough to assign action before commitments are missed. Use a consistent weekly meeting for account exceptions and a monthly review for recurring causes. Keep the reporting cutoff visible so people know exactly which records the figures include.
No. An unresolved ticket has no final resolution duration. Measure resolution time on a defined completed-ticket population, and show open-ticket age separately. Otherwise an improving average can hide old cases that remain unresolved and never enter the completed-ticket denominator.
A service dashboard centers on tickets, commitments, and workload. A broader customer dashboard can combine revenue, purchasing, account coverage, and service measures. Keep the service review focused on decisions its owners can make, with links to broader account information when needed.