Business Rules Engine
Project Resources
Mentor | Â |
---|---|
Contributor | Â |
Status | SEEKING A VOLUNTEER OR PARTNER TO DEVELOP |
Project Status
Currently listed as an idea for Google Summer of Code 2014 - building out use cases and seeking an intern.
Background and Need
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.Â
Description
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 |
Â
Examples
- Insurance company does not provider insurance to any person above 65 age. In that case in the MIS if users tries to attach a insurance feed to a client's loan account whose age is more than 65 years then "business rule engine" should prevent that action with appropriate message.
Specific examples for each of the Entities listed above
- Clients
Clients must be between 18 and 70
- Groups
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
- Loan Accounts Specific
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,
- for tailoring shop, max 10,000
- for small shop, max 15,000
- Staff
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
- Loan Officers
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
- Savings Accounts Specific
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
- Accounts
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
- Groups/Branches
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
See Also
- Blog post from a peer OS software, MostFit on their very flexible business rules engine
- Old mifos-developer mailing list post looking at using rules engine to validate loans -Â http://marc.info/?l=mifos-developer&m=120996821729632
Â
Â
Â
Â