@vicistack/contact-center-kpis
v1.0.0
Published
The Only Call Center Metrics That Actually Drive Revenue — ViciStack call center engineering guide
Maintainers
Readme
The Only Call Center Metrics That Actually Drive Revenue
Why Most Contact Centers Track the Wrong Metrics Every contact center has a dashboard. Most of them are useless. Not because the data is wrong -- it's usually accurate enough. The problem is that most operations track metrics without understanding which ones actually drive outcomes and which ones are just noise. A manager staring at 40 real-time stats is a manager who can't tell what's going wrong until it's already cost them money. What we've seen across hundreds of VICIdial deployments: the centers that outperform track fewer metrics, but they track the right ones, at the right level, at the right frequency. They understand that some KPIs are leading indicators you can act on today and others are lagging indicators that tell you what already happened. They know the difference between an agent-level problem and a campaign-level problem. And they don't waste time watching numbers that don't connect to revenue. Below we cover every KPI that matters for outbound, inbound, and blended contact center operations. For each metric, you'll get the formula, industry benchmarks, where to find it in VICIdial's reporting, and -- more to the point -- what to actually do when the number moves in the wrong direction. If you already know your CPL inside and out, good. If you don't, start with our cost per lead benchmarks guide and come back here for the full picture. ## The KPI Hierarchy: Leading vs. Lagging Indicators Before diving into individual metrics, you need a framework for thinking about them. Not all KPIs are created equal, and treating them as a flat list is how you end up micromanaging talk time while your conversion rate craters. ### Lagging Indicators (Outcome Metrics) These tell you what already happened. They're the scorecard. You can't directly change them -- you change them by moving the leading indicators that feed into them. - Cost Per Lead (CPL) -- the fully loaded cost to produce one qualified lead - Revenue Per Lead -- the average revenue generated per qualified lead - ROI / ROAS -- return on investment or return on ad spend for the operation - Customer Satisfaction (CSAT) -- post-interaction satisfaction score - Net Promoter Score (NPS) -- likelihood to recommend ### Leading Indicators (Operational Metrics) These are the metrics you can act on right now. When they move, the lagging indicators follow -- usually within days or weeks. - Contact Rate -- percentage of dials reaching a live human - Conversion Rate -- percentage of contacts that produce a qualified outcome - Calls Per Hour / Dials Per Hour -- throughput velocity - Average Handle Time (AHT) -- total time per interaction - First Call Resolution (FCR) -- percentage of issues resolved on the first contact - Agent Occupancy / Utilization -- percentage of paid time spent on productive work - Service Level / SLA -- percentage of calls answered within a target threshold - Abandon Rate -- percentage of callers who hang up before reaching an agent ### The Causal Chain This is how leading indicators flow into lagging ones for a typical outbound operation: Dials Per Hour x Contact Rate = Contacts Per Hour Contacts Per Hour x Conversion Rate = Leads Per Hour Total Cost / Total Leads = Cost Per Lead Revenue Per Lead - Cost Per Lead = Profit Per Lead Every metric in this article connects to this chain somewhere. When a lagging indicator moves in the wrong direction, you trace back through the chain to find the leading indicator that broke. That's the metric you fix. ## Outbound KPIs: Every Metric That Matters Outbound operations live and die on throughput and conversion. The goal is simple: put agents in front of as many qualified prospects as possible and convert those conversations into outcomes. Every outbound KPI measures some aspect of that equation. ### Dials Per Hour (DPH) Formula: Total Dials / Total Agent Hours What it measures: Raw dialing throughput -- how many calls your dialer is generating per agent per hour. Benchmarks: | Dialer Mode | DPH Range | Typical DPH | |---|---|---| | Manual / Click-to-Call | 20 - 40 | 30 | | Preview | 30 - 60 | 45 | | Progressive | 50 - 90 | 70 | | Predictive (10+ agents) | 100 - 250 | 180 | | Predictive (25+ agents, optimized) | 150 - 350 | 220 | Where to find it in VICIdial: Admin > Reports > Outbound Calling Report. The "Dialable Leads" and "Calls" columns divided by logged-in agent hours give you DPH. Also visible on the Real-Time Report as live dialing velocity. If you want a quick per-agent breakdown outside the GUI, you can query it directly: sql SELECT vl.user, COUNT(*) AS total_dials, ROUND(COUNT(*) / (TIMESTAMPDIFF(MINUTE, MIN(vl.call_date), MAX(vl.call_date)) / 60.0), 1) AS dph FROM vicidial_log vl WHERE vl.call_date >= CURDATE() AND vl.campaign_id = 'SALESCMP' GROUP BY vl.user ORDER BY dph DESC; What to do when it's off: Low DPH on a predictive dialer almost always means one of three things: hopper starvation (not enough leads loaded), trunk bottleneck (not enough SIP channels), or overly conservative dialing ratios. Check the hopper level first -- if it drops below 2x your agent count, the dialer can't keep pace. ### Calls Per Hour (CPH) Formula: Total Calls Handled / Total Agent Hours What it measures: The number of calls an agent actually handles per hour, including conversations, voicemails delivered to agents, and quick dispositions. This is distinct from DPH because not every dial results in a call the agent touches. Benchmarks: 15-40 handled calls per hour for outbound agents on predictive dialers, depending on AMD configuration and contact rate. If AMD is filtering voicemails effectively, most handled calls should be live contacts. Where to find it in VICIdial: Agent Performance Detail report shows calls handled per agent per hour. The Agent Time Detail report breaks this down further by pause time, wait time, talk time, and disposition time. What to do when it's off: If DPH is high but CPH is low, your AMD is catching most voicemails (good) but contact rate is low (needs investigation). If both are low, it's a dialer configuration or list exhaustion problem. ### Contact Rate Formula: Live Contacts / Total Dials x 100 What it measures: The percentage of dials that result in a live human answering the phone. This is the single most important throughput metric in outbound dialing. Everything downstream multiplies after contact rate. Benchmarks: | Data Type | Contact Rate Range | Median | |---|---|---| | Fresh inbound leads (0-7 days) | 18 - 35% | 25% | | Warm data (7-30 days) | 12 - 22% | 16% | | Aged data (30-90 days) | 8 - 15% | 11% | | Cold purchased lists | 4 - 10% | 7% | | Recycled / multi-pass | 3 - 8% | 5% | Where to find it in VICIdial: Outbound Calling Report shows total dials and human-answered calls per campaign. For a more granular view, the Campaign Calls Detail report breaks out disposition codes -- filter to "human answered" dispositions and divide by total dials. What to do when it's off: Contact rate is driven by data quality, DID reputation, time-of-day dialing strategy, and AMD configuration. If contact rate drops suddenly, check your DID reputation first -- flagged numbers can cut contact rate in half overnight. For a systematic approach, see our VICIdial reporting guide. ### Conversion Rate Formula: Qualified Outcomes / Live Contacts x 100 What it measures: The percentage of live conversations that produce a qualified lead, sale, appointment, or other desired outcome. Benchmarks: | Vertical | Conversion Rate Range | Median | |---|---|---| | Home Services | 6 - 12% | 8% | | Solar (Residential) | 4 - 8% | 6% | | Insurance (Medicare/ACA) | 3 - 7% | 5% | | Debt Settlement | 2 - 5% | 3.5% | | B2B Appointment Setting | 1 - 4% | 2.5% | Where to find it in VICIdial: Campaign Status report shows disposition counts by status category. Define your "qualified" dispositions (e.g., SALE, APPT, XFER) and divide by total human-answered calls. The Agent Performance Detail report shows conversion rate by agent. What to do when it's off: Conversion is a human problem -- scripts, training, objection handling, and offer-market fit. But before blaming agents, check if the data changed. A shift from warm leads to cold lists will crater conversion even with the same agents running the same script. ### Average Handle Time (AHT) Formula: (Total Talk Time + Total Hold Time + Total After-Call Work Time) / Total Calls Handled What it measures: The average total time spent on each interaction, from the moment the call connects to the moment the agent is ready for the next call. Benchmarks: | Call Type | AHT Range | Typical AHT | |---|---|---| | Outbound lead qualification | 90 - 180 sec | 120 sec | | Outbound appointment setting | 180 - 360 sec | 240 sec | | Outbound sales (close on call) | 300 - 900 sec | 480 sec | | Inbound customer service | 240 - 480 sec | 360 sec | | Inbound technical support | 420 - 900 sec | 600 sec | Where to find it in VICIdial: Agent Time Detail report shows average talk time, hold time, and disposition time per agent. The Campaign Calls Detail report gives you aggregate AHT at the campaign level. Note that VICIdial tracks "Talk," "Dispo," and "Pause" as separate time categories -- you need to add Talk + Dispo to get true AHT. What to do when it's off: AHT is tricky because both too high and too low are problems. High AHT means agents are spending too long on non-converting calls (tighten the script, add qualification gates earlier). Low AHT might mean agents are rushing through calls and not properly qualifying (check conversion rate -- if both AHT and conversion dropped, agents are cutting corners). ### Agent Talk Time Ratio Formula: Total Talk Time / Total Logged-In Time x 100 What it measures: The percentage of an agent's shift spent in actual live conversation. This is the purest measure of dialer efficiency and the metric that separates a well-tuned operation from a wasteful one. Benchmarks: | Configuration | Talk Time Ratio | |---|---| | Manual dialing | 15 - 22% | | Preview dialer | 22 - 32% | | Progressive dialer | 30 - 40% | | Predictive dialer (default config) | 35 - 45% | | Predictive dialer (optimized) | 45 - 55% | | Predictive dialer (aggressive, 25+ agents) | 50 - 65% | Where to find it in VICIdial: Real-Time Report shows current talk/wait/pause status per agent. For historical data, the Agent Time Detail report breaks down total time by category. Calculate: Talk Time / (Talk Time + Wait Time + Pause Time + Dispo Time). What to do when it's off: If talk time ratio is below 35% on a predictive dialer, you're leaving money on the table. Check dial ratios, hopper size, trunk availability, and list penetration. A well-tuned VICIdial predictive dialer should deliver 42-50 minutes of talk time per hour with 15+ agents. For specifics on tuning, see our VICIdial reporting and monitoring guide. ### Occupancy Rate Formula: (Talk Time + Hold Time + After-Call Work) / (Talk Time + Hold Time + After-Call Work + Available/Idle Time) x 100 What it measures: The percentage of an agent's available time that is actually spent handling interactions. Unlike talk time ratio, occupancy excludes scheduled breaks and pause codes -- it only counts time when the agent was available and ready for calls. Benchmarks: 80-90% for outbound predictive dialing. 75-85% for inbound operations. Sustained occupancy above 90% leads to agent burnout and increased turnover. Below 75% on outbound indicates dialer inefficiency or list exhaustion. Where to find it in VICIdial: Not directly reported as a single metric. Calculate from Agent
About
Built by ViciStack — enterprise VoIP and call center infrastructure.
- VICIdial Hosting & Optimization
- Call Center Performance Guides
- Full Article: The Only Call Center Metrics That Actually Drive Revenue
License
MIT
