Mentor | |
---|---|
Contributor | |
Status |
Currently listed as an idea for Google Summer of Code 2014 - building out use cases and seeking an intern.
As financial inclusion providers grow more sophisticated and face more regulations, they need better control and automation of these business rules within their system. Implementation of a business rules engine within Mifos X would allow the system admin (usually an MFI manager) to easily set up and configure these business rules without having to edit the source code itself, so a solution that allows a non-technical user to easily set up and change rules would be ideal. Most users access Mifos X from the Community App UI, so we should consider this UI as the primary use case and surface business rules there.
Based on the conditions defined in these rules, the system will automatically restrict or allow permissions, trigger certain workflows, generate alerts, etc.
A business rule system enables these financial institutions policies and other operational decisions to be defined, tested, executed. Rule engines typically support rules, facts, priority (score), mutual exclusion, preconditions, and other functions.
This module will enable MFI admin to add, remove or modify the business rule against pre-defined workflows in the application.
Business Rules may be applied to the following entities:
S.No. | Entity | Description | Priority |
a) | Clients | Rules to be applied when creating/updating clients | High |
b) | Groups | Rules to be applied when creating/updating a group or adding/closing members in a group | High |
c) | Loan Accounts | Rules to be applied when creating, approving and disbursing loans | High |
d) | Staff | Rules to be applied when Clients/Accounts are approved by Staff | High |
e) | Loan Officers | Rules to be applied when - Clients/Groups/Centers are assigned to a LO - Clients are added to Groups - Groups are added to Centers | High |
f) | Savings Accounts | Rules to be applied when opening or making transactions on Savings accounts | Medium |
g) | Accounts | Rules to be applied when opening a new account or doing transactions on accounts. The rules may operate across different types of accounts (Loans, savings etc.) | Medium |
h) | Branches | Rules to be applied when adding a new member or new loan account to a branch | Low |
Specific examples for each of the Entities listed above
Clients must be between 18 and 70
An active group must have at least 4 members and cannot have more than 20 members
A group’s (Self Help Group) total outstanding should not exceed 90% of the sum of their total deposits and total interest collected till date
Home Loans (a Loan Product) cannot be the first loan taken by any client. (i.e. a client has to take another loan product and prove their repayment capability before taking a home loan
Only Clients with age between 25 and 55 may take a home loan product
Setting Loan amount limits based on data tables - for example different affordabiity limits for Married and Employed types (Married Employed people can take 40% of their Income - where marital status, employment status and income are captured as attributes in data tables)
Limit loan amounts by loan purpose - for example,
A branch manager is allowed to approve loans upto 30,000. Loans beyond this amount must be approved by an Operations Manager from Head Office
One loan officer should not handle more than 200 clients in a day and not handle more than 50,000 in collections in a day
An active client must save at least 25 per week or 100 per month for six months, before allowing withdrawals
If the savings account holder is a guarantor for any loan, then withdrawals should not be allowed if balance falls below 80% of the outstanding loan amount
A client can take a loan with amount upto 20 times the last 6 month’s average monthly closing balance of their savings account(s)
In Savings accounts – a client must maintain a minimum balance of at least 2 installments of their weekly dues on loans
New loans of Products X, Y and Z, are not allowed for branches which have more than 10% overdues
A branch should not have more than 50% members belonging to the same community