GLIM Functional Specification
Goals
- To provide the ‘Individual Monitoring’ feature to group loans.
Non-Goals
- The feature does not include loan cycle tracking at the individual repayment level in a GLIM.
Related Documents
Definitions and Terminology
UC | Use Case |
GLIM | Group Loan with Individual Monitoring |
GLIM Combination | The co-signing members participating in a GLIM who belong to the same group |
- Mandatory fields will be preceded by *
- Links are italicized
Introduction
Mifos currently deals with two types of loans,
- Loans given at the group level; i.e. the group has a single savings/loan account and the group is the primary unit that the system interacts with.
- Loans directly given to individual clients who are part of a group; a group is a collection of individuals.
A loan given at the group level is a Group Loan; the group receives a single loan from the MFI; a single repayment schedule is maintained for the entire group. The group provides credit worthiness to all its members; if one member is delinquent in the group, then all the contracting group members are also considered delinquent. The Individual monitoring feature aims to avoid this type of generalization of credit worthiness.
The performance history of each contracting member is calculated in slightly different way when compared to how it is calculated for a regular group loan.
Therefore, the group is the primary unit to interact with for transactions, but individual loan tracking to a certain extent should also be possible. This type of a loan is what is called a GLIM.
For a GLIM all transactions i.e. Disbursals, payments, adjustments, bulk entry etc. take place at the group level. The only major difference between GLIM and the current way group loans are implemented is that the initial loan account creation will specify the amounts given to each individual and their purposes, and how these loans affect the calculation of individual performance metrics. There are no changes in system behavior in terms of how arrears are calculated for a GLIM at the group level. It should also be understood that this feature would generally apply to a MFI with a more fluid idea of what makes up a group, where memberships to a group can change between each loan instance, or often only existing for one loan.
Note: GLIM and Standard Group Loans do not co-exist together. An instance of Mifos may either handle Standard Group Loans or GLIM loans and is determined by the enabling or disabling of the loanIndividualMonitoringIsEnabled config parameter in the database. Once set, this option cannot be changed after the first run of Mifos.
Repayment scenarios
There are nine different scenarios of payments:
- Early payment, less than installment amount
- Early payment, installment amount
- Early payment, excess amount
- Due date payment, less than installment amount
- Due date payment, installment amount
- Due date payment, excess amount
- Late payment, less than installment amount
- Late payment, installment amount
- Late payment, excess amount
In each case interest and principal are shared pro-rated between individual accounts accordingly to contribution of every member in Group Loan account.
Payments in each case are shared pro-rated between individual accounts accordingly to contribution of every member in Group Loan account.
Fees, Penalties and Charges for late payment are shared pro-rated between individual accounts accordingly to contribution of every member in Group Loan account.
Order of repay depends on payment case:
For accounts without fees and penalties there is always the same order of repay for each installment: 1st Interest, 2nd Principal
For accounts with fees and penalties where payments amount is less than installments amount or payment is equal installments amount, order of repay for each installment is : 1st Penalties, 2nd Fees, 3rd Interest, 4th Principal
In case of late payment, for accounts where penalties for late payment were imposed, order of repay for each installment is: 1st Charges for late payment, 2nd Penalties, 3rd Fees, 4th Interest, 5th Principal
- For accounts with fees and penalties, after making payment of excess amount, if there is no charge on next installment order of repay is: 1st Interest, 2nd Principal
User Stories
The following are a list of high level user stories; these will be broken down later into smaller user stories/user tasks/user work flows.
1. As a User, I want to be able to define a GLIM product so that it can be issued.
Preconditions
- The GLIM feature should be enabled.
Basic Flow
The Basic flow for defining a GLIM product is exactly the same as defining a regular group loan product.
- The GLIM loan amount that is based on last GLIM loan amount works exactly the same way as it does for a regular group loan.
- The GLIM loan amount that is based on the GLIM loan works exactly the same way as it does for a regular group loan.
- The user has the option to include this product in the loan cycle or not at the time of product definition.
Post Conditions
- As managed previously by the system for a regular Group Loan.
Alternative Flows
- As managed previously by the system for a regular Group Loan.
Validations
- As managed previously by the system for a regular Group Loan.
Note
- If the user wants to set up Additional fields for a GLIM, he can configure it using the admin tab, Define Additional Fields link in Mifos. This feature for a GLIM works exactly the same way it does for group loan.
Screen Shots
As this follows the functional path of a normal loan no screenshot is necessary.
Estimates
Relative Complexity
Effort (in Days)
Low | 1 |
2. As a User, I want to be able to create a GLIM account so that I can assign it to a customer.
Preconditions
- The GLIM feature should be enabled.
Basic Flow
- The user searches for the group for which a new GLIM account needs to be created.
- Out of the search results, the user selects one group and clicks on the open new loan account link.
- He then chooses the product instance and submits.
- On the create loan account page, the loan product attributes are displayed. There are two types of information the user has to enter here. First, the information about the individual members and second, information about group loan account which is common to all the members who have co-signed.
- On the group loan account page, the user selects the members who will co-sign for the group loan. A new section “Individual Details” is displayed with the following fields:
- All the active group members are displayed with a check box before each Member Name. Each group member taking part in the loan must have this checked.
- Display Member Name and Government ID as read-only information.If government ID is not configured as mandatory in the system, it should be hidden.
- Loan Amount: As a mandatory number field.
- Purpose of the loan: As a dropdown mandatory field. The dropdown options are defined by the MFI.
- On the Preview Page before submitting, details should be displayed the same as the standard group loan. The only difference that the loan total amount is a summation of all the individual member amounts selected on the previous page.
Post Conditions
- The system should keep track of individual amounts and other details captured in the Individual Details section.
- Related metrics in Performance History at a client and group level are updated. More details in:
Alternative Flows
- As managed previously by the system for a regular Group Loan.
Validations
- When opening a new loan account, if the group doesn't contain any member, an appropriate error should be displayed on the loan creation page.
- Error text: A group loan cannot be created since there are no active clients associated with the selected group.
- When saving, if the fields in the individual details are entered without selecting members, an appropriate error should be displayed on the loan creation page.
- Error text: You have entered details for a member you have not selected. Select the checkbox in front of the member’s name in order to include him or her in the loan.
- When saving, if the mandatory fields in the individual details section have not been fully entered for the selected members, an appropriate error should be displayed on the loan creation page.
- Depending on which fields have not been entered, either one or both the following messages appear.
- Error text:Please specify a non-zero loan amount for all selected clients.
- Error text:Please specify loan purpose for the selected client(s).
- When saving, if the number of selected members isn't at least two, an appropriate error should be displayed on the loan creation page.
- Error text: You must select at least two individual members in the "Individual Details" section in order to successfully create a loan.
- When saving, if the sum of individual amounts is not in the range of allowed amounts for the chosen instance (applicable to the group), an appropriate error is displayed.
- Error text: The sum of the amounts specified for each member exceeds the allowable total amount for this loan product. Enter individual amounts so that the total amount is between [min amount] and [max amount]
Estimates
Relative Complexity
Effort (in Days)
Medium | 3 |
3. As a User, I want to be able to edit/view the details of a GLIM account so that I can modify/view any of its details.
Preconditions
- The GLIM feature should be enabled.
- The GLIM that needs to be edited should already exist.
Basic Flow
- The user searches for the group loan account for which the account information needs to be modified.
- On the group loan account page, the user clicks on Edit loan account information.
- The Edit loan account information page is displayed with data previously defined.
- The edit permissions for the common group account information are the same as standard group loans except that Loan Amount and Purpose of Loan are not displayed.
- The edit permissions for the “Loan Account Details” (similar to the "Individual Details" in Story 2) Section of a loan in each state are shown below.
Loan Status
Attributes that are modifiable/editable
Partial Application & Pending Approval | No./Combination of members for GLIM, Loan Amount,Purpose of Loan |
Approved | Purpose of Loan |
Active | Purpose of Loan |
- To remove or add a group member to the loan, the user must check or uncheck the box next to the member. Upon moving to the preview page, this will result in totals being recalculated for the entire group.
Note:
When a loan is in Partial Application or Pending Approval, if new members are added to the group, the list of members displayed under the “Individual Details” Section on the edit page needs to be automatically be refreshed.
Post Conditions
- The total amount is recalculated for the new data that has been entered.
- New entries should be made in the change log page to capture details about the data modifications.
- Related metrics in Performance History at a client and group level need to be updated.
Alternative Flows
- As managed previously by the system for a regular Group Loan.
Validations
- Fields/Attributes which can be modified depend on the status of the loan; therefore the system should perform validations specific to the attributes modified.
Estimates
Relative Complexity
Effort (in Days)
Medium | 2 |
4. As a User, I want to be able to disburse the loan amount in a GLIM account so that I can track repayments starting from the disbursement date.
Preconditions
- The GLIM feature should be enabled.
- The GLIM that needs to be disbursed should already exist.
Basic Flow
- The user searches for a GLIM he wants to disburse.
- User clicks on disburse loan, system performs the product mix validation and disburse the loan.
- Enters Transaction details and submits the transaction.
Post Conditions
- As was previously managed by the system.
Alternative Flows
- As managed previously by the system for a regular Group Loan.
Validations
- At disbursal, if the Product Mix validation does not go through, the system will generate an error. As a result the combination of co-signing members needs to be changed accordingly. But since the group loan is in the application approved status, as per the editing permissions it is not possible to change the group member combination.
- One option is to cancel the loan and start over with a new loan, or
- Another option is to change the loan status back to "Pending Approval", where the edit permissions are more flexible as indicated in Story 3: As a User, I want to be able to edit/view the details of a GLIM account so that I can modify/view any of its details.
Screen Shots
As this follows the functional path of a normal disbursal no screenshot is necessary.
Estimates
Relative Complexity
Effort (in Days
High | 2 |
5. As a User, I want to be able to view the accurate Performance History of any participating client of a GLIM account.
Preconditions
- The GLIM feature should be enabled.
Basic Flow
- The user searches for a client/GLIM member whose performance history he wants to view.
- The metrics calculated and displayed are:
- Loan Cycle # - The GLIM product loan cycle counter is included in the aggregate if the ‘include in loan cycle’ option is checked while GLIM product definition.
- Income Generation Loan: 3
- Emergency Loan: 2
- Festival Loan: 4
- Income Generation Loan: 3
- Emergency Loan: 2
- Festival Loan: 4
- Amount of last loan - The loan amount of the most recent loan with "closed-- obligations met" status should be displayed.The most recent loan could be a GLIM that the client is a part of or an Individual loan.If the most recent "closed-- obligations met" loan is a GLIM that the client is a part of , then the amount displayed should be the loan amount associated with that individual client.
- # of Active loans - Loans with 'active in good standing' and 'active in bad standing' statuses.This count includes GLIMs? that the client is a part of.
- Delinquent portfolio - No change in the way the system calculates this metric.
- Total savings - No change in the way the system calculates this metric.
- Meetings attended - No change in the way the system calculates this metric.
- Meetings missed - No change in the way the system calculates this metric.
- Loan cycle per product - The loan cycle counter for the GLIM product that the client is a part of is displayed along with the loan cycle counters for the other products in the client’s portfolio.
- Loan cycle # aggregate is tracked only at the client level, and is incremented when “include in loan cycle” option while defining a product is turned ON.
- For example, consider this scenario,a client has successfully repaid the following loans:
- 3 Income Generation Loans (which have “include in loan cycle” turned ON)
- 2 Emergency Loans (which have “include in loan cycle” turned OFF)
- 4 Festival Loans (which have “include in loan cycle” turned OFF)
- This is what should be listed in the client performance history:
- Loan Cycle #: 3
- Loan Cycle per Product
- Using the same scenario, assume the "include in loan cycle” in turned ON for Emergency Loans
- Then the client performance history should display:
- Loan Cycle #: 5
- Loan Cycle per Product
Post Conditions
- As managed previously by the system for a regular Group Loan.
Alternative Flows
- As managed previously by the system for a regular Group Loan.
Validations
- This section is not applicable to this use case, since it’s a display of the client’s performance history.
Screen Shots
The information displayed in the Performance History is clearly stated within the Basic Flow. No screenshot is necessary.
Estimates
Relative Complexity
Effort (in Days)
High | 1.5 |
6. As a User, I want to be able to view the accurate Performance History of a Group which has GLIM accounts.
Preconditions
- The GLIM feature should be enabled.
Design Note
- All Metrics other than Total Loan Portfolio will work the same as a standard group loan. If we determine that the introduction of GLIM breaks the metric, then we will remove the display of that metric except for Total Loan Portfolio and # of Active Clients
Basic Flow
- The user searches for a Group whose performance history he wants to view.
- The metrics calculated and displayed are:
- Average loan size for individual members - No change in the way the system calculates this metric (Will not include GLIM in calculations)
- # Active clients - No change in the way the system calculates this metric.
- Amount of last loan - No change in the way the system calculates this metric.
- Total Loan Portfolio - GLIMs? should also be included.The total should include the total group level amounts of a GLIM.
- Portfolio at Risk - No change in the way the system calculates this metric.
- Total Savings - No change in the way the system calculates this metric.
- Loan Cycle per Product - No change in the way the system calculates this metric.
Post Conditions
- As managed previously by the system for a regular Group Loan.
Alternative Flows
- As managed previously by the system for a regular Group Loan.
Validations
- This section is not applicable to this use case, since it’s a display of the group’s performance history.
Screen Shots
The information displayed in the Performance History is clearly stated within the Basic Flow. No screenshot is necessary.
Estimates
Relative Complexity
Effort (in Days)
High | 1.5 |
7. As a User, I want to be able to reverse a GLIM account so that I can reverse the effect of the loan account on the book of accounts.
Preconditions
- The GLIM feature should be enabled.
- The GLIM that needs to be reversed should exist.
- The user should have permission to reverse a loan.
Basic Flow
- User goes to admin tab, Reverse a loan disbursal link.
- Searches for the GLIM he wants to reverse.
- Selects the loan, confirms and reverses it.
- The flow/feature specifications/validations for reversing a GLIM are the same as the Reverse a loan feature.
- Only GLIMs? that are active (good and bad standing) can be reversed.
Post Conditions
- As managed previously by the system for a regular Group Loan.
- Related metrics in Performance History at the client and Group level need to be recalculated.
NOTE:
- The status of the reversed loan is changed to 'canceled' with a 'reversed' flag.
- The related Performance Metrics at the individual level are,
- Loan Cycle #
- # of Active loans
- Loan cycle per product
- The related Performance Metrics at the group level are,
- Average loan size for individual members
- Total Loan Portfolio
- Loan cycle per product
Alternative Flows
- As managed previously by the system for a regular Group Loan.
Validations
- As managed previously by the system for a regular Group Loan.
Screen Shots
As this follows the functional path of a normal disbursal no screenshot is necessary.
Estimates
Relative Complexity
Effort (in Days)
Low | 1 |
8. As a User, I want to be able to redo a GLIM account so that I can rectify any error that might have occurred when the details of the account were entered.
Preconditions
- The GLIM feature should be enabled.
- The GLIM that needs to be redone should exist.
- The user should have permission to redo a loan.
Basic Flow
NOTE: Flow should follow the flow of the feature RedoingLoanDisbursals? with the editable fields indicated in Story 3: As a User, I want to be able to edit/view the details of a GLIM account so that I can modify/view any of its details.
- User selects "Redo Loan Disbursal" link on the Admin page.
- System makes the following validation:
- User has permission to perform this action.
- User is taken to the Redo Loan Account Search page to search for a group whose account is to be redone.
- Upon selecting a group, the user moves to the Redo Loan Account page and selects a loan to redo
- User is taken to the Redo Loan Account 1 page where the loan account information needs to be entered. This is the same as indicated in Story 3.
- After entering all the required fields, the user clicks on "Continue".
- User is then taken to the Redo Loan Account Installments page to review the installments. This will look like the review page indicated in story 3 except the user can now edit two additional set of fields:
- Actual Payment Dates
- Amount Paid
- After making relevant changes, the user clicks on "Preview".
- User is then taken to the Redo Loan Account Preview page the entire loan account is presented as a snapshot. If the user wants to make any changes he can click on "Edit loan account information" which redirects him to the Redo Loan Account 1 page.
- If the user is fine with the loan account information he can click on "Submit" which takes him to a confirmation page.
Post Conditions
- As managed previously by the system for a regular Group Loan.
- Related metrics in Performance History at a client and group level need to be recalculated.
- The related Performance Metrics at the individual level are
- Loan Cycle #
- # of Active loans
- Loan cycle per product
- The related Performance Metrics at the group level are
- Average loan size for individual members
- Total Loan Portfolio
- Loan cycle per product
- The related Performance Metrics at the individual level are
- The status of the redone loan is changed to 'Active in good standing' with a 'redone' flag.
Validations
- Same Validations as for RedoingLoanDisbursals? except Min/Max checking between disbursal date and first repayment.
- Also includes validations that total summation of individual loans is not outside the min and max for the loan.
Estimates
Relative Complexity
Effort(in Days)
Low | 1 |
9. As a User, I want to be able to enable the Individual Monitoring feature so that I can issue a GLIM.
Preconditions
- The GLIM feature is disabled.
- The user should have permission to edit the CONFIG_KEY_VALUE table in the database.
Basic Flow
- Enabling the GLIM disables the Standard Group Loan Feature and vice versa.
- Once Mifos is started for the first time, this setting cannot be changed.
- To enable GLIM, user enables ‘loanIndividualMonitoringIsEnabled’ in the CONFIG_KEY_VALUE table in the Mifos DB.
- To view Configuration settings
- View configuration settings link in the admin tab under the Manage Organization, then Organization Preferences Label should display what is defined in the config_key_value table.
NOTE:
- GLIM setting is a one time configuration. Both Group Loans and GLIM loans cannot co-exist in the same application instance.
- The default GLIM setting in a new build environment is 'disabled'.
Post Conditions
- As managed previously by the system for a regular Group Loan.
Alternative Flows
- Not Applicable.
Validations
- Not Applicable
Screen Shots
Configuration is field set within the database. Screen shot not relevant.
Estimates
Relative Complexity
Effort(in Days)
Low | 1 |
10. As the Mifos application, I want to be able to maintain a loan cycle counter for a GLIM, so that it can be tracked at the group and client level.
Preconditions
- GLIM product has been configured to be included in the loan cycle.
Basic Flow
- The loan cycle counter is incremented when a GLIM account is created (disbursed) and is decremented when a GLIM is rescheduled or written off.
- The loan cycle counter is incremented/ maintained at the client and group level irrespective of whether the “include in loan cycle” option is turned OFF or ON while defining a loan product.
- There are two separate GLIM loan cycle counters; one attached to co-signing client and one to the group as a whole (not the GLIM combination).
- At the client level,
- When a GLIM is created (disbursed) where a client is a co-signing member, the GLIM loan cycle counter attached to him is incremented and when a GLIM which he is part of is rescheduled or written off, the loan cycle counter is decremented.
- When a client is moved from one group (not GLIM combination) to another, the loan cycle counter does not get reset. The client’s loan cycles from the previous group (not GLIM combination) he was attached to are valid in the new group (not GLIM combination).
- At the group level (not at the GLIM combination level),
- The GLIM loan cycle counter attached to the group is incremented when a GLIM account is created (disbursed) and is decremented when a GLIM is rescheduled or written off.
- A GLIM can be availed by any two (or more) active clients who belong to the same group. As soon as a GLIM is created (disbursed) the loan cycle counter is incremented.
- A GLIM moves into a “closed-obligations met” status when the entire amount disbursed to the group has been repaid.
- When defining a product, if the "Include in Loan Cycle Counter" is selected, then this is tracked at the group and individual level, but only the individual level will be displayed in the performance history metrics. Reference Stories 1, 5, and 6.
- If during setup the user selects to include the GLIM in the loan cycle counter, this will turn on loan cycle tracking at the group level - The loan cycle counting will always be turned on with individuals when GLIM is enabled.
Post Conditions
- Related metrics in Performance History at a client and group level need to be calculated and displayed.
Alternative Flows
- Not Applicable
Validations
- Not Applicable
Screen Shots
This story has no front end requiring a screenshot. Verification and output is reflected in stories 5 and 6.
Estimates
Relative Complexity
Effort(in Days)
High | 3 |
Standard Considerations
Does the user need to be in a particular user hierarchy to use this feature? | No |
Does the office hierarchy affect the use of this feature? | No |
Are you using any existing permissions to control this feature? | Yes |
Are you adding any new permissions or changing existing permission to control this feature? | No |
Are you using any existing activities to control this feature? | No, (config setting will determine |
Are there any special considerations for upgrade scenarios? What will be the default value for new permissions? | N/A |
What will be the default values for default roles in a new|installation? | Admin default role with all permissions |
Associated Bugs
TO DO
Open Issues
- Due to time constraints, we will not address how implementing this will affect Bulk Entry, multiple loan account entry and multiple status update options. Instead, as we near feature complete on this feature we will test how the GLIM, if at all, affects each of this and then plan accordingly.
2. At ENDA, the loan amount for an individual in a GLIM is based on their personal loan cycle. So for the loan officer to determine the appropriate range of the loan amount that can be disbursed to an individual, he needs to refer to a report. Therefore, ENDA needs to build that report or display and track that information.