General Ledger & Accounting Module
The Accounting module (/gl) maintains the institutional general ledger for BiiTrust. It guarantees strict double-entry compliance, organizes the chart of accounts, tracks capital funding sources, powers manual journal vouchers, and delivers real-time financial statements.
1. Key Definitions & Accounting Concepts
| Concept | Explanation |
|---|---|
| General Ledger (GL) | The primary accounting record holding all financial accounts, transactions, and balances of the institution. |
| Double-Entry Principle | The fundamental bookkeeping law where every transaction has equal and offsetting entries: $\sum \text{Debits} = \sum \text{Credits}$. |
| Chart of Accounts (COA) | A structured index of financial accounts categorized into Assets, Liabilities, Equity, Income, and Expenses. |
| Journal Voucher (JV) | A documented accounting entry recording non-automated transactions, such as bank interest, rent accruals, or asset depreciation. |
| Contra-Asset Account | An account with a credit balance that offsets an asset, such as 1290 Allowance for Loan Impairment offsetting 1210 Loans Receivable. |
| Suspense Account | A temporary holding account used when a transaction cannot immediately be allocated (e.g., unmatched M-Pesa receipts). |
| Trial Balance | A financial report listing the closing balances of all general ledger accounts at a specific point in time to ensure debits equal credits. |
| Period-End Closing | The monthly or annual procedural lock that prevents backdated postings to closed fiscal periods and rolls net profit into Retained Earnings. |
2. Chart of Accounts Structure (/gl/accounts)
BiiTrust organizes its chart of accounts into a standard five-tier numbering hierarchy:
| Account Range | Category | Normal Balance | Purpose | Key Accounts |
|---|---|---|---|---|
| 1000 – 1999 | Assets | Debit | Resources owned by the institution | 1101 Branch Cash Drawer1110 M-Pesa Clearing1120 Commercial Bank Accounts1210 Loans Receivable (Principal)1290 Allowance for Loan Impairment (Contra) |
| 2000 – 2999 | Liabilities | Credit | Obligations owed to third parties | 2101 Client Security Deposits2190 M-Pesa Suspense (Unallocated)2200 Commercial Borrowings & Lines of Credit2300 Accrued Taxes & Payroll Withholding |
| 3000 – 3999 | Equity | Credit | Institutional net worth & reserves | 3100 Share Capital3200 Retained Earnings3300 Statutory Credit Risk Reserve |
| 4000 – 4999 | Income / Revenue | Credit | Earnings from financial operations | 4110 Interest Income on Loans4120 Loan Application & Processing Fees4130 Late Repayment Penalty Income4190 Bad Debt Recoveries |
| 5000 – 5999 | Expenses | Debit | Operating costs and credit losses | 5110 Loan Impairment & Provision Expense5200 Staff Salaries & Benefits5300 Branch Rent & Utilities5400 Bank & Mobile Money Transaction Fees |
3. Automated Event Journaling
The core engine of BiiTrust automatically posts balanced, immutable journal entries in response to operational activities. Frontline staff do not need to create manual accounting entries for daily transactions:
1. Loan Disbursement Event
When a loan of KES 50,000 is disbursed via M-Pesa with a 2% processing fee deducted upfront:
Debit: 1210 Loans Receivable (Gross Principal)$\to$ KES 50,000Credit: 4120 Loan Processing Fee Income$\to$ KES 1,000Credit: 1110 M-Pesa Disbursement Clearing$\to$ KES 49,000
2. Loan Repayment Event
When a borrower pays KES 12,000 at the branch counter:
Debit: 1101 Branch Cash Drawer$\to$ KES 12,000Credit: 4130 Late Penalty Income$\to$ KES 500Credit: 4110 Loan Interest Income$\to$ KES 2,500Credit: 1210 Loans Receivable (Principal)$\to$ KES 9,000
3. Payment Reversal Event
When an authorized manager reverses a mistaken payment:
- The system reads the exact legs of the original payment and posts an automated reversing journal:
Debit: 1210 Loans Receivable$\to$ KES 9,000Debit: 4110 Loan Interest Income$\to$ KES 2,500Debit: 4130 Late Penalty Income$\to$ KES 500Credit: 1101 Branch Cash Drawer$\to$ KES 12,000
4. Loan Write-Off Event
When a loan of KES 35,000 principal is written off after exhausting all recovery avenues:
Debit: 1290 Allowance for Loan Impairment$\to$ KES 35,000Credit: 1210 Loans Receivable$\to$ KES 35,000
4. Manual Journal Vouchers (/gl/vouchers/new)
Non-loan financial activities (such as paying office rent, recording bank charges, or adjusting asset depreciation) are recorded using the Journal Voucher screen:
┌────────────────────────────────────────────────────────────────────────────────────────┐
│ New Journal Voucher [ Post Voucher ]│
├────────────────────────────────────────────────────────────────────────────────────────┤
│ Date: [ 2026-09-16 ] Branch: [ Nairobi CBD (BRX-001) ] Ref: [ JV-2026-089 ]│
│ Narrative: [ Branch office monthly electricity and internet connectivity ] │
├──────┬───────────────────────────────┬────────────────────────┬─────────────┬──────────┤
│ Line │ Account │ Description │ Debit (KES) │ Credit │
├──────┼───────────────────────────────┼────────────────────────┼─────────────┼──────────┤
│ 1 │ 5300 Office Utilities & Rent │ Kenya Power Bill │ 8,500.00 │ — │
│ 2 │ 5300 Office Utilities & Rent │ Safaricom Fibre Link │ 6,000.00 │ — │
│ 3 │ 1120 KCB Operating Account │ Direct Bank Transfer │ — │ 14,500.00│
├──────┴───────────────────────────────┴────────────────────────┼─────────────┼──────────┤
│ Total Balanced Lines: 3 │ 14,500.00 │ 14,500.00│
│ Balance Difference: KES 0.00 (Balanced ✓) │ │ │
└────────────────────────────────────────────────────────────────────────────────────────┘
Steps to Record a Journal Voucher:
- Open Accounting $\to$ New Voucher (
/gl/vouchers/new). - Select the Value Date and the relevant Branch (cost center).
- Enter a clear Narrative / Memo explaining the operational business rationale.
- Add line items:
- Search for the target account by code or title (e.g.,
5300orUtilities). - Enter line-specific descriptions and specify either a Debit or Credit amount.
- Search for the target account by code or title (e.g.,
- The live balance indicator displays green (
Balanced ✓) when $\sum \text{Debits} = \sum \text{Credits}$. - Upload supporting scanned documents (e.g., utility bill invoice, bank transfer receipt).
- Click Post Voucher. The voucher is permanently committed to the ledger with your user signature.
5. Real-Time Financial Statements
The ledger delivers instant financial statements without requiring batch closing or manual spreadsheet consolidation:
1. Trial Balance (/gl/trial-balance)
- Lists every active account in the chart of accounts with its opening balance, debit movements, credit movements, and closing net balance.
- Filters allow instant scoping to a single branch or institution-wide consolidation.
- Verifies overall mathematical integrity across all branches.
2. Balance Sheet / Statement of Financial Position (/gl/balance-sheet)
- Assets: Cash on hand, bank balances, M-Pesa float, gross loan portfolio less loan impairment allowance, fixed assets.
- Liabilities: Security deposits held for borrowers, external credit facilities, accrued vendor expenses.
- Equity: Paid-up capital, statutory reserve funds, retained earnings.
- Displays key liquidity and leverage ratios at the top of the report.
3. Income Statement / Statement of Comprehensive Income (/gl/income)
- Revenue: Interest income on personal and SME loans, origination fees, late penalties, recovery of previously written-off debts.
- Credit Loss Expense: Additions to loan impairment allowances calculated under IFRS 9 ECL models.
- Operating Expenses: Personnel salaries, branch office leases, travel, communication, IT hosting, regulatory licensing.
- Net Operating Surplus (Profit / Loss): Real-time bottom-line performance.
6. Period-End Hard Closing & Audit Controls
To ensure regulatory compliance and prevent retroactive alteration of audited accounts:
- Monthly Close: At month-end, the Chief Accountant locks the fiscal period in
/settings/accounting. - Post-Lock Prevention: Once a period is locked, the database rejects any attempt to backdate journal vouchers, repayments, or disbursements into that month.
- Audit Trail: Every journal entry records the generating subsystem, user ID, client IP address, and an immutable cryptographic SHA-256 hash chaining back to the previous entry.