{{ getTabTitle(currentTab) }}
{{ currentUser.name }}
Platform Overview
Workspaces
(Tenants)
{{ saasStats.totalWorkspaces }}
+{{ saasStats.newWorkspaces }} in periodAll active
Total Users
(ROs)
{{ saasStats.totalUsers }}
{{ saasStats.activeUsers }} active in period
Files Logged
(Usage)
{{ saasStats.totalFiles }}
In selected periodAll time files
Total System
Records
{{ saasStats.filesAllTime }}
Total lifetime files
Platform Growth (Last 30 Days)
Workspace Health & Usage
| Workspace / Tenant | Status | Seats (ROs) | Usage (Files) | Last Active | Actions |
|---|---|---|---|---|---|
|
{{ workspace.name }}
ID: {{ workspace.id }}
|
{{ workspace.status }} | {{ workspace.roCount }} | {{ workspace.fileCount }} | {{ workspace.lastActive ? formatDate(workspace.lastActive) : 'Never' }} | |
| No workspaces registered yet. | |||||
Global System Announcement
Set a message to display as a banner at the top of the app for all users. Leave blank to remove.
Global User Directory
{{ group.workspace.name }}
Tenant ID: {{ group.workspace.id }} • Users: {{ group.smUsers.length + group.roUsers.length }}
| Name / Email | Role | Performance | Status | Actions |
|---|---|---|---|---|
|
{{ user.name }}
{{ user.email || 'N/A' }}
|
Sales Mgr |
{{ user.fileCount || 0 }} Files
{{ user.lastActive ? new Date(user.lastActive).toLocaleDateString() : 'Never Active' }}
|
{{ user.status || 'ACTIVE' }} | |
|
{{ user.name }}
{{ user.email || 'N/A' }}
|
Officer (RO) |
{{ user.fileCount || 0 }} Files
{{ user.lastActive ? new Date(user.lastActive).toLocaleDateString() : 'Never Active' }}
|
{{ user.status || 'ACTIVE' }} |
Overview Dashboard
Total Files
{{ stats.totalFiles }}
₹{{ formatCurrency(stats.totalValue) }}
Approved
{{ stats.approvedCount }}
₹{{ formatCurrency(stats.approvedAmount) }}
Disbursed
{{ stats.disbursedCount }}
₹{{ formatCurrency(stats.disbursedAmount) }}
In Process (FI)
{{ stats.loginCount }}
₹{{ formatCurrency(stats.loginAmount) }}
Rejected
{{ stats.rejectedCount }}
₹{{ formatCurrency(stats.rejectedAmount) }}
Approval Rate
{{ stats.approvalRate }}%
Apprv. + Disb.
RO Performance Leaderboard
Click any RO to open their 360° Cockpit and 1-tap WhatsApp nudges.
| RO Name | Total Files | Approved/Disbursed | Conversion | Total Pipeline | Disbursed Amount | Action |
|---|---|---|---|---|---|---|
|
{{ ro.name ? ro.name.charAt(0).toUpperCase() : 'R' }}
{{ ro.name }}
|
{{ ro.totalFiles }} | {{ ro.approvedFiles }} | {{ ro.conversionRate }}% | ₹{{ formatCurrency(ro.totalAmount) }} | ₹{{ formatCurrency(ro.disbursedAmount) }} | |
| No RO data available. | ||||||
{{ ro.name }}
{{ ro.conversionRate }}% ConvRecent Activity
Latest 5 files| Customer Name | Loan Amount | Status | RO Name | Date |
|---|---|---|---|---|
| {{ file.customerName }} | ₹{{ formatCurrency(file.loanAmount) }} | {{ file.status }} | {{ file.roName }} | {{ formatDate(file.createdAt) }} |
| No recent activity found. | ||||
{{ file.customerName }}
| App ID | Customer Name | Category | Channel | Loan Amount | Status | RO Name | SM Name | Login Date | Last Updated | Action |
|---|---|---|---|---|---|---|---|---|---|---|
| #{{ file.appId || 'No ID' }} | {{ file.customerName }} | {{ file.nclUcl || '-' }} | {{ file.sourcingChannel || 'DSA' }} | ₹{{ formatCurrency(file.loanAmount) }} | {{ file.status }} | {{ file.roName }} | {{ file.smName || '-' }} | {{ file.loginDate ? formatDateOnly(file.loginDate) : formatDateOnly(file.createdAt) }} | {{ formatDate(file.updatedAt || file.createdAt) }} |
|
|
No files found for {{ getTimelineLabel(roFilters.timeline) }} {{ roFilters.timeline === 'today' && allFiles.length > 0 ? 'There are files logged on other dates.' : 'Try adjusting your search, status, or filters.' }} |
||||||||||
{{ file.customerName }}
No files for {{ getTimelineLabel(roFilters.timeline) }}
{{ roFilters.timeline === 'today' && allFiles.length > 0 ? 'There are files logged on other dates.' : 'Try adjusting your search or filters.' }}
Relationship Officers (ROs)
Manage RO access and account status
| Name | Username | Status | Date Added | Actions |
|---|---|---|---|---|
| {{ user.name }} | {{ user.email }} | Active Suspended | {{ formatDate(user.createdAt) }} |
|
| No RO accounts created yet. | ||||
{{ user.name }}
@{{ user.email }}
No RO accounts created yet
Attention Radar: {{ roNeedsAttentionFiles.length }} Case(s) Need Movement Pending Action
Cases resting in FI/UW (>3 days) or Approved without disbursal (>4 days).
Monthly Target & Run-Rate
{{ roTargetPacing.paceBadgeText }}Pacing for {{ new Date().toLocaleString('default', { month: 'long', year: 'numeric' }) }} • {{ roTargetPacing.daysRemaining }} day(s) left
Category Breakdown
Portfolio distribution
| App ID | Customer Name | Category | Channel | Loan Amount | Status | SM Name | PPC | VCIP | MI | Login Date | Actions |
|---|---|---|---|---|---|---|---|---|---|---|---|
| #{{ file.appId || 'No ID' }} | {{ file.customerName }} | {{ file.nclUcl || '-' }} | {{ file.sourcingChannel || 'DSA' }} | ₹{{ formatCurrency(file.loanAmount) }} | {{ file.status }} | {{ file.smName || defaultSmName || '-' }} | {{ file.ppc || '-' }} | {{ file.vcip || '-' }} | {{ file.mi || '-' }} | {{ file.loginDate ? formatDateOnly(file.loginDate) : formatDateOnly(file.createdAt) }} |
|
|
No customer files found for {{ getTimelineLabel(roFilters.timeline) }} {{ roFilters.timeline === 'today' && myFiles.length > 0 ? 'You have files logged on other dates.' : 'Try adjusting your search or filters.' }} |
|||||||||||
{{ file.customerName }}
No files for {{ getTimelineLabel(roFilters.timeline) }}
{{ roFilters.timeline === 'today' && myFiles.length > 0 ? 'You have files logged on other dates.' : 'Try adjusting your search or filters.' }}
New Customer File
Log loan application details for daily tracking
Daily EOD
Submitted Today Revising Today's ReportAudit today's logged cases, plan commitments, and file your official EOD.
Date
{{ new Date().toLocaleDateString('en-IN') }}
You're all set for today!
RevisedYour End of Day report has been filed with your SM. Great job today! You can share it to your WhatsApp group, copy the raw text, or revise it if any late-evening updates happen.
Revising Today's Report
Make updates or click "Re-sync Files" to pull any newly logged cases, then submit your updated EOD.
Files Included in Today's EOD {{ todayLoginsFiles.length }} Logins • {{ todayDisbFiles.length }} Disb
Verify exact customer cases that back up today's numbers.
Today's Logins ({{ todayLoginsFiles.length }})
Auto-aggregated into Open Market, Branch & UCLToday's Disbursements ({{ todayDisbFiles.length }})
Your Submission History
| Date | Total Logins | Total Disb | Branch Sanc | Actions |
|---|---|---|---|---|
| {{ new Date(eod.date).toLocaleDateString() }} Revised | {{ (eod.metrics.loginOpenMarket.count || 0) + (eod.metrics.loginBranch.count || 0) + (eod.metrics.loginUsedCar.count || 0) }} / {{ ((eod.metrics.loginOpenMarket.amount || 0) + (eod.metrics.loginBranch.amount || 0) + (eod.metrics.loginUsedCar.amount || 0)).toFixed(2) }}L | {{ (eod.metrics.disbOpenMarket.count || 0) + (eod.metrics.disbBranch.count || 0) + (eod.metrics.disbUsedCar.count || 0) }} / {{ ((eod.metrics.disbOpenMarket.amount || 0) + (eod.metrics.disbBranch.amount || 0) + (eod.metrics.disbUsedCar.amount || 0)).toFixed(2) }}L | {{ eod.metrics.loginBranchSanction?.count || 0 }} / {{ (eod.metrics.loginBranchSanction?.amount || 0).toFixed(2) }}L | |
| You haven't submitted any EOD reports yet. | ||||