Understanding Contact Center KPIs
What the core operational measures actually tell you.
A reference architecture: star schema modeling, a disciplined measure layer, incremental refresh, and an executive page that actually answers questions.
11 min read
Contact center data punishes lazy modeling. It is high-volume, arrives at several different grains, has attributes that change over time, and gets compared across intervals constantly. A flat table that worked fine for a sales report will fall over here within a quarter.
This is the architecture that holds up.
Most contact center models need three fact tables at three different grains, not one table trying to serve all of them:
Trying to compute service level from call-level data is the most common modeling mistake in this domain. It quietly produces a number that is close enough to look right and wrong enough to matter.
Shared dimensions are what let the three facts be analyzed together:
The date and time-of-day split matters more than it sounds. A combined datetime dimension at minute grain across three years is over 1.5 million rows and will make every time-intelligence calculation slower than it needs to be.
Contact center fact tables get wide fast. Practical rules:
A disciplined measure layer is what makes the model reusable. Some patterns specific to this domain:
Sum the numerator and denominator at the reporting grain, then divide. Never average a pre-calculated percentage:
Service Level % =
DIVIDE (
SUM ( 'Interval'[AnsweredWithinThreshold] ),
SUM ( 'Interval'[Offered] ) - SUM ( 'Interval'[ShortAbandoned] )
)
The short-abandon exclusion in the denominator is a business decision. Whichever way it goes, it belongs in one measure, documented, not re-decided per report.
AHT =
DIVIDE (
SUM ( 'Call'[TalkSeconds] )
+ SUM ( 'Call'[HoldSeconds] )
+ SUM ( 'Call'[ACWSeconds] ),
[Handled Calls]
)
With Handled Calls itself a measure, so the transfer-counting rule lives in exactly one place.
Rather than writing prior-period and year-over-year variants of thirty measures, define the time-intelligence logic once as a calculation group. It collapses the measure count dramatically and makes the behavior consistent across every report page.
Adopt a convention and hold to it — AHT, AHT PY, AHT var %. Analysts building self-service reports will reuse what they can understand and rebuild what they cannot.
Call volumes make full refresh impractical quickly. Configure incremental refresh on the call and interval facts with:
Detect data changes on a reliable modified-timestamp column where the source provides one.Three tiers, each with a job:
The most common executive-dashboard failure is putting the diagnostic content on the executive page. It produces a dense screen that no executive reads and no operator uses.
A finished implementation should hit: executive page render under two seconds on cold cache, incremental refresh completing well inside its window, every measure traceable to a single definition in the KPI dictionary, and a new report buildable by an internal analyst without touching the model.
If those four are true, the estate will survive organizational change. If they are not, the next reorganization will start the rebuild.
Model design, DAX and performance work sit at the centre of business intelligence engagements — usually preceded by the KPI governance that defines what the measures mean.
What the core operational measures actually tell you.
The three telephony metrics behind most outbound performance problems.
The most trusted and least reliable field in most contact centers.
Tell us what you’re trying to solve. We’ll help identify the data, technology and analytics required to move forward.