| # | Customer / Account | Branch | Limit | Drawn | Declared / month | Came in | Went out | Net | In ÷ declared | Cash in | Last txn | CC rules | Details |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ i + 1 }} |
{{ a.clientName }}
{{ a.isCc ? 'CC' : 'Current' }}
{{ a.accountNo }}
|
{{ a.branchName || '—' }} | {{ a.isCc ? '₹' + (a.sanctionedLimit | number: '1.0-0') : '—' }} | {{ a.limitDrawnPercent != null ? a.limitDrawnPercent + '%' : '—' }} | {{ a.declaredMonthlyTurnover != null ? '₹' + (a.declaredMonthlyTurnover | number: '1.0-0') : 'not declared' }} |
₹{{ a.credits | number: '1.2-2' }}
{{ a.creditCount }} txn
|
₹{{ a.debits | number: '1.2-2' }}
{{ a.debitCount }} txn
|
0" [class.out]="a.net < 0">{{ rs(a.net) }} | @if (a.creditsVsDeclared != null) { {{ a.creditsVsDeclared }}× } @else { — } | {{ a.cashCreditPercent != null ? a.cashCreditPercent + '%' : '—' }} | {{ a.lastTxnDate ? (a.lastTxnDate | date: 'dd MMM yyyy') : '—' }} |
0">{{ a.rulesHit }} hit
{{ a.rulesNoHit }} no hit · {{ a.rulesNotChecked }} not checked
|
Busiest first. “In ÷ declared” compares what came in with the turnover the customer declared, scaled to the window; {{ spikeMultiple }}× or more is highlighted for a look. It is an indicative starting value, not a finding.
}Hit = this account's transactions trigger the rule. No hit = the rule was checked and not triggered. Not checked = the rule needs an officer's judgement or data the system does not hold yet, so it is not shown as passed.
| Rule | Kind | Risk | Result | Why |
|---|---|---|---|---|
| {{ r.name }} @if (r.onTrial) { TRIAL } | {{ r.kind }} | {{ riskLabel(r.riskCategory) }} | {{ r.status === 'HIT' ? 'HIT' : r.status === 'NO_HIT' ? 'No hit' : 'Not checked' }} | {{ r.detail }} |
| No rule in this group. | ||||
{{ line }}
}| Mode | Credit (Cr) | Debit (Dr) | Net | Txns | Share |
|---|---|---|---|---|---|
| {{ m.label }} | ₹{{ m.in | number: '1.0-0' }} | ₹{{ m.out | number: '1.0-0' }} | {{ drcr(m.in - m.out, '1.0-0') }} | {{ m.count }} | {{ m.sharePercent }}% |
| No transactions in this window. | |||||
Share = this mode's part of all the money that moved (credits + debits).
| Account / Bank | Credit (Cr) | Debit (Dr) | Net | Txns | Share |
|---|---|---|---|---|---|
|
{{ p.label }}
{{ p.sub || '' }}
|
₹{{ p.in | number: '1.0-0' }} | ₹{{ p.out | number: '1.0-0' }} | {{ drcr(p.in - p.out, '1.0-0') }} | {{ p.count }} | {{ p.sharePercent }}% |
| — | |||||
Cr from a party = it paid this account. Dr to a party = this account paid it.
| Week starting | Credit (Cr) | Debit (Dr) | Net for the week | Txns |
|---|---|---|---|---|
| {{ w.label | date: 'dd MMM yyyy' }} | ₹{{ w.in | number: '1.0-0' }} | ₹{{ w.out | number: '1.0-0' }} | {{ drcr(w.in - w.out, '1.0-0') }} | {{ w.count }} |
Observations use fixed starting values (for example 3× the declared turnover, a credit mostly paid out again within 3 days, one party above half of all the money moved). They point at something worth a look; they are not findings, and the bank's compliance team sets the real thresholds.
} @else {| Date | Cr / Dr | Mode | Other side | Reference | Credit (Cr) | Debit (Dr) | Balance after |
|---|---|---|---|---|---|---|---|
| {{ t.date | date: 'dd MMM yyyy' }} | {{ t.direction === 'IN' ? 'Cr · received' : 'Dr · paid out' }} |
{{ t.mode }}
@if (t.chequeNo) {
No. {{ t.chequeNo }}
}
|
{{ t.counterpartyAccount || '—' }}
{{ t.counterpartyBank || '' }}{{ t.counterpartyIfsc ? ' · ' + t.counterpartyIfsc : '' }}
|
{{ t.reference || '—' }}
{{ t.remarks }}
|
{{ t.direction === 'IN' ? '₹' + (t.amount | number: '1.2-2') : '' }} | {{ t.direction === 'OUT' ? '₹' + (t.amount | number: '1.2-2') : '' }} | {{ drcr(t.balanceAfter) }} |
| No transactions in this window. | |||||||
“Mode” and the other side are what the payment recorded: cash, cheque (by its number), and NEFT, RTGS, IMPS, UPI, demand draft or internal transfer where the payment says so. Where it recorded nothing, it shows as “Not recorded”. “Balance after” is the account's balance once that transaction was posted: Dr when overdrawn, Cr when in credit.
} }