@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) { }
CustomerRiskExpiry DateDays Left NoticesStatePending ActionNext 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 / CustomerNoticeChannel DispatchedReference / DocketDelivery Client ActionOfficer
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
AccountFromToTriggerDateByAction
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) { }
#NoticeChannelDateReferenceDeliveryResponse
{{ 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 }}