End-to-End Operational Lifecycle
This guide details the complete 7-phase operational journey of a borrower in BiiTrust, from initial field registration through compliance KYC verification, credit origination, multi-tier committee approval, loan disbursement, servicing repayments, and final accounting settlement.
The 7-Phase Journey Map
┌────────────────────────────────────────────────────────────────────────┐
│ Phase 1: Client Onboarding & Registration │
│ Identity capture (National ID 'hex' + Display 'number') │
│ Registration Fee payment (STK / Paybill 4050329 / Cash) │
│ Status moves 'prospect' -> 'active' (Dr 1103 / Cr 4200) │
├────────────────────────────────────────────────────────────────────────┤
│ Phase 2: Compliance Due Diligence & KYC Verification │
│ Document preview & fact verification rail │
│ Compliance approval & tier ceiling assignment (basic/std/enhanced) │
│ Real-time Typesense search sync (live.client) │
├────────────────────────────────────────────────────────────────────────┤
│ Phase 3: Loan Origination & Pre-Flight Eligibility Gates │
│ Hard pre-flight gates: Active registration + Verified KYC │
│ Eligibility check (GET /kyc/:client/eligibility) & Collateral LTV │
│ Product selection & instant amortization schedule preview │
├────────────────────────────────────────────────────────────────────────┤
│ Phase 4: Multi-Tier Underwriting & Approval Hierarchy │
│ Loan Officer -> Branch Manager -> COO -> Managing Director │
│ Enforced four-eyes policy & authority delegation limits │
├────────────────────────────────────────────────────────────────────────┤
│ Phase 5: Disbursement Pipeline & Automated Accounting │
│ Amortization schedule generation & calendar holiday shift │
│ Balanced GL journal: Dr 1200 / Cr 1103 / Cr 4200 │
│ Automated Safaricom M-Pesa B2C payout │
├────────────────────────────────────────────────────────────────────────┤
│ Phase 6: Servicing, Repayments & Liquidation Waterfall │
│ C2B Paybill 4050329 with prefix stripping ('3907#') │
│ Waterfall: Penalties (4300) -> Fees (4200) -> Interest (4100) -> │
│ Principal (1200) -> Savings (2200) │
│ Suspense ledger safety net (Dr 1103 / Cr 2105) for unmatched receipts│
├────────────────────────────────────────────────────────────────────────┤
│ Phase 7: Delinquency, Provisioning & Final Settlement │
│ Daily DPD aging calculation & PAR buckets │
│ Automated provisioning: Normal (1%), Watch (5%), Substandard (25%), │
│ Doubtful (50%), Loss/NPA (100%) │
│ Zero balance -> 'settled' -> Cycle increment & credit score upgrade │
└────────────────────────────────────────────────────────────────────────┘
Figure 1.1: Complete borrower operational lifecycle across all 7 operational phases in BiiTrust.
Phase 1: Client Onboarding & Registration
- Intake: Loan Officer navigates to
/clients/registerand inputs:- Branch office and assigned loan officer.
- Legal names, date of birth (min 18 years), gender, and mobile phone.
- National ID number (
org_clients.hex/auth_accounts.identity). - Physical residence address and next-of-kin contacts.
- Digital photo portrait, ID front/back scans, and touchscreen signature.
- Account Creation: Submitting the form creates the client record in
prospectstatus. - Registration Fee Settlement:
- Institutional fee (e.g., KES 300) must be paid before the client can borrow.
- Settled via on-demand M-Pesa STK push, Paybill
4050329with account3907#REG-<NATIONAL_ID>, or branch counter cash. - General Ledger Entry: Dr 1103 (M-Pesa Float) / Cr 4200 (Fee Income).
- Client status advances from
prospect→active.
Phase 2: Compliance KYC Verification
- Compliance Feed: The KYC dossier appears in the compliance review queue (
/kyc/feed). - 3-Step Rail:
- Step 1 (Facts): Compliance officer verifies name, National ID, phone, and PEP screening.
- Step 2 (Documents): Inspector views each uploaded scan using the mandatory preview viewer.
- Step 3 (Decision): Approves verification, assigns approved borrowing tier (
basicup to KES 50k,standardup to KES 500k,enhancedunlimited), and sets expiration horizon.
- Live Search Indexing: System immediately triggers
app/search/live.clientto update Typesense with{ verified: true, kyc: 'verified', number: 'HQ-...' }.
Figure 1.2: Client profile displaying both the active registration fee badge and verified KYC tier ceiling.
Phase 3: Loan Origination & Pre-Flight Eligibility Gates
- Borrower Lookup: Officer opens
/applications/newand searches by National ID or account number. - Hard Pre-Flight Gates (Step 0):
- Client registration must be
active(Registration Fee paid). - Client KYC verification must be
verifiedand unexpired. - If either check fails, the application is blocked with actionable links.
- Client registration must be
- Eligibility & Product Matching:
- Platform calls
GET /kyc/:client/eligibility?principal=&product=to confirm requested principal does not exceed tier ceiling. - Verifies collateral security against product
max_ltv_ratio. - Generates instant installment schedule preview.
- Officer attaches capacity evidence (M-Pesa 6-month statement) and submits to manager.
- Platform calls
Phase 4: Underwriting & Approval Hierarchy
- Dossier Evaluation: Branch Manager opens
/application/:hex/decide. - Four-Eyes Enforcement: Creator cannot approve; approver of level $N$ cannot approve level $N+1$.
- Decision Options:
- Approve: If within authority limit (e.g. $\le$ KES 250k), advances to
approved. If exceeding limit, escalates to COO or Managing Director. - Return: Sends back to officer desk with mandatory correction notes.
- Reject: Declines application with statutory grounds and formal explanation.
- Approve: If within authority limit (e.g. $\le$ KES 250k), advances to
Phase 5: Disbursement Pipeline & Automated Accounting
- Disbursement Authorization: Authorized manager clicks Disburse Funds on approved application.
- Schedule Generation: Amortization engine (
utils/amortize.js) generates binding repayment schedules, shifting holiday collisions forward. - Double-Entry General Ledger Post:
- Debit 1200: Gross Loan Portfolio Asset (Full Principal).
- Credit 1103: M-Pesa Float Asset / Cash (Net Payout).
- Credit 4200: Processing Fee Income (Withheld Fee).
- Mobile Money Payout: System automatically enqueues
mpesa.b2cbackground job, transferring net funds directly to borrower’s phone via Safaricom Daraja API.
Phase 6: Servicing, Repayments & Liquidation Waterfall
- Inbound Collections:
- Borrower pays via Paybill
4050329with account3907#<NATIONAL_ID>. - Webhook callback strips
3907#prefix and matches active loan facility.
- Borrower pays via Paybill
- Accounting Liquidation Waterfall:
- Priority 1: Penalties → Cr
4300(Penalty Income) - Priority 2: Fees → Cr
4200(Fee Income) - Priority 3: Interest → Cr
4100(Interest Income) - Priority 4: Principal → Cr
1200(Gross Loan Asset) - Priority 5: Surplus Overpayment → Cr
2200(Client Savings Liability)
- Priority 1: Penalties → Cr
- Suspense Protection: Misspelled references are booked to Dr 1103 / Cr 2105 (Suspense) and surfaced in
/payments/suspensefor 1-click matching.
Phase 7: Delinquency, Provisioning & Final Settlement
- Nightly Delinquency Evaluation: Scheduled worker scans active loans, computing
dpd(Days Past Due) and portfolio aging buckets (PAR 1,PAR 30,PAR 60,PAR 90). - Loan Loss Provisioning:
- Normal (0–30 DPD): 1% → Dr 5100 / Cr 1205
- Watch (31–60 DPD): 5% → Dr 5100 / Cr 1205
- Substandard (61–90 DPD): 25% → Dr 5100 / Cr 1205
- Doubtful (91–180 DPD): 50% → Dr 5100 / Cr 1205
- Loss / NPA (>180 DPD): 100% → Dr 5100 / Cr 1205
- Settlement: When all obligations reach zero:
- Loan status transitions to
settled. - Completed loan cycle increments (
loan_cycles.number + 1), raising borrowing ladder. - Credit score is recomputed (
POST /scores/:client/recompute), recording clean repayment history inkyc_scores.
- Loan status transitions to
Figure 1.3: Active loan facility view displaying the amortization repayment schedule, automated liquidation waterfall, and cycle progression.