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:
| Role | Reports To | Manages | Review Frequency | Key Metrics |
|---|---|---|---|---|
| AVP | Regional Head | 2-4 GMs | Monthly | Divisional conversion, team efficiency |
| GM | AVP | 2-3 Senior Managers | Weekly/Bi-weekly | Branch conversion, manager performance |
| Senior Manager | GM | 2-4 BDOs | Weekly | Team efficiency, overdue escalations |
| BDO | Senior Manager | 3-8 Telecallers | Daily | Individual conversion, follow-up adherence |
| Telecaller | BDO | - | Self-tracking | Personal 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) / TotalLeadsAssignedTeam 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 StaffIdBDO 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.StaffIdWeeklyLeadHistory 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:
| Metric | Warning | Critical | Action |
|---|---|---|---|
| Conversion Rate | < 15% | < 10% | Coaching required |
| Overdue Follow-ups | > 2 | > 5 | Immediate escalation |
| Response Time | > 48 hrs | > 72 hrs | Performance 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