@if (activeSection === 'alerts') {
KYC Alert Dashboard
47
Expiring in 30 days
▲ 12 this month
23
Debit Frozen
Action required
8
Inoperative
Escalating
3
Dormant
RBI reportable
18
Notices Today
SMS + Email
Accounts Requiring Action
Showing {{ alertRows.length }} of 81 · Click row for client details
@for (row of alertRows; track row.id) { }
Customer Risk Expiry Date Days Left Notices State Pending Action Next Stage
{{ row.name }}
{{ row.account }}
{{ row.riskLabel.split(' ')[0] }} {{ row.expiry }}
{{ row.daysLeft > 0 ? row.daysLeft : '—' }}
{{ row.noticesSent }}/3 {{ stateLabel(row.state) }} {{ row.noticePending }} {{ row.nextStage }}
} @if (activeSection === 'notif') {
Notification Scheduler
3-Notice Dispatch Timeline
Expiry: 30 Apr 2027 · Window: 31 Mar – 30 Apr
1
Notice 1 — Alert window opens
31 March 2027 · Auto-scheduled · ✓ Delivered
SMS Email
2
Notice 2 — Follow-up
10 April 2027 · +10 days · ⏳ Pending
SMS Email IVR Call Reg. Post
3
Notice 3 — Final notice
20 April 2027 · +20 days · ✗ Not dispatched
SMS Email IVR Reg. Post Branch Visit
!
Debit Freeze — if no action
30 April 2027 · Auto-triggered on expiry
Auto-triggered Credits allowed Debits blocked
!
Inoperative — +60 days
30 June 2027 · No compliance
All txns blocked
!
Dormant — +150 days
30 September 2027
Dormant RBI reporting
Channels — Notice 3
📱
SMS
Registered mobile
📧
Email
Registered email
📞
IVR Call
Outbound IVR
📮
Reg. Post
India Post
🏦
Branch Visit
Manual
📹
Video KYC
V-CIP app
India Post Notice
Dispatch Date
10 April 2027
Reg. Post Docket No.
RP-BPL-20270410-443
Status
In Transit
Branch Visit
Scheduled Date
Officer
} @if (activeSection === 'audit') {
Audit Inventory
KYC Notice Log
Click row for client details
# Account / Customer Notice Channel Dispatched Reference / Docket Delivery Client Action Officer
001
Rajesh K. Sharma
ACC-BPL-2024-00847
Notice 1 SMS + Email 31 Mar 2027 MSG-2027-0331-001 ✓ Delivered Awaited Scheduler
002
Rajesh K. Sharma
ACC-BPL-2024-00847
Notice 2 Reg. Post + IVR 10 Apr 2027 RP-BPL-20270410-443 In Transit Awaited Scheduler
003
Priya Malhotra
ACC-BPL-2021-00231
Notice 1 SMS + Email 10 Mar 2027 MSG-2027-0310-003 ✓ Delivered No Response Scheduler
004
Priya Malhotra
ACC-BPL-2021-00231
Notice 2 Reg. Post 20 Mar 2027 RP-BPL-20270320-091 ✓ Delivered No Response Scheduler
005
Priya Malhotra
ACC-BPL-2021-00231
Notice 3 Branch Visit 30 Mar 2027 VIS-BPL-20270330-012 ✓ Done Refused A. Mishra
006
Suresh Patel
ACC-BPL-2019-00112
Notice 3 Video KYC 5 Feb 2027 VKYC-2027-0205-007 No Response No Action System
Showing 6 of 12
} @if (activeSection === 'status') {
Account Status Management
Active
1,847
KYC valid
Alert Window
47
Expiring < 30d
Debit Freeze
23
Debits blocked
Inoperative
8
All txns blocked
Dormant
3
RBI reportable
Auto-Transition Rules
Active → Debit FreezeEnabled
KYC expires + 3 notices sent + no response → debits blocked, credits allowed
Window: 31 Mar – 30 Apr 3/3 notices
Debit Freeze → InoperativeEnabled
+60 days from expiry, still unresolved → all transactions blocked
Apr 30 – Jun 30
Inoperative → DormantEnabled
+150 days from expiry → dormant, RBI Dormant Account reporting triggered
Jun 30 – Sep 30 RBI notification
Manual Override
Maker-Checker
Account
Current State
Debit Freeze
Override Action
Reason
⚠ Maker-Checker Required
All manual changes require second officer approval and are logged in audit inventory.
Recent State Transitions
Click row for client details
Account From To Trigger Date By Action
Priya Malhotra
ACC-BPL-2021-00231
Active Debit Freeze Auto — KYC Expired 10 Apr 2027 Scheduler
Suresh Patel
ACC-BPL-2019-00112
Debit Freeze Inoperative Auto — 60d elapsed 15 May 2027 Scheduler
Kavitha Nair
ACC-BPL-2018-00088
Inoperative Dormant Auto — 150d elapsed 1 Jun 2027 Scheduler
}
@if (modalOpen && current) {
{{ current.av }}
{{ current.name }}
{{ current.meta }}
{{ stateLabel(current.state) }} {{ current.riskLabel }}
✕
@if (modalTab === 'overview') {
Compliance Journey
@for (step of getStepperState(current); track step.label) {
{{ stepIcon(step.state) }}
{{ step.label }}
}
⚡
{{ stateLabel(current.state) }} — {{ current.daysLeft }} days to expiry
Next pending: {{ current.noticePending }}. Next stage: {{ current.nextStage }}.
{{ current.noticesSent }}
Notices Sent
{{ noticesPending(current) }}
Notices Pending
{{ current.actionTaken.length }}
Actions Taken
{{ current.pendingActions.length }}
Pending Actions
KYC Information
PAN
{{ current.kyc.pan }}
PAN Status
{{ current.kyc.panStatus }}
Aadhaar
{{ current.kyc.aadhaar }}
Aadhaar Status
{{ current.kyc.aadhaarStatus }}
KYC Validity
{{ current.kyc.validity }}
Expiry Date
{{ current.expiry }}
Contact Details
Mobile
{{ current.contact.mobile }}
Email
{{ current.contact.email }}
Address
{{ current.contact.address }}
Branch
{{ current.contact.branch }}
} @if (modalTab === 'timeline') {
Notice & Escalation Timeline
@for (item of current.actionTaken; track $index) {
✓
{{ item }}
Completed
} @for (item of current.pendingActions; track $index) {
!
{{ item }}
Pending action
}
} @if (modalTab === 'notices') {
All Notices Dispatched
@for (n of current.notices; track n.ref; let i = $index) { } @if (noticesPending(current) > 0) { }
# Notice Channel Date Reference Delivery Response
{{ i + 1 }} {{ n.no }} {{ n.channel }} {{ n.date }} {{ n.ref }} {{ n.delivery }} {{ n.response }}
⏳ {{ noticesPending(current) }} notice(s) still pending dispatch
} @if (modalTab === 'evidence') { @if (!current.evidence) {
📄
No evidence collected yet for this client.
Evidence is captured during branch visits or video KYC sessions.
} @else {
{{ current.evidence.type === 'visit' ? 'Branch Visit Evidence' : 'Video KYC Session Log' }}
Date
{{ current.evidence.date }}
Officer / Agent
{{ current.evidence.officer }}
@if (current.evidence.type === 'visit') {
GPS Coordinates
{{ current.evidence.gps }}
Location
{{ current.evidence.location }}
}
Reference / Docket
{{ current.evidence.docket || current.evidence.ref }}
Outcome
No Compliance
@if (current.evidence.type === 'visit') {
Map Placeholder
{{ current.evidence.gps }}
{{ current.evidence.location }}
Photo Evidence
Visit photo uploaded · Tap to view
}
Officer Notes
{{ current.evidence.outcome }}
} } @if (modalTab === 'action') {
Available Actions
@for (action of current.pendingActions; track action) {
{{ action }}
Initiate via available channels
}
}
}
{{ toastMsg }}