Automated Interest Accrual & Compounding Engine
Understand the mathematical engine executing daily interest accruals, monthly compound postings, and general ledger journal integration.
1. Overview & Business Value#
This comprehensive operational guide details the architecture, business workflows, configuration parameters, and execution steps for Automated Interest Accrual & Compounding Engine within SmartERP.
Understand the mathematical engine executing daily interest accruals, monthly compound postings, and general ledger journal integration.
{screenshot:interest-accrual-and-compounding-engine-overview-dashboard}
2. Prerequisites & Security Access Groups#
- Required Modules:
smarterp_sacco_core, smarterp_equb, smarterp_loan_management - Security Groups:
SACCO Loan Officer(Technical ID:smarterp_sacco.group_sacco_officer)SACCO Credit Committee Member(Technical ID:smarterp_sacco.group_sacco_committee)SACCO General Manager(Technical ID:smarterp_sacco.group_sacco_manager)
- Master Data Dependencies: Member KYC profiles, share capital registers, savings product tiers, loan products with reducing-balance schedules, and Equb rotational pool configurations.
3. Step-by-Step Configuration & Execution#
Step 1: Navigating to the Module Interface#
- Log into your SmartERP instance at
https://smarterp.et/odoo. - Open the main App Switcher (grid icon in the top-left corner).
- Select the SACCO & Equb app icon.
- From the top navigation bar, open SACCO & Equb → Members → KYC Registry / Savings Accounts / Loan Applications / Equb Pools.
{screenshot:interest-accrual-and-compounding-engine-app-switcher-navigation}
Step 2: Creating and Parameterizing Records#
- Click the New button in the top-left control panel.
- Complete the mandatory fields in the record form:
- Member Identification Number (Mandatory): Unique membership number complying with Ethiopian Cooperative Commission rules
- Full Name & Kebele ID (Mandatory): Verified member identity with physical residence verification
- Share Capital Subscriptions (Mandatory): Subscribed shares not exceeding statutory 10% member ceiling (Proclamation 985/2016)
- Primary Savings Product (Mandatory): Compulsory regular monthly savings account configuration
- Configure optional operational parameters and localized tags as required:
- Guarantor & Collateral (Optional): Approved co-signers with locked savings accounts or registered vehicle/property lien
- Equb Rotational Group (Optional): Linked digital Equb pool with lottery draw eligibility
- Beneficiary Nominee (Optional): Designated next of kin for death or disability benefit transfer
- Click the Save icon in the control bar to commit the record.
{screenshot:interest-accrual-and-compounding-engine-record-creation-form}
Step 3: Validating and Processing Transactions#
- State Transitions: Execute operational state progression (Application → KYC Verified → Approved → Active / Disbursed → Delinquency Monitored → Settled).
- Ledger & System Impact: Loan disbursement debits loans receivable and credits cash/bank; loan repayments credit interest income and loan principal, updating 5-tier NBE provisioning registers.
- Audit Verification: Automated recording of author ID, timestamp, and immutable revision history.
{screenshot:interest-accrual-and-compounding-engine-transaction-processing-state}
Daily Accrual Mathematical Formulation#
To prevent distortion in financial statements and ensure fairness to members depositing mid-month, SmartERP computes interest on the Daily Ending Ledger Balance:
$$\text{Daily Interest} = \text{Closing Balance}_t \times \left( \frac{r}{365} \right)$$
Where $r$ represents the contractual nominal annual interest rate.
At midnight every day, an automated cron job iterates across all active savings accounts, calculating daily interest and recording accruals into the non-posted interest liability buffer:
$$\text{Monthly Interest Posting} = \sum_{t=1}^{M} \text{Daily Interest}_t$$
Monthly Capitalization & General Ledger Posting#
On the final calendar day of each month:
- The interest engine executes the Monthly Interest Capitalization Run.
- For each member account, cumulative monthly interest credits directly to the principal balance: $$\text{New Principal} = \text{Previous Principal} + \text{Monthly Interest}$$
- The general ledger posts consolidated accounting entries:
- Debit: Member Savings Interest Expense (
510100) - Credit: Member Savings Deposit Liability (
201100)
- Debit: Member Savings Interest Expense (
- An automated SMS notification delivers the interest credit notice to the member's mobile phone.
Interest Suspension on Dormant Accounts#
If an account records zero member-initiated deposits or withdrawals for consecutive 365 days:
- The system automatically transitions account state to
Dormant. - Automated interest compounding suspends until the member presents physical KYC credentials at the branch to execute formal account reactivation.
4. Advanced Configuration Points#
- Automated Actions & Scheduled Tasks (Crons):
SACCO: Accrue monthly member savings interest(smarterp_sacco.ir_cron_savings_interest): Runs on the final day of each calendar month to credit interestLoan: Evaluate 5-tier NBE delinquency classification(smarterp_sacco.ir_cron_loan_delinquency): Runs nightly to compute loan loss provisions per NBE directivesEqub: Execute scheduled lottery draw(smarterp_sacco.ir_cron_equb_draw): Runs on defined pool cycle dates using provably fair random selection
- Custom Print Templates & Reports:
- Member Savings Passbook & Transaction Ledger
- Loan Amortization Schedule (Reducing Balance)
- NBE 5-Tier Delinquency & Loan Loss Provisioning Statement
- Annual Patronage Dividend Distribution Schedule
- Multi-Company Rules: Record-level security isolation under Company 1 (
Ashewa Technology Solutions S.C.), preventing cross-company ledger leakage across parent and subsidiary legal entities.
5. Comprehensive Troubleshooting Matrix#
| Error Symptom / Exception | Probable Root Cause | Corrective Action / Resolution |
|---|---|---|
Loan Blocked: Exceeds 3x savings ceiling | Requested loan principal exceeds 300% of member unencumbered savings balance. | Increase compulsory savings deposit or provide authorized co-signers with sufficient collateral. |
Equb Draw Blocked: Participant arrears detected | Selected Equb member has unpaid rotational dues in current or prior cycles. | Collect outstanding contribution payment before executing lottery draw. |
Share Capital Limit Error: Member exceeds 10% ceiling | Subscribed shares exceed statutory maximum under Proclamation No. 985/2016. | Restrict share allocation to maximum allowable 10% total cooperative equity threshold. |