npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@vicistack/vicidial-agent-performance-tracking

v1.0.0

Published

VICIdial Agent Performance Tracking — ViciStack call center engineering guide

Readme

VICIdial Agent Performance Tracking

Last updated: March 2026 | Reading time: ~24 minutes You have 40 agents logged into VICIdial right now. Some of them are generating revenue. Some of them are burning your money. And unless you're tracking the right metrics, you have no idea which is which. Most call center managers track exactly two things: calls per hour and conversion rate. Those matter, but they're lagging indicators — by the time you see a bad conversion rate, the damage is done. The leading indicators — the numbers that predict performance before it shows up in revenue — are buried in VICIdial's reporting system, and almost nobody looks at them. Here's how to pull the right reports, interpret the data, and build an accountability system that tells you exactly who's working and who's pretending to work. --- ## The Reports That Matter VICIdial has dozens of built-in reports. Most of them are noise. Five of them drive management decisions. ### 1. Agent Time Detail Report Where: Reports > Agent Time Detail Script: AST_agent_time_detail.php This is the most important report for agent accountability. It breaks down every agent's time into six categories: | Metric | What It Measures | |--------|-----------------| | WAIT | Seconds the agent spent in READY state waiting for a call | | TALK | Seconds the agent was on the phone (agent screen in INCALL state) | | DISPO | Seconds the agent spent on the disposition screen | | PAUSE | Seconds the agent was paused (not available for calls) | | DEAD | Seconds after the customer hung up but before disposition screen appeared | | CUSTOMER | Seconds the agent was in a live call with the customer (TALK minus DEAD) | The critical distinction: TALK includes DEAD time. An agent who appears to have 45 minutes of talk time might have 30 minutes of customer conversation and 15 minutes of post-hangup dead air where they're just sitting in the talk screen. CUSTOMER is the real number. What to look for: Talk Time Ratio = CUSTOMER / (WAIT + TALK + DISPO + PAUSE) This tells you what percentage of logged-in time the agent spent talking to customers. Benchmarks: - Top performers: 50-60% - Average performers: 40-50% - Underperformers: Below 35% - Gaming the system: Below 25% Disposition Time should be under 30-45 seconds for most campaigns. If agents consistently take 2+ minutes in dispo, they're either: 1. Confused about which disposition code to use (training issue) 2. Using dispo time as a mini-break (accountability issue) 3. Filling out required fields in a CRM that's slow to load (system issue) Dead Time should be under 10 seconds. Extended dead time means the agent is sitting in the talk screen after the customer hung up. Some of this is inevitable (they're finishing a note), but over 15 seconds consistently indicates agents stalling before disposition. ### 2. Agent Performance Detail Report Where: Reports > Agent Performance Detail Script: AST_agent_performance_detail.php This report focuses on call outcomes rather than time allocation: | Metric | What It Measures | |--------|-----------------| | Calls | Total calls handled | | Talk Time | Total seconds in INCALL state | | Avg Talk | Average talk time per call | | Pause Time | Total pause time | | Wait Time | Total wait time | | Dispositions | Breakdown by disposition code | The disposition breakdown is where this report gets interesting. You can see exactly how each agent is dispositioning their calls: - High SALE/APPT percentage = productive agent - High NI (Not Interested) percentage = might need script coaching - High DNC (Do Not Call) percentage = normal for cold calling - High CALLBK (Callback) percentage = could be productive or could be putting off difficult calls - High HANGUP percentage = agent might be hanging up on people Compare disposition patterns between agents. If Agent A gets 12% SALE on the same list/campaign where Agent B gets 4%, the difference is almost certainly script delivery, objection handling, or attitude — not luck. ### 3. Outbound Calling Report Where: Reports > Outbound Calling Report Script: AST_OUTBOUNDcallsReport.php Campaign-level view showing: - Total dials, connects, and drops - Average talk time per call - Dials per agent per hour - Lead-to-conversion ratios This report helps you compare agent productivity at the campaign level. Sort by agent to see who's making the most dials, who's getting the most connects, and who's converting at the highest rate. ### 4. Agent Time Sheet Where: Reports > Agent Time Sheet Script: AST_agent_time_sheet.php A per-agent timeline showing every status change throughout the day. This is the detective tool. When a supervisor says "Agent X was paused for 45 minutes and claims they were on a scheduled break," pull the time sheet and verify. The time sheet shows: - Login/logout times - Every pause with pause code and duration - Every call with start time, duration, and disposition - Gaps in the timeline (network disconnections, browser crashes) ### 5. Pause Code Report Where: Reports > Agent Pause Detail Report Aggregates pause code usage across all agents. Shows: - Total time per pause code (BREAK, LUNCH, PERSONAL, TRAINING, etc.) - Average pause duration per code - Frequency of each pause code per agent If agents are spending 2 hours per shift on PERSONAL pauses when your policy allows 30 minutes, this report shows it in black and white. --- ## The Metrics That Predict Revenue Here are the numbers that correlate with revenue in outbound sales centers, based on data from VICIdial deployments we've managed: ### 1. Dials Per Agent Per Hour (DPAH) How many calls the system dials on behalf of each agent per hour. This is largely a function of campaign configuration (dial level, hopper performance) rather than agent behavior, but agents influence it through pause time and disposition speed. Benchmark: 60-120 dials per agent per hour for predictive dialing. Below 50 means something is wrong with your campaign config, not your agents. ### 2. Contacts Per Hour (CPH) How many live conversations (not voicemails, not disconnected numbers) each agent has per hour. This is DPAH multiplied by your contact rate. Benchmark: 8-15 contacts per hour for B2C cold calling. 3-8 for B2B. ### 3. Talk Time Per Hour Minutes of actual customer conversation per agent hour. This is the metric that most directly predicts revenue because you can't sell if you're not talking. Benchmark: 35-45 minutes of talk time per hour for well-run outbound operations. Below 30 means excessive pausing, slow disposition, or campaign issues. ### 4. Conversion Rate Per Contact Sales (or appointments, or qualified leads) divided by live contacts. This is the metric that separates your best agents from your worst. Benchmark: Varies wildly by industry. Insurance leads: 8-15%. Debt settlement: 3-8%. Solar: 5-12%. Home improvement: 10-20%. The spread between your best and worst agents will typically be 3-4x. If your top agent converts at 15% and your bottom agent converts at 4%, the bottom agent isn't 11 points worse — they're earning a quarter of the revenue for the same seat cost. ### 5. Revenue Per Agent Hour (RPAH) The number that matters most. Calculate it as: RPAH = CPH × Conversion Rate × Average Deal Value Example: 12 contacts/hour × 10% conversion × $300 average deal = $360/hour in gross revenue per agent. VICIdial doesn't calculate RPAH natively, but you can derive it from the Agent Performance Detail Report (calls and dispositions) combined with your CRM data (deal values). --- ## Building Agent Scorecards Raw reports are useful for managers. Scorecards are useful for agents. A well-designed scorecard tells each agent exactly where they stand compared to their peers and what they need to improve. ### Weekly Scorecard Template Pull data from the Agent Performance Detail and Agent Time Detail reports for the week. For each agent, calculate: | Metric | Weight | Agent Score | Team Average | |--------|--------|-------------|-------------| | Talk Time Per Hour | 25% | 42 min | 38 min | | Contacts Per Hour | 20% | 11.2 | 9.8 | | Conversion Rate | 30% | 12.4% | 9.1% | | Pause Rate | 15% | 11% | 14% | | Avg Disposition Time | 10% | 28 sec | 42 sec | Composite Score = Weighted sum, normalized to 0-100. Agents above 80 are your A-players. Agents below 50 need immediate intervention. ### How to Pull the Data VICIdial's reports are designed for browser viewing, not programmatic consumption. To build automated scorecards, you have two options: Option 1: Database queries (read-only access to the MySQL database) Talk time per agent: sql SELECT user, SUM(talk_epoch - wait_epoch) AS total_talk_seconds, COUNT(*) AS total_calls, ROUND(SUM(talk_epoch - wait_epoch) / COUNT(*), 1) AS avg_talk_seconds FROM vicidial_agent_log WHERE event_time >= DATE_SUB(NOW(), INTERVAL 7 DAY) AND talk_epoch > 0 GROUP BY user ORDER BY total_talk_seconds DESC; Disposition breakdown per agent: sql SELECT user, status, COUNT(*) AS count FROM vicidial_agent_log WHERE event_time >= DATE_SUB(NOW(), INTERVAL 7 DAY) GROUP BY user, status ORDER BY user, count DESC; Pause time per agent: sql SELECT user, SUM(pause_epoch - wait_epoch) AS total_pause_seconds, ROUND(SUM(pause_epoch - wait_epoch) / 3600, 1) AS pause_hours FROM vicidial_agent_log WHERE event_time >= DATE_SUB(NOW(), INTERVAL 7 DAY) AND pause_epoch > 0 AND sub_status != '' GROUP BY user ORDER BY total_pause_seconds DESC; Option 2: API exports Use the Non-Agent API's agent_stats_export function for programmatic access: bash curl -s "https://YOUR-SERVER/vicidial/non_agent_api.php?\ source=scorecard&\ user=apiuser&\ pass=API_PASSWORD&\ function=agent_stats_export&\ datetime_start=2026-03-19+00:00:00&\ datetime_end=2026-03-26+23:59:59&\ campaign_id=ALL&\ header=YES" This returns agent stats in a format you can parse with a script and feed into a spreadsheet, BI tool, or custom dashboard. --- ## Coaching Based on Data Numbers without action are just decoration. Here's how to use performance data for actual coaching: ### The 4 Agent Archetypes Type 1: High Contacts, High Conversion (Stars) - Talk time ratio: 55%+ - Conversion rate: Top 20% - Action: Leave them alone. Study their approach. Record their calls for training material. Type 2: High Contacts, Low Conversion (Busy but Broken) - Talk time ratio: 50%+ - Conversion rate: Bottom 30% - Action: Script coaching. Listen to 5 of their calls. They're getting in front of people but can't close. Usually a script delivery or objection handling problem. These agents have the hardest fix because they think activity equals productivity. Type 3: Low Contacts, High Conversion (Selective but Skilled) - Talk time ratio: Below 40% - Conversion rate: Top 30% - Action: Reduce pause time. These agents close when they talk, but they're not talking enough. Often gaming the system — long dispo times, frequent pauses, or cherrypicking callbacks. Address the behavior, not the skill. Type 4: Low Contacts, Low Conversion (Needs Help or Needs to Go) - Talk time ratio: Below 35% - Conversion rate: Bottom 30% - Action: Two-week improvement plan with daily monitoring. Pair with a Type 1 agent for ride-along listening. If no improvement in two weeks, reassign to inbound or let go. ### The Weekly Review Cadence Monday morning: Pull the previous week's scorecard data. Identify: - Top 3 agents (recognition) - Bottom 3 agents (coaching conversations) - Biggest week-over-week changes (positive and negative) Tuesday-Thursday: Run coaching sessions for the bottom 3. Listen to 3-5 of their calls. Identify specific, actionable improvements. "You're rushing the opening — slow down and ask how their day is going" beats "you need to improve your conversion rate." Friday: Spot-check real-time report adherence throughout the day. Are agents sticking to scheduled break times? Is pause rate under control? --- ## Common Performance Problems and Root Causes ### "Agents have low talk time but the campaign seems fine" Pull the Agent Time Detail. Break it down: - High PAUSE: Agents are pausing too much. Audit pause codes. - High DISPO: Agents are slow to disposition. Simplify your dispo codes or address dawdling. - High WAIT: The dialer isn't sending calls fast enough. Check dial level, hopper, and available leads. - High DEAD: Agents are sitting in the talk screen after hangup. Set dead_max in campaign settings


Read the full article

About

Built by ViciStack — enterprise VoIP and call center infrastructure.

License

MIT