Telecaller & Leads
Follow-up & Review
Manager Review & Hierarchy

Manager Review & Hierarchy

The manager review system enables supervisors at multiple hierarchy levels to monitor their team's performance, track lead conversion metrics, and identify underperforming telecallers requiring intervention.

Management Hierarchy

The organizational hierarchy determines access to performance data and review responsibilities:

Each level has specific review responsibilities:

RoleReports ToManagesReview FrequencyKey Metrics
AVPRegional Head2-4 GMsMonthlyDivisional conversion, team efficiency
GMAVP2-3 Senior ManagersWeekly/Bi-weeklyBranch conversion, manager performance
Senior ManagerGM2-4 BDOsWeeklyTeam efficiency, overdue escalations
BDOSenior Manager3-8 TelecallersDailyIndividual conversion, follow-up adherence
TelecallerBDO-Self-trackingPersonal targets, quality metrics

TeleLeaderManager & Caching

The TeleLeaderManager class maintains the mapping between managers and their assigned telecallers:

Cache Behavior

// GetManagedStaff checks cache age
public List<int> GetManagedStaff(int leaderId)
{
    if (_lastCacheRefresh.AddMinutes(_cacheExpiryMinutes) < DateTime.Now)
    {
        RefreshCache();  // 15-minute expiry
    }
 
    return _cache.ContainsKey(leaderId)
        ? _cache[leaderId]
        : new List<int>();
}

Benefits:

  • Performance: Avoids repeated database queries
  • Freshness: 15-minute window balances speed and data currency
  • Flexibility: Updates reflect new staff assignments within 15 minutes
  • Scalability: Supports large teams without N+1 query problems

Manager Review Dashboard Data Flow

Summary Statistics Per Telecaller

The FollowupBO.GetFollowupSummary() method returns aggregated metrics for each telecaller:

Calculation Formulas

ConversionRate = SVFixed / TotalLeadsAssigned * 100

PendingFollowups = COUNT(FollowupCalls)
                   WHERE StaffId = ?
                   AND IsCompleted = 0
                   AND ReviewDateTime <= NOW + 4 hours

OverdueFollowups = COUNT(FollowupCalls)
                   WHERE StaffId = ?
                   AND IsCompleted = 0
                   AND ReviewDateTime < NOW - 24 hours

EfficiencyScore = (SVFixed + CallProgress) / TotalLeadsAssigned

Team Efficiency Metrics

Managers can evaluate team performance through efficiency metrics:

Weekly Reporting - WeeklyLeadHistoryScheduler

The system runs an automated aggregation job every Tuesday at 6:00 AM to compile historical metrics at each hierarchy level:

Metrics Tracked Per Hierarchy Level

Telecaller Level (BDO Dashboard)

SELECT
    StaffId,
    COUNT(*) as TotalLeads,
    SUM(CASE WHEN Status = 'SV_FIXED' THEN 1 ELSE 0 END) as SVFixed,
    SUM(CASE WHEN Status = 'CP' THEN 1 ELSE 0 END) as CallProgress,
    SUM(CASE WHEN Status = 'TRASHED' THEN 1 ELSE 0 END) as Trashed,
    SUM(CASE WHEN Status = 'NO_RESPONSE' THEN 1 ELSE 0 END) as NoResponse,
    CAST(SUM(CASE WHEN Status = 'SV_FIXED' THEN 1 ELSE 0 END)
         as FLOAT) / COUNT(*) * 100 as ConversionRate
FROM ExternalLeads
WHERE CreatedDate >= DATEADD(DAY, -7, CAST(GETDATE() as DATE))
GROUP BY StaffId

BDO Team Level (Senior Manager Dashboard)

SELECT
    el.StaffId as BDOId,
    COUNT(DISTINCT el.LeadId) as TotalLeads,
    COUNT(DISTINCT CASE WHEN el.Status = 'SV_FIXED' THEN el.LeadId END) as SVFixed,
    COUNT(DISTINCT fc.FollowupId) as TotalFollowups,
    COUNT(DISTINCT CASE WHEN fc.IsCompleted = 1 THEN fc.FollowupId END) as CompletedFollowups
FROM ExternalLeads el
LEFT JOIN FollowupCalls fc ON el.LeadId = fc.LeadId
WHERE el.CreatedDate >= DATEADD(DAY, -7, CAST(GETDATE() as DATE))
GROUP BY el.StaffId

WeeklyLeadHistory Table Schema

Manager Dashboard Access Control

Managers can only view data for staff they directly or indirectly manage:

public async Task<ManagerDashboard> GetDashboard(int managerId)
{
    // Get staff managed by this manager (via TeleLeaderManager)
    var managedStaff = _teleLeaderManager.GetManagedStaff(managerId);
 
    // Get summary for each managed staff member
    var summaries = new List<FollowupSummary>();
    foreach (var staffId in managedStaff)
    {
        summaries.Add(await _followupBO.GetFollowupSummary(staffId));
    }
 
    // Filter historical data by hierarchy level
    var history = await _db.WeeklyLeadHistory
        .Where(h => h.HierarchyLevel == GetHierarchyLevel(managerId))
        .Where(h => managedStaff.Contains(h.StaffId))
        .OrderByDescending(h => h.WeekStartDate)
        .Take(12)  // Last 12 weeks
        .ToListAsync();
 
    return new ManagerDashboard
    {
        Summaries = summaries,
        HistoricalTrends = history
    };
}

Performance Thresholds & Alerts

Managers receive alerts when metrics fall below thresholds:

MetricWarningCriticalAction
Conversion Rate< 15%< 10%Coaching required
Overdue Follow-ups> 2> 5Immediate escalation
Response Time> 48 hrs> 72 hrsPerformance review
Follow-up Completion< 80%< 60%Reassignment review

Integration with External Reporting

Weekly data feeds into:

  • Executive Dashboards: Aggregate by division (AVP level)
  • Sales Forecasting: Conversion trends for capacity planning
  • Compliance Reports: Call attempt tracking and follow-up adherence
  • Payroll Integration: Performance bonuses based on SVFixed metrics