The information presented below may be used as a guide for planning your installation and setup of Mifos. You may decide in advance how to best configure Mifos to reflect your organization’s structure, practices, account types, terminology, the type of information you retain about each client, and even your holidays. We strongly recommend that you review this information prior to setting up and using Mifos.
Initial settings to set up Mifos including Internationalization, Properties Files, and certain setups under Administrative Configuration.
Mifos is currently available in English, French, Spanish, Chinese, and Portuguese and supports localization into additional languages. Mifos is designed using internationalization (il8n) standards. Mifos can be localized through an online translation tool called Translatewiki.net; more information can be found here.
All components that ship with Mifos are internationalized (including those stored in the database or XML files) and localizable, depending on the language chosen by the MFI.
Note the following for Mifos:
Country. An MFI can belong to only one country, which is specified during installation.
Currency. Currently, Mifos supports only a single currency per installation.
Time zone. MFIs can belong to only one time zone. Mifos stores and displays all operations/transactions in the server time zone.
Date formatting. Mifos supports DD/MM/YYYY as the date format (not MM/DD/YYYY).
Mifos needs to be configured before it can be deployed. Please read this page carefully before deploying Mifos. It includes details on how to customize your properties file, set database settings, and also how to configure certain options such as Lookup Options and Hidden/Mandatory Fields through the Admin tab in Mifos. Explanations of Administrative configuration can be found here as well.
In Shutdown Mifos, an Administrator can manage a pending shutdown of Mifos and view users that are logged into Mifos. The Administrator must have the permission "Can Manage Shutdown" in order to do this.
An Administrator can enter the amount of time before planning to shutdown Mifos, then Start Shutdown to start the process. After Start Shutdown, no more users are allowed to log onto Mifos and will get an error message if they try to do so. All other users that are already logged in get a message at the top of their screen notifying them that a shutdown will occur and that they will be logged off at that time.
If the Administrator changes their mind, they can Cancel Shutdown, and this will return Mifos back to normal. Users that are logged on will not see the message at the top anymore, and new users are able to log on.
This page also includes a list of all users that are logged onto Mifos, their branch office, their first and last names, and also what page they are on in Mifos.
The following configurations can be defined at the time of installation and changed at any time using links in the Manage organization section on the Admin tab. The following describes in details what options and labels are available for administrative configuration. For the latest details on how to configure these, see this section in Configuring Mifos.
Mifos allows the following labels to be renamed from the Define labels link on the Admin tab. The new labels will then appear throughout the Mifos UI. New labels should retain the same meaning as the original label (For example: you should not rename the label "Active in Bad Standing" to "Active in Good Standing".)
These labels are:
Look up options for the following attributes can be defined and specified during installation. Post-deployment, the options should not be deleted. However, more options can be added in each list, from the Define lookup options link on the Admin tab.
The client account attributes table describes which client attributes are mandatory and which are optional. But some attributes can be specified as mandatory/optional to suit the specific needs of different MFI’s. The rules around the entity creation and modification will depend on these data fields; therefore this classification into mandatory/optional fields should be done only before deployment and should not be modified later. These attributes are listed below:
System Wide (all applicable, such client, group, and center, personnel)
Client / System User fields
Loan
In addition, some data fields can be completely hidden from the Mifos UI. This should also be done pre-deployment, and should not be modified later. These are:
System Wide (all applicable, such client, group, and center, personnel)
Client / System User Fields
Mifos supports the following payment types, which are required for reporting purposes and have no financial implications:
For each of the transaction types listed below, one or more of the above payment types can be set as Acceptable, from the Define accepted payment types link on the Admin tab. Only the accepted payment types will then be available as the possible mode(s) of payment for the transaction type. Once a payment type has been included as an accepted payment type for a transaction, it should not be removed as it can affect existing transaction entries. Transaction types are as follows:
The payment type for collectoin sheet entry is always Cash only.
Note: Payment types have no direct impact on GL codes. An MFI, recognizing that all of its loan disbursements are handled via checks, might assign a particular GL code that has a correlation to a checking account. The logic for that is outside Mifos.
In addition to the pre-defined fields, an unlimited number of custom fields can be used to define user data, through the Define additional fields link on the Admin tab. These can be either personal or MFI-related fields.
The categories for which a custom field can be created as well as the type of custom field are pre-defined. A user with required permissions can create new custom fields.
The rules and attributes for custom field creation are provided in the table below. The table also shows those values that can be edited after a custom field is created.
|
Attribute Name |
Data type |
Range |
Can be modified after definition |
Description /Notes |
|---|---|---|---|---|
|
Category |
Drop down- Single select |
Client, Group, Center, Loan, Savings, User, Office |
No |
|
|
Label |
Text |
N/A |
Yes |
The change, if any, will be applicable to all the existing and new records or accounts |
|
Data Type |
Drop down- Single select |
Text; Integer |
No |
|
|
Default Value |
Yes |
The change, if any, will be applicable to all the new records or accounts |
||
|
Mandatory |
Checkbox |
Yes |
The change, if any, will be applicable to all the new records or accounts |
Checklists remind users of the internal processes required before the status of accounts or customer records can be changed. Checklists are optional, and can be created and associated with certain states of customer records or accounts. Checklists are not attached to individual customer records or accounts, but are displayed in between state changes. For example, if the system administrator defines a checklist for the Pending Approval state of a loan account, every time a user attempts to change the state of a loan account to Pending Approval, the checklist is displayed to the user. The user can then make sure each condition on the checklist has been satisfied. Note that a user's responses to the checklist are not saved.
A checklist is defined for the destination state and is not dependent on the source state. At most one checklist is allowed for each destination state in clients, groups, centers, loan accounts and savings accounts.
Only the latest version of a checklist is maintained in the system. Checklists can be modified and or made inactive.
Checklists are defined and saved using the Define new checklist link on the Admin tab, so that they can be attached to states of customer records and accounts. Attributes of checklists are provided in the following table:
|
Attribute Name |
Range |
Mandatory for Active/Inactive states |
Can be Modified after Definition or not? |
Remarks |
|---|---|---|---|---|
|
Name |
50 char |
Yes |
Yes |
|
|
State |
Active or Inactive |
N/A |
Yes |
If the checklist is Inactive, it is not displayed in the respective state transitions. When a checklist is created, the state is Active by default. |
|
Type |
Client, Group, |
Yes |
Yes |
|
|
Displayed when moving into status |
States applicable to the selected type (i.e., Client, Group, Center) Loans, or Savings) |
Yes |
Yes |
Status applicable to the type selected |
|
Created Date |
N/A |
N/A |
N/A |
System generated |
|
Created By |
N/A |
N/A |
N/A |
System generated |
|
Items |
N/A |
At least one item is mandatory. |
Once specified, an item cannot be modified. But it can be deleted. |
These are line items with a size limit of 250 characters per line item. There is no maximum limit on the number of items that can be included in a checklist. |
The saved checklists are attached to states of accounts or customer records according to the type and state specified during creation, as follows:
Working and non-working days can be specified during configuration. The property FiscalCalendarRules.WorkingDays is used to specify which days of the week are working days. For details on these properties and how to configure them, see this section in Configuring Mifos.
Holidays and Moratoriums can be defined from the Admin tab by a user with appropriate permissions using the Define new holidays link. By default, no holidays are defined. Each holiday is specified by a name and from/to dates, which are inclusive and apply only to future dates. A holiday is also defined by a repayment rule, which is used for the rescheduling of meetings and repayments that fall on that holiday(s).
Holidays/Moratoriums and Offices
Holidays and Moratoriums can be applied at the branch office level up to organization wide. When creating a holiday, the office hierarchy is displayed (depending on how your Mifos is configured) and offices below Head Office can be selected. If a parent office is selected (any office above a branch), all offices below that office inherit the holiday as well. It is also possible to individually select one or more branch offices that a holiday applies to.
Repayment Rules
The same options can be set for holidays and non-working days, and these apply to both.
The rule options are:
The rule can be defined for or after specific meetings, loan disbursal dates and loan repayment dates are scheduled, with the following implications:
Meetings: Meetings cannot be scheduled to regularly fall on a non-working day. If a meeting occasionally falls on a non-working day (for example, if meetings are scheduled for the third day of every month, which may occasionally fall on a non-working day), then the system moves the meeting according to the rule defined. The collection sheet will be updated according. [Note: if repayments are moved to the next meeting, then attendance is counted twice?]
Loan disbursement date: For loans not yet disbursed, the user cannot specify a disbursement date that falls on an existing non-working day. If the non-working day is defined after the disbursement date is set, the system changes the date according to the rule defined. The system validates the first repayment date at the same time.
Loan repayment schedule: The repayment schedule is calculated factoring in known non-working days. If a non-working day is defined after a loan repayment schedule is calculated, the system updates the payment dates and updates the repayment schedule for the loan. Note that no changes to interest are made, even if the balance declines. If multiple repayment dates are affected, then all of the repayments that were delayed by the holiday must be repaid together on the next scheduled repayment date, according to the rule defined.
Mandatory savings deposit schedules, voluntary deposit schedules, and client fee schedules also take non-working days into account.
Meetings and payments that are rescheduled are flagged in the schedule display with a *.
The Chart of Accounts (CoA) is a list of accounts in the general ledger, systematically classified by title and number. The account number is referred to as the GL code. The appropriate financial transactions are posted against these GL codes. Mifos provides a default CoA. From Mifos 1.1 onwards, the CoA configuration is in XML. This section in Configuring Mifos describes how to customize your own CoA.
See also: Microfinance Accounting Issues
All offices under the HO use the same CoA. The list of accounts is organized into the following general ledger categories:
The Mifos CoA supports up to four levels of categories.
Mifos supports and ships with the following CoA in the configuration file.
Please review the following information very carefully:
10000 -- ASSETS
11000 -- Cash and bank balances
11100 -- Petty Cash Accounts
11101 -- Cash 1
11102 -- Cash 2
11200 -- Bank Balances
11201 -- Bank Account 1
11202 -- Bank Account 2
13000 -- Loan Portfolio
13100 -- Loans and Advances
13101 -- Loans to clients
13102 -- Emergency Loans
13103 -- Special Loans
13200 -- Loan Loss Provisions
13201 -- Write-offs
20000 -- LIABILITIES
22000 -- Interest Payable
22100 -- Interest payable on clients savings
22101 -- Interest on mandatory savings
23000 -- Clients Deposits
23100 -- Clients Deposits
23101 -- Savings product 1
23102 -- Savings product 2
24000 -- Mandatory Savings
24100 -- Mandatory Savings
24101 -- Mandatory Savings Accounts
30000 -- INCOME
31000 -- Direct Income
31100 -- Interest income from loans
31101 -- Interest on loans
31102 -- Penalty
31300 -- Income from micro credit & lending activities
31301 -- Fees
31302 -- Processing Fees
31303 -- Annual Subscription Fee
31401 -- Income from 999 Account
40000 -- EXPENDITURE
41000 -- Direct Expenditure
41100 -- Cost of Funds
41101 -- Interest on clients voluntary savings
41102 -- Interest on clients mandatory savingsUsers should not edit a GL code post-installation. The CoA is set once in Mifos, at implementation time. Thereafter, the existing GL Codes should not be edited/deleted. However, new GL Codes can be added under defined sub-categories.
Mifos is required to make debit/credit entries, in a transactions table, when a transaction is made. The entries should be made against the lowest level GL Code under a category. For example, a fee transaction is:
An example of complete financial transaction: If a loan payment of Rs. 1000 is received (by cash) for installment 3 on Jan 1st, 2006 and a user with username mariea records it in the system on Jan 3rd, 2006, Mifos will make the following entries in the transaction table:
| Column Name | Description |
|---|---|
| Date | Date of transaction- 01/01/2006 |
| Payment ID | System generated payment ID |
| Payment Type | Cash |
| Receipt/check number and date | As specified by the user |
| Transaction ID | System generated transaction ID |
| Related transaction ID | - (relevant only for an adjustment) |
| Installment number | 3 since the payment is made for installment 3 |
| Type | Payment recd |
| GL Code | |
| Debit | - |
| Credit | 1000 |
| Balance | Remaining loan balance (remaining principal + interest + fees ) to be paid |
| Date posted | 01/03/2006 |
| Posted by | Mariea |
| Notes | - |
The CoA is divided into four categories: ASSETS, LIABILITIES, INCOME and EXPENDITURE. The sign of the entry depends on whether it’s a Dr or a Cr AND under which category it is being recorded. The category is included in parenthesis for each accounting entry. While making the accounting/financial entries, the following rules should be used for the signs based on which category the entry falls under.
Assets and Expenditure
Liabilities and Income
Events that require a debit/credit entry are listed below.
Fee is received from client/group/center:
Misc fee is received from client/group/center:
Misc penalty is received from client/group/center:
Adjustment in client/group/center accounts when the last received amount is nullified.The last payment has to be broken down in the components and separate DR/CR entries must be made for each one of them.
Fee /Misc fee nullified:
Misc Penalty nullified:
Loan is disbursed:
Principal installment received:
Interest installment received:
Fee charged is received:
Penalty charged is received:
Misc fee charged is received:
Misc penalty charged is received:
Adjustment, where last payment is nullified. The last payment has to be broken down in the components and separate DR/CR entries must be made for each one of them.
Principal nullified:
Interest nullified:
Fee nullified:
Penalty nullified:
Loan account is moved to Closed- Written off state
Deposit is made in voluntary/mandatory savings account:
Withdrawal is made in voluntary/mandatory savings account:
Interest is posted to the account:
Adjustment- Voluntary/Mandatory: last deposit is nullified/decreased/increased. A reverse entry of the original transaction should be made. Also, a fresh entry with the new deposit amount should be made.
Adjustment- Voluntary/Mandatory: last withdrawal is nullified/decreased/increased. A reverse entry of the original transaction should be made. Also, a fresh entry with the new withdrawal amount should be made.
Adjustment: Account balance is reduced:
Adjustment: Account balance is increased:
Adjustment: Interest earned is reduced:
Adjustment: Interest earned is increased:
Amounts entered in the system should be stored as per the decimal precision specified by MFI. Amounts should be rounded only in the specific circumstances described below. Loan disbursal amounts should not be rounded.
Loan repayments:
When the rounding of loan repayment increases 999 account balance:
When the rounding of payment decreases 999 account balance:
The following rounding rules apply to savings accounts:
When the withdrawal in savings increases the 999 account balance:
· DR Mandatory Savings account (Liabilities) 24101
· CR 999 Account (Income) 31401
When the withdrawal in savings decreases the 999 account balance:
· DR 999 Account (Income) 31401
· CR Mandatory Savings account (Liabilities) 24101
Example:
Payment of $100 for loan repayment is received by the MFI. This payment includes payment for the principal ($60), interest ($25), fee ($10) and penalty ($5). The following transaction entries are made:
System handling of merging of subcategories as long as the functionality ID of the category is not modified. Guidelines on merging will be included in the installation document. For example, for the above CoA, following merging will be supported:
|
22000 |
Interest Payable |
|||
|
|
22100 |
Interest payable on clients' savings |
||
|
22101 |
Interest on mandatory savings |
|||
|
22102 |
Interest on mandatory savings |
|||
|
23000 |
|
Clients' Deposits |
||
|
|
23100 |
Clients' Deposits |
||
|
23101 |
Savings accounts |
|||
|
24101 |
Mandatory Savings accounts |
|||
Mifos supports a single currency for an MFI and its offices. Mifos also supports setting an additional currency specifically for loan products and loan fees.
The system adjusts the last installment (increase or decrease) for loan accounts to handle the amount changed due to rounding. For example, if the actual repayment due = 181.95 and after rounding it becomes= 181, the system adds the 0.95 to the last installment due.
last modified 2010-04-14 14:40
Funds are donations or grants provided to the MFI specified purpose. Such funds remain even when the specified purpose is achieved and accomplished since they would be accounted for as sources of funding which remain in equity.
Sources of funds can be managed (created and modified) at the HO and other offices will inherit the details of these funds.
| Sl. No. | Name | Data Type | Default | Range | Mandatory for Fund creation | Can be modified after creation | Description |
|---|---|---|---|---|---|---|---|
| 1. | Fund Name | Text | None | N/A | Yes | Yes | It should be a unique value in the system |
| 2. | GL Code | Drop-down, Single select | None | fund Codes for funds from CoA | Yes | No |
The defined funds will be associated with loan products through loan product definition. When a new fund is created or an existing fund is modified, the additions/modifications should be reflected in the list of funds in each loan product.
Mifos is shipped with the following source of funds:
| 1. Project/donor: for funds | |
|---|---|
| 00 | Non Donor |
| 01 | Funding Org A |
| 02 | Funding Org B |
| 03 | Funding Org C |
| 04 | Funding Org D |
Entities to set up that pertain to an MFI such as Offices, Users, Fees, Products (Loans and Savings), Meetings, and Checklists
During the initial system configuration, an MFI can configure offices at the following levels. The hierarchy as well as the names of offices can be defined from the Define a new office link on the Admin tab. The middle three levels are optional.
The head office (HO) is the main or parent office for an MFI and is automatically created by Mifos. Users can optionally create regional offices (RO), sub-regional offices, and area offices (AO), which exist primarily for managerial and administrative purposes. System users with appropriate permissions can create BOs, which are the only offices to which clients can belong. This is the level at which all client interactions take place. The office hierarchy is defined from the View office hierarchy link on the Admin tab.
Once an office is defined as an HO or BO, it cannot be changed into a different office type, such as regional office, sub-regional office or area office. However, offices of these three types can be changed to any other level except for HO.
Note: If an AO or HO wants to create clients and offer services to the clients, they need to create a “virtual branch” to which clients are then assigned.
The rules and attributes for office creation, provided in the table below, are divided into two groups:
| s. no. | attribute name |
data type |
range | Default | Editable in Active/Inactive States | mandatory for "active" | description/notes |
|---|---|---|---|---|---|---|---|
|
Attributes During Office Creation |
|||||||
| 1. | Office Name | Alphanumeric | N/A | None | Yes | Yes | This is a unique name for this office within the MFI. |
| 2. | Office Short Name | Alphanumeric (Maximum four characters without space) | N/A | None | Yes | Yes | This short name is used for internal reports, UI pull-downs, etc. This must be unique within the MFI. |
| 3. | Office Type | Drop-down | The complete list includes: Branch Office; Area Office; Sub- Regional Office; Regional Office, and Head Office. Depending on the levels present in office hierarchy, this list changes | None | No | Yes | This is the name of the office level. This should be selected from the list. |
| 4. | Parent Office | Drop-down | The complete list includes: Area Office; Sub- Regional office; Regional Office; Head Office. Depending on the levels present in office hierarchy, and office type of the office being created, this list changes. | None | Yes | Yes | This is the name of the office this office reports to. This should be selected from a list of already defined offices. The HO does not have a parent office. For all other offices, offices above their level can be the parent office. For example, an HO, AO, or SO can be the parent office of a BO. Any offices above its level can be the parent office of an AO, based on the defined office hierarchy. |
| 5. | Address 1 | Alphanumeric | N/A | None | Yes | Yes | This is the address of the office |
| 6. | Address 2 | Alphanumeric | N/A | None | Yes | No | |
| 7. | Address 3 | Alphanumeric | N/A | None | Yes | No | |
| 8. | City | Drop-down | N/A | None | Yes | Yes | |
| 9. | State | Drop-down | N/A | None | Yes | Yes | |
| 10 | Country | Drop-down | N/A | None | Yes | Yes | |
| 11 | Postal Code | Alphanumeric | N/A | None | Yes | Yes | |
| 12 | Telephone | Alphanumeric | N/A | None | Yes | No | |
| 13 | Question Groups | Alphanumeric/Numeric/Date | N/A | N/A | Yes | No | For details, refer Question Groups. |
|
Attributes Viewable/Editable Only After Creation |
|||||||
| 14 | Status | Drop-down | Active; Inactive | Active | Yes | N/A |
HO cannot be made inactive. By default when an office is created it would be in Active state. The state can be modified later on from the Details page. |
| 15 | Office ID | N/A | N/A | N/A | N/A | Yes | This is the system generated ID for the office. |
By default, offices are created in Active state. New users can be assigned to offices only in Active state. Offices at all levels, except HO, can be made Inactive according to the following rules:
Mifos system users must be unique in the system. Uniqueness is confirmed by their government ID, if available, or their name and date of birth. All users are assigned to a specific office. Users that belong to branches can be identified as either non-loan officers or as loan officers, which impacts their data scope (enter link). Users are allowed to perform activities in Mifos based on their user role, which is a collection of permissions. Only users in an Active state can access the system.
At each office, any user with the required permissions can create, view and manage other users in his/her data scope, through the Define new system user link on the Admin tab. A user is created with the following attributes, some of which can be modified after creation.
| s no. | attribute name/th> | data type | range | default | mandatory for active state | editable after active state | can be modified by user from the my setting section | description/notes |
|---|---|---|---|---|---|---|---|---|
| 1. | First Name | Alphanumeric | N/A | None | Yes | Yes | Yes | For details, see Name. |
| 2. | Middle Name | Alphanumeric | None | None | No | Yes | Yes | |
| 3. | Second Last Name | Alphanumeric | None | None | No | Yes | Yes | |
| 4. | Last Name | Alphanumeric | None | None | Yes | Yes | Yes | |
| 5. | Office | Click and select | As per data scope of logged in user. | None | Yes | Yes | No | This is selected from a list of offices. The values in the list are dependent on the data scope as per office hierarchy. |
| 6. | User Title | Drop-down | Options defined by HO | None | No | Yes | No | This is the personnel's actual title in the office, like CFO, Accountant, and Sr. Loan Officer. These titles are defined by the MFI. |
| 7. | User Hierarchy | Drop-down | Loan Officer; Non-Loan Officer | None | Yes | Yes | No |
User hierarchy and the office level define the data scope of the user. Refer Data Scope
The Loan Officer user hierarchy exist only at the BOs. Users at other office levels are all non-LOs. Note: Clients can be assigned to LOs only. Clients and LOs must belong to the same branch. |
| 8. | Alphanumeric | N/A | None | No | Yes | Yes | ||
| 9. | Roles | Drop-down - Multi- select | All Defined Roles | None | No | Yes | No | One or more roles can be selected from a list of membership roles. For more details, see Roles. |
| 10. | Government ID # | Alphanumeric | N/A | None | As per configuration | No | No | Government ID can be configured as mandatory or optional. |
| 11. | DOB | Date | N/A | None | Yes | No | Yes | Age calculated as per the DOB is mentioned in the Preview and User Details page. |
| 12. | Gender | Drop- down | Male; Female | None | Yes | Yes | Yes | |
| 13. | Language Preferred | Drop- down | English; Spanish | MFI language | No | Yes | Yes |
NOTE: This feature does NOT work. One language can be designated as preferred. If left blank, system assumes MFI language as the user preferred language. |
| 14. | Address 1 | Alphanumeric | N/A | None | Yes | Yes | Yes | |
| 15. | Address 2 | Alphanumeric | N/A | None | No | Yes | Yes | |
| 16. | Address 3 | Alphanumeric | N/A | None | No | Yes | Yes | |
| 17. | City | Alphanumeric | N/A | None | Yes | Yes | Yes | |
| 18. | State | Alphanumeric | N/A | None | Yes | Yes | Yes | |
| 19. | Country | Alphanumeric | N/A | None | Yes | Yes | Yes | |
| 20. | Postal Code | Alphanumeric | N/A | None | No | Yes | Yes | |
| 21. | Telephone | Alphanumeric | N/A | None | No | Yes | Yes | |
| 22. | Question Groups | Mix | N/A | None | Configurable | Yes | No | For details, see Question Groups. |
| 23. | Username | Alphanumeric | N/A | None | Yes | No | No |
This is the ID with which this user accesses the system. System verifies and ensures that no two users have the same username. |
| 24. | Password | Alphanumeric | 6 to 20 characters | None | Yes | Yes | Yes |
Used to authenticate the users when they attempt to access the system.
A password generator is out of scope. Admin has to specify the new password while resetting password for a user. The user is required to change the password after the first login. For details, refer Passwords. The passwords can be edited from the User Details page. Users can change the passwords from their My Settings section. |
| 25. | Confirm Password | Alphanumeric | 6 to 20 characters | None | Yes | Yes | Yes | The passwords entered in Password and Confirm Password fields should match. |
| 26. | Date of Joining MFI | Date | N/A | Current date | No | No | No | |
| 27. | Date of leaving last office | Date | N/A | None | No | No | No | This is the system-generated date of leaving the last branch. This is recorded by the system when the user is transferred to another office. |
| 28. | Date of joining office | Date | N/A | None | N/A | N/A | No | System generated. This is the date when user record was created. |
| 29. | Status | Drop-down | Active; Inactive | None | N/A | N/A | N/A |
Before a Loan Officer can be marked as Inactive, all the clients, groups, and centers must either be transferred to another Loan Officer or should be Closed/Cancelled. |
| 30. | Notes | Alphanumeric | N/A | None | No | Yes | No |
When the administrator adds a user to Mifos, a user account is created in an active state. User accounts are in either an Active or Inactive state, and there is no limit to the number of times a user state can be changed. A user must be Active to access the system. Loan officers can be made Inactive only if there are no clients assigned to them.
User accounts are assigned a username and password, which the user enters to log in to Mifos. After initial login, the user is required to create and confirm a new password consisting of 6-20 alphanumeric characters. A user can change the password after login. The user is prompted for the following before confirming the password change:
Security is ensured through the following functions:
A user’s data scope defines the set of data that a user can view and access and to which a user’s permissions (like edit and create) apply [link to permissions]. The data scope is determined by both the office hierarchy and the user hierarchy.
The way in which users can interact with Mifos is specified by their user role or roles, which are defined by the MFI. Roles are specified based on predefined system activities and permissions, as follows:
A user can be assigned any number of roles and will be granted the permissions of each. For example, if one role gives a user a Create permission for a particular record and another gives him Modify permission for that record, he’ll be able to both create and modify the record.
Permissions cannot be granted outside a role. If a user needs permissions outside a role, a new role can be created to give him those permissions.
Role modification. Permissions associated with a role can be modified. If a role is modified, all users associated with the role inherit the change. A role can also be deleted. When this happens, all users assigned to that role will lose permissions associated with that role on their next login. However, if a user has the same permission granted through another role that is still Active, he retains the permission.
last modified 2009-12-16 07:27
MFIs can charge fees for various services offered, such as membership fees, account charges, etc. Fees can be applied to loan accounts, and to client, group, and center accounts. At this time, Mifos does not support savings account fees.
In addition to fees, penalties can be charged on loan accounts. While fees are charged for the various services offered by an MFI, penalties are charged to penalize the customers for deviating from the rules of repayment.
Specific types of fees, such as a monthly membership fee for client accounts, are referred to as fees. For loan accounts, fees are included in the product definition. Mifos does not match the periodicity of a fee with a loan repayment schedule.
Fees are defined using the Define new fees link on the Admin tab. In addition to naming the fee and identifying the type of account it applies to, a frequency is specified. For fees that are to be applied periodically, the schedule is defined. For fees to be applied on a one-time basis, the time is defined. The fee and amount and the accounting code to which it should be applied is also defined.
An MFI defines a fee according to the attributes provided in the following table. All attributes in the table are mandatory.
|
S. No. |
Attribute | Data Type | Range |
Description |
|---|---|---|---|---|
| 1 | Fee Name | Alphanumeric (50 characters) | N/A |
Fee Name is not unique. Duplicate fee names are allowed. * Once defined, this attribute cannot be modified. |
| 2 | Fee Category | Drop- Down |
* All Customers * Client * Group * Center * Loans |
Once defined, this attribute cannot be modified. |
| 3 | Frequency of fee charged | Drop- Down |
Single Charge; * Periodic Charge |
Once defined, this attribute cannot be modified. |
| 4 | Time of charge |
Drop-Down for Single charges; * Number and Unit for periodic charges |
For Single Charges, the options are: * Monthly |
For Single Charges, options 2 and 3 are applicable for Loan Accounts only
For periodic charges, the max amount of weeks or months the fee can be applied is 999. |
| 5 | Default fees | Check Box |
Yes; No |
If selected, the fee is attached to the category by default. * For example, if fee category is “Client” and Default fee is selected, this fee is included by default as “Admin set fees” for every new client record created. * This option will not be available for “Loan” fees. |
| 6 | Currency | Dropdown | Currencies set in Configuration | Only appears if Mifos configuration has multiple currencies. Currency selected is the currency for the fee. Only applies to fees that are a flat amount. See CDLP for more details. |
| 7 | Fee Calculation Method | Drop-Down |
Amount; * Amount calculated as % of a loan amount; * Amount calculated as % of (loan amount +interest); * Amount calculated as % on interest |
Options 2-4 are available and visible only for Loan Product fee category. Once defined, this attribute cannot be modified. * * Amount: Amount in the currency used by the HO. For example, $50. * * Loan Amount: The total loan amount (Principal) approved * * Interest: Total interest due across the duration of the loan as calculated at the beginning of the loan. This applies to both Flat and Declining Balance loans. |
| 8 | Fee Amount/Rate | Number or % |
0-999% or Amount |
Amount, is a flat amount. For other fee calculation methods, this is a % amount. |
| 9 | State | Drop-Down | Active; Inactive | Fee is created in “Active” state by default. It can be made inactive also |
| 10 | Fee GL Codes | Drop-Down | List defined by HO (from Chart of Accounts) | Only one GL code is associated to a fee. |
Edits. Users with appropriate permissions can make changes only to the state of the fee and to the fee rate. A fee can be changed from Active to Inactive or vice versa, although fees cannot be deleted from Mifos. For fees attached to loans, changes can be made to the flat rate or to the percentage and base used for calculating the fee. When a fee is changed, the change is automatically applied to new accounts and must be reapplied to existing accounts.
Once a fee is defined, it appears as an option whenever a user creates an account of the type for which the fee was defined. For example, for client accounts, only fees assigned to categories Clients and All Customers are visible. Users can attach any of the available fees to the account. If the fee is a Loan fee and defined as a calculated value, then the amount is then calculated per the fee definition and added into the repayment installment schedule.
An LO can apply multiple fees to an account, and can waive the next installment only of a fee payment. An LO cannot waive an amount that has already been paid. An LO can also remove a fee from an account altogether. Interest is never charged on a fee amount.
Note the following:
For specific information about applying fees to different types of accounts, see Account Management
A product is a financial offering by an MFI to its clients:
Loan products are defined from the Define new loan product linkon the Admin tab, according to the attribute definitions provided in the attribute table that follows. Loan products can have interest applied in one of three ways: flat, declining balance, and declining balance with equal principal installment. See Interest calculations for loan accounts for more information.
An MFI can specify that default loan amounts are calculated in one of three ways:
The values entered for whichever method is chosen for both the loan amount field and the number of installment field should be for successfully repaid loans, not rescheduled loans, and should apply to loans based on the same product. Note that previous loans can have late payments and still be considered successfully repaid.
Loan default definitions can be modified after they have been created. Changes are effective immediately and will affect new loan accounts only.
If your MFI is set up to have more than 1 currency, you can specify a currency for the loan product during creation. This is currency will be inherited in all loan accounts created from that loan product. Mifos does not display currency of values throughout, so it is recommended to denote currency in the name of the Loan Product. See Currency Denominated Loan Products for more details.
Savings products are defined from the Define new savings product linkon the Admin tab, according to the attribute definitions provided in the attribute table that follows. Note savings products are defined as either mandatory or voluntary.
Attributes for product categories, all products, and attributes specific for loan products and savings products are provided in the following tables.
Product categories are logical groupings of products which can be used for reporting purposes. Product categories can be created anytime.
| S. no. | attribute name | Data type | range | mandatory/optional | can be modified after product category creation | modifications to be applied to all open accounts or to new accounts | description/notes |
|---|---|---|---|---|---|---|---|
| 1. | Product Type | Drop-Down | Loan/Savings | Mandatory | No | N/A | Once a category is saved its product type cannot be changed. |
| 2. | Category Name | Text (50 char) | None | Mandatory | Yes | All closed, open, and new accounts | If category name is changed, change takes effect immediately and all reports generated and all transactions recorded after the change takes the new name. |
| 3. | Category ID | System generated | N/A | N/A | No | N/A | Unique ID, to be generated by the system. |
| 4. | Description | Text (250 char) | None | Optional | Yes | All closed, open, and new accounts | |
| 6. | Status | Drop-Down, single select | Active; Inactive | Mandatory | Yes | New accounts | A category is created in Active status by default. If status is changed from Active to Inactive, existing accounts are not affected, and they can continue to completion under the same product category |
At the lowest level of product hierarchy, products are the different offerings of a product type to the MFI clients. Products are defined in terms of interest rates, minimum and maximum loan amount and purpose of the loan. Personal loan, Agricultural loan, Cattle loan etc, are a few examples of Products. The sections below detail out the flexibility provided by the Mifos system in defining these products.
The table below lists down the attributes common for loans and savings. Following this, the attributes specific to each product type has been listed down under the respective sections.
| s. no. | attribute name | data type | default value | range | Mandatory/ optional for products | can be modified after product creation | modifications to be applied to all open accounts or to new accounts | can be modified at account level |
description/ notes |
|---|---|---|---|---|---|---|---|---|---|
| 1. | Product Type Name | N/A | None | Loan/Savings | N/A | No | N/A | No | |
| 2. | Product Category | Drop-Down | None | Categories defined for Product Type | Mandatory | Yes | Closed + Open + New Accounts | No | See Product Categories. The change in product category is effective from the point the change was made. |
| 3. | Product Name | Alphanumeric (50 chars) | None | None | Mandatory | Yes | Closed + Open + New Accounts | No | Should be unique with the database that it is attached to. Product Details page should display the full name of the product. |
| 4. | Product short name | Text (4 chars without spaces) | None | None | Mandatory | Yes | Closed + Open + New Accounts | No | This is for bulk entry, internal reports, UI pull-downs, etc. This has length limits and must be unique within an installation. |
| 5. | Description | Text | None | None | Mandatory | Yes | Closed + Open + New Accounts | No | This is the brief description of the product. If empty, this attribute name should not appear in the UI. |
| 6. | Product Code | System ID (string) | None | None | Mandatory | No (System generated Uniqued ID) | N/A | No | This is not to be displayed in the UI. |
| 8. | Start Date | Date |
Today's date |
Current date to one year from current date | Mandatory | Once the start date is reached and the system has changed the state to “Active”, start date cannot be changed. But it can be changed if product is still in “Inactive” status. | All Open and New Accounts - This cannot be changed once any account is created | No |
Date when the status of the product is changed to “Active” by the system and the product starts surfacing in the New Loan Creation page. Effective date of change is collected and state change occurs at 12:01am of the day specified. |
| 9. | End Date | Date | None | One year from curent date | Optional | Yes | All Open and New Accounts | No |
New accounts should not be created after the end date has passed. State change occurs at 11:59 p.m. of the date specified as the end date. If no end date is entered, then new accounts can always be created after start date |
| 10. | Applicable for groups/ clients/ centers | Drop down; Single-select | None |
Clients; Groups; Centers |
Mandatory | Yes | New accounts | No |
Whether/not product can be given to individuals, groups, or both. Center’s options are applicable only for savings accounts. |
| 11. | Status | Drop down | As per the start and end dates | Active; Inactive | N/A | Yes | New accounts | No | During creation of a product, status is not user specified. System should create the product in active/inactive states as per the start date. |
| s. no. | attribute name | data type | default value | range | Mandatory/ optional for products | can be modified after product creation | modifications to be applied to all open accounts or to new accounts | can be modified at account level |
description/ notes |
|---|---|---|---|---|---|---|---|---|---|
| 1. | Min loan amount | Number | None | None | Mandatory | Yes | New Accounts + current open accounts in Partial, Pending and Cancelled states | No | |
| 2. | Max loan amount | Number | None | None | Mandatory | Yes | New Accounts + current open accounts in Partial, Pending and Cancelled states | No | |
| 3. | Default amount | Number | None | Optional | Yes | New Accounts | No | The value can be overwritten at account level for the particular account | |
| 4. | Sources of funds | Multi-select | None | Defined by MFI | Optional | Yes | New Accounts + current open accounts in Partial, Pending and Cancelled states | Yes | Multiple sources of funds can be attached to a product. |
| 5. | Frequency of installments | Number | 1 week | Number of weeks/months | Mandatory | No | New Accounts | No |
If product frequency conflicts with meeting schedule, LO would not be able to assign this product to a client Frequency can be every N number of weeks or every N number of months. |
| 6. | Minimum number of installments | Number | 1 | None | Mandatory | Yes | New Accounts + Current Open Accounts in Partial, Pending and Cancelled states | No | The number of installments entered by LO at the account level should be in between the minimum and maximum number of installments specified at the product definition level. |
| 7. | Maximum number of installments | Number | None | None | Mandatory | Yes | New Accounts + Current Open Accounts in Partial, Pending and Cancelled states | No | |
| 8. | Default number of installments | Number | None | None | Mandatory | Yes |
New Accounts |
Yes | |
| 9. | Interest rate type | Drop Down | None | Flat; Declining Balance | Mandatory | Yes | New Accounts | No | |
| 12. | Max interest rate | Number | None | 0 - 99.9% | Mandatory | Yes | New accounts + current open accounts in partial, pending, and cancelled states | No | Interest rates are annualized percentage, according to the number of days in a year specified at the MFI level. |
| 13. | Min Interest Rate | Number | None | 0 - 99.9% | Mandatory | Yes | New accounts + current open accounts in partial, pending, and cancelled states | No | Interest rates are annualized percentage, according to the number of days in a year specified at the MFI level. |
| 14. | Default interest rate | Number | None | 0 - 99.9% | Mandatory | Yes | New Accounts | No |
Interest rates are annualized percentage, according to the number of days in a year specified at the MFI level. |
| 17. | Grace period for repayments | Number | None | Mandatory | Yes | New Accounts | No | This is the grace period for number of days before the accounts are moved to “Active in bad standing” | |
| 18. | Include in Loan Cycle Counter | Checkbox | None | Yes; No | N/A | Yes | All Closed, Open, and New Accounts | No | Yes implies that the product is included in the loan cycle counter for clients and groups. |
| 19. | Can waive interest on Prepay loan | Checkbox | None | Yes; No | N/A | Yes | All Closed, Open, and New Accounts | No | If checked, gives the option to waive future interest when using Repay Loan to repay full loan. If not checked, interest is NOT waived by default. |
| 20. | Grace period type | Drop-down | None |
1. None; 2. Grace on all repayments 3. Grace on principal payments only |
Optional | Yes | New Accounts | No | |
| 21. | Grace period duration | Number of installments | None | Mandatory if options 2 or 3 in the grace period type are selected | Yes | New Accounts | Yes | ||
| 22. | Product GL Code - Principal |
Drop Down - With acceptable GL codes for Prinicipal |
None | None | Mandatory | No | New Accounts | No | For loans, one GL Code each should be chosen from a list of acceptable GL Codes for principal. |
| 23. | Product GL Code - Interest | With acceptable GL codes for Interest | None | None | Mandatory | New Accounts | New Accounts | No | For interest, one GL Code each should be chosen from a list of acceptable GL Codes for interest. |
| 24. | Attach Fee Types | Multi-select | None | Predefined fee types | Optional | Yes | All open and New Accounts |
Yes- Only Amount/Rate of the “Upfront” fee types can be modified at the account level. The changes are applicable only to that account. |
More than one fee types can be linked. Only fee types applicable to loans are shown in the list box (i.e., for a loan product, only fee types applicable to loans are displayed). The attached fee types are charged to all the accounts opened for that prodcut. |
| 25. | Currency | Drop down with available currencies | Default currency | Currencies set in configuration | Mandatory if configured for multiple currencies | No | No |
More than one fee types can be linked. Only fee types applicable to loans are shown in the list box (i.e., for a loan product, only fee types applicable to loans are displayed). The attached fee types are charged to all the accounts opened for that prodcut. |
|
| 26. | Can configure variable installments | Checkbox | No | Yes; No | Optional | Yes | New accounts only | No | Allows the loan product to have variable loan installments. Option is only available if LSIM is on and if Declining Balance interest rate type selected |
| 26a. | Minimum gap between installments | Number of days | None | Numeric value | Mandatory if Can configure variable installments is checked | Yes | New accounts only | No | Specifies the minimum gap between 2 installments in days |
| 26b. | Maximum gap between installments | Number of days | None | Numeric value | Optional | Yes | New accounts only | No | Maximum number of days between 2 installments |
| 26c. | Minimum installment amount | Number | None | Numeric value | Optional | Yes | New accounts only | No | Specifies the minimum installment amount for a variable installment loan |
| 27. | Compare with Cash Flow | Checkbox | No | Yes; No | Optional | Yes | New accounts only | No | Check if during loan creation, loans of this product should have Client's Cash Flow data entered and compared |
| 27a. | Warning Threshold | Number | None | Set by configuration properties | Optional | Yes | New accounts only | No | If the loan installment is above a certain percentage of the cumulative cash flow |
| 27b. | Indebtedness Rate | Number | None | Set by configuration properties | Optional | Yes | New accounts only | No | (Total liability + loan amount)*100/Total capital (amounts entered during Cash Flow) cannot be over the amount specified here |
| 27c. | Repayment Capacity | Number | None | Set by configuration properties | Optional | Yes | N/A | No | [(Total revenues-Total expenses)+Loan Amount]*100 / Sum of Installments amount cannot be over the amount specified here |
Listed below are the attributes specific to the Savings product type.
| s. no. | attribute name | data type | default value | range | Mandatory/ optional for products | can be modified after product creation | modifications to be applied to all open accounts or to new accounts | can be modified at account level |
description/ notes |
|---|---|---|---|---|---|---|---|---|---|
| 1. | Type of deposits | Drop Down | None | Mandatory/Voluntary | Mandatory | Yes | New Accounts | No | So depending on this selection, system should show the correct set of GL codes to select from. |
| 2. | Recommended/ Mandatory Amount for Deposit | Number | None | None | Optional | Yes | New Accounts | Yes | |
| 3. | Recommended deposit unit- per group member or for whole group | Drop Down | None | Per group; Complete group | Mandatory | No | New Accounts | No |
Applicable only if the product is applicable for groups. This specifies that the amount mentioned in the above attribute is for each member of the group, or an absolute amount for the whole group irrespective of the number of members present in the group. For center savings account, the unit of recommended amount is always - “per client”. |
| 4. | Interest rate | Number | None | 0 - 100 | Mandatory | Yes | All Open and New Accounts | No |
Annualized rate is stored by the system. In case of change in interest rate, system should calculate the interest using the new rate from the time of change. . However the old interest rate should be recorded for reporting purposes. E.g. Supposing the interest is to be posted on a monthly basis and on the 30th day the rate is changed. Interest should be calculated using the old rate for 29 days and use the new rate for 30th day and onwards. |
| 6. | Balance used for Interest Rate calculation | Drop Down - Single-select | None | Minimum balance; average balance | Mandatory | Yes | All Open and New Accounts | No |
Only Compound Interest Calculation is supported If changed, the changes are reflected in the Open accounts as soon as the change is detected by the Mifos system If the attribute is modified, the interest installments should be recalculated. |
| 7. | Time period for interest rate calculation | Number of months; Number of days | None | Mandatory | Yes | All Open and New Accounts | No |
If this field is modified, recalculation is not required. The change affects the future interest calculations only. Note: Reference for time period is the start of calender year for all products. Mfios does not currently allow users to configure the fiscal year. |
|
| 8. | Frequency of interest posting to accounts | Number of months | None | Mandatory | Yes | All Open and New Accounts | No |
If this field is modified, recalculation is not required. The change affects the future interest calculations only.
Note: Interest should be posted on the last day of the month for all the accounts. |
|
| 9. | Max amount per withdrawal | Number | None | 0 - N | Optional | Yes | All Open and New Accounts | No |
Flat Amount of savings account. This specifies the maximum amount that can be withdrawn from a savings account per day. For a group/center savings account, this restriction applies to each withdrawal. If left blank or “0”, then system does not assume any withdrawal limitations. |
| 10. | Min balance required for interest rate calculation | Number | None | 0 - N | Optional | Yes | All Open and New Accounts | No |
Interest is not calculated on accounts that have balance amounts below this number. If left blank or “0”, then system does not assume any minimum balance required for interest. |
| 11. | GL Code - deposits | Drop Down | None | Acceptable GL Codes | Mandatory | Yes | All Open and New Accounts | No | One GL Code each should be chosen from a list of acceptable GL Codes for deposits. |
| 12. | GL Code - interest | Drop Down | None | Acceptable GL Codes | Mandatory | Yes | All Open and New Accounts | No | One GL Code each should be chosen from a list of acceptable GL Codes for interest. |
Status of a product can be changed at the product definition level. At any given time, a product can be in either an Active or Inactive state:
|
status |
description |
|
Active |
By default, new products are created in an Active state. But if the start date is changed to a future date during product definition, then Mifos changes the state of the product to Active when the start date is reached. Active products can be offered to clients and new accounts can be created for them. |
|
Inactive |
Mifos changes the product state from Inactive to Active when the product End date, if defined, is reached. The product option then disappears from the list of choices when creating a new account. However, the product itself is not deleted and can be accessed from the View loan products link on the Admin tab. |
A product can change the status multiple times. There are no restrictions on state changes.
By default, a client can have multiple loans or savings accounts of multiple products. An MFI can restrict the mix of products their clients are allowed by clicking Define product mix from the Admin tab. Mifos checks for violations of this list at the time of loan disbursal.
By default products can mix with all other products, including itself.
An initial grace period is the time between the disbursal date of a loan and the collection of the first regular payment. One, and only one, of the following grace types can be defined for a loan product and, once defined, cannot be modified:
A user can modify the grace period for a loan account before the grace period ends for that account. However, grace periods cannot be inserted within a loan payment period, that is, a grace period can exist only before the repayment of the loan starts.
Grace periods cannot be applied to variable loan installments or loan products with interest rate type Declining Balance - Interest Recalculation. MIFOS-4742.
An MFI could currently have loan products in 2 currencies. They need a way to track both in their own currencies. This feature implements basic multicurrency support and also sets the basis for full multicurrency support in the future.
| Priority | User Story | Section in FR |
|---|---|---|
| 1 | As an Administrator at an MFI, I want to be able to disburse loans of different currencies to my clients. |
The following items will not be addressed in this release:
| Term | Definitions |
|---|---|
This feature will allow minimal multiple currency support in Mifos.
Actors
Preconditions
Basic Flow
Post-conditions
Alternative Flows
Post-conditions
Validations
Actors
Preconditions
Basic Flow
Post-conditions
Alternative Flows
Actors
Preconditions
Basic Flow
Post-conditions
Alternative Flows
Actors
Preconditions
Basic Flow
Post-conditions
Alternative Flows
Actors
Preconditions
Basic Flow
Post-conditions
Alternative Flows
Preconditions
Alternate Flow
Actors
Preconditions
Basic Flow
Post-conditions
Alternative Flows
| Priority | Size | User Stories | Mingle card # |
|---|---|---|---|
| 1 | Small | As a User, I configure Mifos to have multiple currencies | |
| 1 | Small | As a User, I can select a currency when defining a loan product | |
| 1 | Small | As a User, I can select a currency when defining a loan fee. | |
| 1 | Small | As a User, I can attach a loan fee of the same currency to a loan product. | |
| 1 | Small | As a User, I can attach a loan fee of the same currency to a loan account. | |
| 1 | Small | As a User, I can disburse and repay loans of that currency |
| FR# | Pri | Description | Comments / Mockups |
|---|---|---|---|
| 1.1 | P1 | Add new setting for setting additional currencies in custom properties file. See properties file for examples => | applicationConfiguration_accounting.custom.properties |
| 1.2 | P1 | Additional currencies should only be applicable to loan repayments and loan fees | |
| 1.3 | P1 | Update View Organizational Settings in Admin section of Mifos to show the new and updated configuration settings. | http://img526.imageshack.us/i/orgsettings.png/ |
| 1.4 | P1 | By default there should be no additional currencies set | |
| 1.5 | P1 |
Certain rounding rules can be set different than the default for additional currenices. If those settings are not set for the additional currency, the default setting is used. If it is set, it overrides the default. These settings are: FinalRoundOffMultiple InitialRoundOffMultiple AmountToBeRoundedTo DigitsAfterDecimal DigitsAfterDecimalforInterest |
Rounding Modes are P2 |
| 1.7 | P1 | Currencies can be added at any time during Mifos deployment, but once a currency has been set, it cannot be removed. | Document in Configuration Guide |
| FR# | Pri | Description | Comments / Mockups |
|---|---|---|---|
| 2.1 | P1 | In Define New loan product pipeline, User now has a new Currency dropdown to choose the currency from default and additional currencies set in configuration file. | |
| 2.2 | P1 | The options are the 2 currency codes the Administrator set in the custom properties file. | |
| 2.3 | P1 | The Default currency code is first in the list of options for Currency and should be defaulted to it in the dropdown | |
| 2.4 | P1 | When editing a loan product, the Currency option should be displayed but uneditable. | |
| 2.5 | P1 |
When defining a new loan product, if the User tries to attach a loan fee of a different currency, the following error message is displayed upon the User trying to Preview A fee of a different currency cannot be attached to this loan product |
| FR# | Pri | Description | Comments / Mockups |
|---|---|---|---|
| 3.1 | P1 | In Define New Fee pipeline, when User selects "Loan" under Fee Applies To:, the option to select a currency should be dynamically displayed next to Amount calculation. | |
| 3.2 | P1 | A new Currency dropdown should be displayed after the Amount field in Calculation - which should be the 2 currency codes the Administrator set in the custom properties file. The Currency is only set for loan fees with specific amount, not % of calculation. A loan fee with % of calculation can be of any currency. | |
| 3.3 | P1 | The Default currency code is first in the list of options for Currency and should be defaulted to it in the dropdown | |
| 3.4 | P1 | This option should only be added for defining new fees and cannot be changed when editing the fee. | |
| 3.5 | P2 | When viewing a loan fee, currency should be displayed if the User has set additional currencies in the custom properties file |
| FR# | Pri | Description | Comments / Mockups |
|---|---|---|---|
| 4.1 | P1 | When creating a new loan account, the User should be able to select a loan product that has a secondary currency set as its currency | |
| 4.2 | P1 | Should work with GLIM on or off | |
| 4.3 | P1 | Should work with LSIM on or off | |
| 4.4 | P1 | All loans under that Loan Product should take currency and rounding rules from the custom properties file set for that currency. |
| FR# | Pri | Description | Comments / Mockups |
|---|---|---|---|
| 5.1 | P1 | When creating a new loan account, the list of fees available under Apply Additional Fees should only be loan fees of the same currency set as the loan product of the loan account. | |
| 5.2 | P1 | The User can also apply charges for an existing loan account. The available fees listed under "Select charge type" should only be fees of the same currency |
| FR# | Pri | Description | Comments / Mockups |
|---|---|---|---|
| 6.1 | P1 | Collection Sheet Entry will not work if there are loans of multiple currencies under the center. There will be no changes to accommodate this, the feature will remain but advise to use with caution (or not use at all). (P2) When a user does use CSE and selects a center with more than 1 currency, warning text is displayed at the top. | |
| 6.2 | P1 | Certain parts of Performance History will not be shown for a Center, Group, or Client that has loans of more than one currency under it. Instead of a value, the following string will be displayed in the field <Multiple Currencies> | |
| 6.3 | P1 | For a client's performance history, Amount of last loan and Delinquent Portfolio will not be displayed. | |
| 6.4 | P1 |
For a group's performance history, the following will not be displayed Amount of last Group Loan: xx Avg individual Loan size: xx Total Loan portfolio. xx Portfolio at risk: xx |
|
| 6.5 | P1 | For a center's performance history, Total Loan portfolio will not be displayed |
| FR# | Pri | Description | Comments / Mockups |
|---|---|---|---|
| 7.1 | P1 | Existing reports will NOT be rewritten to accommodate this feature. They will just not work if there is a problem with the query due to multiple currencies. |
| FR# | Pri | Description | Comments / Mockups |
|---|---|---|---|
| 8.1 | P1 | All existing validations in Mifos for numbers entered for currency should be updated to validate according to the new settings set in the configuration file, if one is set. For example, if USD is set to digits after decimal is 3, and LBP is set to 0, then if a User is entering in values for the loan account from the LBP Loan Product, Mifos should throw an error if the User enters in any digits after decimal. |
LSIM
GLIM
| Does the user need to be in a particular user hierarchy to use this feature? | No |
| Does the office hierarchy affect use of this feature? | No |
| Are you using any existing permissions to control this feature? | No |
| 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 |
| Are you adding any new activities or changing existing activities to control this feature? | No |
| Are there any special considerations for upgrade scenarios? What will be the default value for new permissions? | Upgrade needs to work for existing configurations with only 1 currency |
| What will be the default values for default roles in a new installation? | No |
| Does this feature affect Bulk Loan Creation? How? | No |
| Does this feature affect Collection Sheet Entry? How? | Yes - if center has more than 1 currency, CSE will not work |
| Does this feature affect Redo Loans? | Yes |
| Does this feature affect Undo Loans? | Yes |
| Will this feature support users localizing data that they enter? | Yes |
| Does this feature involve any date/time related data, and if so how should conversions be handled? | No |
| Is there currency or other numeric data ? If so does it require any special handling or validation? | Yes - handled by configuration files |
| Do changes to the data that is collected or stored by the new feature have to be fully logged by the system? | Yes |
| Does the administrator configuring the system need the ability to turn on or off logging for this feature? | No |
| Is the feature currently logged but the structure of the logged records changing? | No |
Provide any relevant information about reporting requirements for the new features and answer the questions below, providing detail to explain any particular area when necessary.
| Does the feature affect any existing reports? | Yes - but those will not be changed |
| Does the feature require adding any new reports? | No |
| Will the feature be a high use-case scenario? | No |
| Will the feature have potential for high concurrency? | No |
| Does the feature include complex UI or data gathering logic that will be used by a significant portion of the user base? | No |
| Does the feature contain risks of database connection timeout? | No |
| Will the feature contain any bulk insert/update/delete transactions? | No |
| Will the feature contain any caching mechanisms or cache refreshing mechanisms? | No |
| Could the feature result in a large amount of data being sent to the client or between the database and web server? | No |
| Would users on a low bandwidth connection likely face issues with a part of this feature? | No |
| Does the feature affect existing batch jobs or require adding any new batch jobs? | No |
| Will the feature include demo data? | No |
| Does the feature require any data to be gathered at setup runtime? | No |
| Is there any data conversion that needs to be done as part of an upgrade? | No? |
| Will customers lose data or will the way existing data is stored change significantly? | No |
| Will another feature, workflow or portion of the data model be deprecated as a result of this new feature? | No |
| Will existing role permissions be changed or impacted by this feature? If so provide details in the security section. | No |
| Will existing customers need to learn a new UI process or change the way they use the system as a result of this new feature? | New options added in UI for currency if they choose to have one |
| If different user groups are using the same database, are there concerns over the sharing of data related to the feature? | No |
| Are there expected to be performance related issues with having many customers sharing the same hardware in support of this feature? | No |
| Does this feature require changes to configuration files? | Yes |
| If so, is this feature enabled or disabled by default? | Disabled |
| Which MFI's do we expect to use this feature? | |
| How will this impact them? |
last modified 2010-05-14 09:23
MFIs working under the group lending model, rather than a teller model, conduct regular meetings to provide a platform for interaction for their centers and groups. At these meetings, questions are answered, loans are disbursed and loan repayments and savings deposits are collected. Trainings can also be scheduled or take place at these meetings.
Beginning with version 1.1 of Mifos, repayment schedules and loan disbursals no longer need to coincide with meeting schedules. This feature is called LSIM (Loan Schedule Independent of Meeting) and an MFI can specify this during system setup.
Meeting schedules are set up for a center, if one exists, or for a group. Clients not belonging to a group can have individual meeting schedules.
If LSIM is turned off, meeting times are mandatory for any client/group/center to be Active. Meeting times are not mandatory if LSIM is turned on. Clients can have only a single meeting schedule at any time. Currently, all clients, regardless of whether or not they belong to a group, must have a meeting assigned to them.
If an MFI ties repayment schedules to meetings, the client loan repayment schedule is spread evenly over a specified number of meetings, and the frequency of payments must match the frequency of meetings, if repayment occurs at meeting times. If LSIM is turned on, this is not required.
Meeting schedules are defined when a center account is created. Client inherits the meeting schedule from the group and the group in turn inherits the meeting schedule from the center (if center hierarchy exists).
A meeting schedule definition includes the meeting location and the meeting frequency, which can be specified in terms of weeks or months. When defining meetings in terms of weeks, the user can specify the frequency (every <x> weeks) and the day of the week. When defining meetings in terms of months, the user can specify either every <x> day of the month or the <x> <day> of every <x> month.
Users are not allowed schedule meetings on non-working days. Mifos will prevent this from happening. Non-working days are set in configuration. [Link to config] Meetings also cannot be scheduled on a holiday. However, these days are included in calculations. If a repayment or meeting falls on a holiday, it is shifted depending on the repayment rule set when the holiday was defined. Repayment rules available are “Next working day”, “Next meeting/repayment day”, or "Same day".
Meetings can be changed only by the office that created them. If Definition of a week is modified and more days are included in the working week (by changing working days in System Configuration), existing meeting schedules and repayment schedules are not affected or recalculated. If the meeting schedule itself is changed, repayment dates of existing loan accounts are updated but repayment amounts will not be updated. Meetings can only be defined or changed at the highest level, i.e., at the center (if it exists), group if the client is a group member, and at the individual level only if the client does not belong to a group.
Meetings can be changed (irrespective of the state of loan accounts) in the following ways only:
In Mifos 1.5.0 and beyond, when changing a center meeting date in an installment “period”, the change will always be applied in the next installment “period”, where a period is the frequency of your meeting schedule and the repayment falls in.
For example, if you have a weekly meeting on Wednesdays currently, and you change the meeting date to Thursday, the current working week will still keep the original repayment days of Wednesday. Your meeting date will be changed next working week to Thursday. This is regardless of whether or not a repayment has past this week. In this particular example, today (March 1st), this week’s meeting will still occur on March 3rd, but next week’s repayment will now be on March 10th. Working week and workdays are defined by your Mifos configuration.
The same applies for monthly meetings. In this example, you normally have a meeting date on the 20th of every month, and you change the meeting date to the 5th of every month. In the current month (March), your meeting date will still fall on March 20th. However, in April, the following month, the meeting date will be on April 5th.
An MFI can set up checklists that are displayed whenever users attempt to change the state of accounts. A checklist consists of a list of tasks that are required in order to change a state. A user must check each box in the checklist before the system will make the requested change.
Checklists communicate or remind the internal processes required before changing the status of accounts or customer records. Each time a user attempts changing the state of an account or customer record, the checklist defined for that state change is shown to the user. The user can read through the checklist and make sure all the requirements are met. These checklists can be associated with all workflows for accounts and client records.
Checklists are optional, and an MFI can define them for the destination states (not dependent on source states) for the following types of accounts: client, group, center, loan and savings. For example, an MFI might define a checklist for the Pending Approval state of a loan account. A user can then make sure each condition on the checklist has been satisfied before he changes the loan account to the Pending Approval state.
Note the following:
Checklists must be defined (through the Define new checklist link on the Admin tab) and saved, so that they can be attached to states of customer records and accounts. Attributes of checklists are provided in the following table:
| S. No. | Attribute Name | Range | Mandatory for Active/Inactive states | Can be Modified after Definition or not? |
Remarks |
|---|---|---|---|---|---|
| 1 | Name | 50 char | Yes | Yes | |
| 2 | State | Active or Inactive | N/A | Yes | If the checklist is Inactive, it is not displayed in the respective state transitions. When a checklist is created, the state is Active by default. |
| 3 | Type |
Client, Group, * Center, * Loans, Savings |
Yes | Yes | |
| 4 | Displayed when moving into status | States applicable to the selected type (i.e., Client, Group, center Loans, or Savings) | Yes | Yes | Status applicable to the type selected |
| 5 | Created Date | N/A | N/A | N/A | System Generated |
| 6 | Created By | N/A | N/A | N/A | System Generated |
| 7 | Items | N/A | At least one item is mandatory. | Once specified, an item cannot be modified. But it can be deleted. | These are line items with a size limit of 250 characters per line item. There is no maximum limit on the number of items that can be included in a checklist. |
The saved checklists are attached to states of accounts or customer records as per the type and state specified during creation. The specifications for the same are:
Many MFI's, including KMBI and SECDEP, need the ability to delay their loan schedules without penalty, usually in case of some catastrophe. We need to add a feature to be able to define this moratorium period where the clients do not have to pay, and the loan schedules are essentially pushed out. There is also a need for selecting certain branches that the moratorium period will be applied to - this will be in a separate spec.
| Priority | User Story | Section in FR |
|---|---|---|
| 1 | As an Administrator at an MFI, I want to be able to define a payment moratorium and have all schedules in the entire organization pushed out. |
The following items will not be addressed in this release:
| Term | Definitions |
|---|---|
This feature will allow schedules to be pushed out
Actors
Preconditions
Basic Flow
Post-conditions
Alternative Flows
Post-conditions
Validations
Actors
Preconditions
Basic Flow
Post-conditions
| # | Priority | Scenario Description | Expected Behavior |
|---|---|---|---|
| 1 | P1 | Payment Moratorium defined for 4/1/2010 (Thursday) to 4/20/2010 (Tuesday). No other holidays defined during this period. |
All schedules that hit this period inclusive will be shifted. Examples: - A client that meets weekly on Thursdays will NOT have payments due for loans, mandatory savings, or fees for 4/1, 4/8, or 4/15. Their schedule will continue on 4/22 and end 3 weeks later than original. - A client that meets weekly on Wednesdays will NOT have payments due on 4/7 and 4/14. Their schedule will be shifted to 4/21. - A client that meets monthly on the 2nd will not have a payment due on 4/2. Their schedule will be shifted to 5/2. - A client that meets bi-weekly every Thursday with a payment on 3/25 will not have payments due on 4/8. Their schedule will be shifted to 4/22 (2 weeks later). - A client that meets bi-weekly every Thursday with a payment on 3/18 will not have payments due on 4/1 or 4/15. Their schedule will be shifted to 4/29. |
| 2 | P1 | Payment Moratorium defined for one day 4/1/2010. No other holidays already defined on this day. | Only schedules that had a payment date on 4/1/2010 will be affected. The schedule will be shifted accordingly the frequency of their repayments. Schedules that meet on other days will not be affected. |
| 3 | P1 | Payment Moratorium defined for 4/1/2010 to 4/10/2010. There is already a holiday defined that overlaps some or all of that period with a different repayment rule. |
The Payment Moratorium shift will take precedence. Example: There is an existing holiday defined on 4/2/2010. A moratorium is issued on top for 4/1 to 4/10. Any schedules on 4/2 are pushed out accordingly (moratorium). |
| 4 | P2 | Scenario #3, then another holiday is defined on top. | Any time there is a moratorium, doesn't matter if a holiday is defined before or after the moratorium was set in Mifos, the moratorium takes precedence if there is both a moratorium and a holiday on the same day. |
| 5 | P1 | Overlapping holidays that are not moratoriums are defined. | In this case, for the day(s) that 2 holidays are defined, the holiday defined last should take precedence. However, we will not fix this in this release. |
| 6 | P? | A Payment Moratorium is defined immediately following a non-moratorium holiday | Mifos will apply the repayment rule for days that fall in the non-moratorium holiday, and then apply schedule-shifting to payments that fall in the moratorium. For example, a holiday is defined for the week starting Monday, 4/29/2010 (just before the payment moratorium defined above) with repayment rule Next Meeting/Repayment. A client with payments due on Wednesdays will have their 3/31 payment shifted to 4/7. But for the moratorium, they would have two payments due on that day. The two payments are shifted to Wednesday, 4/21 and the remaining schedule is shifted to 4/28 and beyond. |
| Priority | Size | User Stories | Mingle card # |
|---|---|---|---|
| 1 | Small | As a User, I can create a new holiday for a Payment Moratorium for the entire organization. | |
| 1 | Large | As a User, I can see that loan schedules have been pushed out for that moratorium period. | |
| 1 | Medium | As a User, I can see that mandatory savings schedules have been pushed out for that moratorium period. | |
| 1 | Medium | As a User, I can see that client, group, and center fees have been pushed out for that moratorium period. |
| FR# | Pri | Description | Comments / Mockups |
|---|---|---|---|
| 1.1 | P1 | Add new repayment rule called Payment Moratorium under Repayment Rules drop down in Define New Holidays. This option should appear last. | |
| 1.2 | P1 | When previewing new holiday, under Repayment Rule column, should say Payment Moratorium. | |
| 1.3 | P1 | When viewing all holidays, Repayment Rule column needs to show correct rule of Payment Moratorium | |
| 1.4 | The rule to follow when shifting schedules is this. At every repayment date in a schedule, check to see if there is a holiday or moratorium defined. If there is a moratorium defined take that first and shift accordingly. If not, then apply holiday repayment rule accordingly. Continue for each date in the repayment schedule until it is done. |
| FR# | Pri | Description | Comments / Mockups |
|---|---|---|---|
| 2.1 | P1 | All client and group loans will be shifted with the holiday period. | |
| 2.2 | P1 | This includes all penalties, fees, interest, and principal due for that period. | |
| 2.3 | P1 | Applies to any frequency of loan installments (weekly, every 2 weeks, monthly, etc), interest rate types (flat, declining balance, etc), and any kind of loan products. | |
| 2.4 | P1 | If a recurring fee is added to a loan after a moratorium has been set, that recurring fee should also be pushed out w/ the rest of the loan as expected. | |
| 2.5 | P1 | Work with LSIM on or off. If LSIM is on, then it's the repayment schedule, not the meeting dates that are pushed out. | |
| 2.6 | P1 | Bulk Loan Creation - loans created using Bulk Loan Creation should follow same rule if loan repayment schedule could overlap with holiday period with this new repayment rule |
| FR# | Pri | Description | Comments / Mockups |
|---|---|---|---|
| 3.1 | P1 | All client and center savings deposits will be shifted with the holiday period | |
| 3.2 | P1 | This includes mandatory deposits. Voluntary deposits should display the same, as they do not double up if not deposited currently anyway | |
| 3.3 | P1 | Applies to any frequency of deposits | |
| 3.4 | P1 | ||
| 3.5 | P2 |
| FR# | Pri | Description | Comments / Mockups |
|---|---|---|---|
| 4.1 | P1 | All client, group, and center fees will be shifted with the holiday period | |
| 4.2 | P1 | ||
| 4.3 | P1 | ||
| 4.4 | P1 |
LSIM
GLIM
| Does the user need to be in a particular user hierarchy to use this feature? | No |
| Does the office hierarchy affect use of this feature? | No |
| Are you using any existing permissions to control this feature? | No - though there is an open bug on Holiday permissions |
| 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 |
| Are you adding any new activities or changing existing activities to control this feature? | No |
| Are there any special considerations for upgrade scenarios? What will be the default value for new permissions? | No |
| What will be the default values for default roles in a new installation? | No |
| Does this feature affect Bulk Loan Creation? How? | Yes |
| Does this feature affect Collection Sheet Entry? How? | Yes |
| Does this feature affect Redo Loans? | Yes |
| Does this feature affect Undo Loans? | Yes |
| Will this feature support users localizing data that they enter? | N/A |
| Does this feature involve any date/time related data, and if so how should conversions be handled? | No |
| Is there currency or other numeric data ? If so does it require any special handling or validation? | No |
| Do changes to the data that is collected or stored by the new feature have to be fully logged by the system? | N/A |
| Does the administrator configuring the system need the ability to turn on or off logging for this feature? | No |
| Is the feature currently logged but the structure of the logged records changing? | No |
Provide any relevant information about reporting requirements for the new features and answer the questions below, providing detail to explain any particular area when necessary.
| Does the feature affect any existing reports? | Collection Sheet report |
| Does the feature require adding any new reports? | No |
| Will the feature be a high use-case scenario? | No |
| Will the feature have potential for high concurrency? | No |
| Does the feature include complex UI or data gathering logic that will be used by a significant portion of the user base? | No |
| Does the feature contain risks of database connection timeout? | No |
| Will the feature contain any bulk insert/update/delete transactions? | No |
| Will the feature contain any caching mechanisms or cache refreshing mechanisms? | No |
| Could the feature result in a large amount of data being sent to the client or between the database and web server? | No |
| Would users on a low bandwidth connection likely face issues with a part of this feature? | No |
| Does the feature affect existing batch jobs or require adding any new batch jobs? | No |
| Will the feature include demo data? | No |
| Does the feature require any data to be gathered at setup runtime? | No |
| Is there any data conversion that needs to be done as part of an upgrade? | No? |
| Will customers lose data or will the way existing data is stored change significantly? | No |
| Will another feature, workflow or portion of the data model be deprecated as a result of this new feature? | No |
| Will existing role permissions be changed or impacted by this feature? If so provide details in the security section. | No |
| Will existing customers need to learn a new UI process or change the way they use the system as a result of this new feature? | New option for repayment rules in Holidays |
| If different user groups are using the same database, are there concerns over the sharing of data related to the feature? | No |
| Are there expected to be performance related issues with having many customers sharing the same hardware in support of this feature? | No |
| Does this feature require changes to configuration files? | No |
| If so, is this feature enabled or disabled by default? | N/A |
| Which MFI's do we expect to use this feature? | SECDEP, KMBI |
| How will this impact them? | Can only create holidays w/ this repayment rule after it's deployed |
| Date | Name | Role | Status |
| PM | |||
| Dev | |||
| QA |
Some MFI's span large regions where different branch offices might observe different holidays. They need the ability to define holidays for specific branch offices in Mifos and be able to set the repayment rule to follow during those holidays.
| Priority | User Story | Section in FR |
|---|---|---|
| 1 | As an Administrator at an MFI, I want to be able to define a period of time as a holiday for specific branches, and choose the repayment rule to follow during the holiday for those branches.. |
The following items will not be addressed in this release:
| Term | Definitions |
|---|---|
This feature will allow holidays to be defined at the branch level.
Actors
Preconditions
Basic Flow
Post-conditions
Alternative Flows
Post-conditions
Validations
Preconditions
Flow
Post-conditions
Validations
Actors
Preconditions
Basic Flow
Post-conditions
Actors
Preconditions
Basic Flow
Post-conditions
| Priority | Size | User Stories | Mingle card # |
|---|---|---|---|
| 1 | Small | As a User, I can create a new holiday for offices from head office to branch office level. | |
| 1 | Large | As a User, I can see that loan schedules in all child offices affected by new holiday have been applied the repayment rule set. | |
| 1 | Medium | As a User, I can see that savings schedules in all child offices affected by new holiday have been applied the repayment rule set. | |
| 1 | Medium | As a User, I can see that client, group, and center fees in all child offices affected by new holiday have been applied the repayment rule set |
| FR# | Pri | Description | Comments / Mockups |
|---|---|---|---|
| 0.1 | P1 | All references to Organization Wide should be removed from these screens | |
| 0.2 | P1 | Update the UI screens for all these pages to be similar to other pages in Admin - for example, Admin header at top should be different color, and we should have the Holiday Information and Review & Submit at the top like on other pages like Define New Fee. |
| FR# | Pri | Description | Comments / Mockups |
|---|---|---|---|
| 1.1 | P1 | When creating a new holiday, there will be a new selection tree to select multiple offices the holiday will apply to. | createnewholiday.jpg |
| 1.2 | P1 | There should be a tree/hierarchical view of offices - listed[] in alphabetical order by parent office, then next child, til the lowest level, then up one, etc. (same as View Offices page right now) and it will list the office hierarchy. See mockup for exmaple | |
| 1.3 | P1 | If a parent office is selected, then all child offices inherit the holiday. | |
| 1.4 | P1 | If a child office is selected, then the holiday is only applied to the child office. | |
| 1.5 | P1 | The user can select one or more offices, |
| FR# | Pri | Description | Comments / Mockups |
|---|---|---|---|
| 2.1 | P1 | A new column will be added titled "Applies To" where the offices that holiday applies to are listed. If holiday applies to a parent office and all children underneath it, only the parent office needs to be listed. | previewnewholiday.jpg |
| 2.2 | P1 | Offices are separated by commas and sorted alphabetically by parent. |
| FR# | Pri | Description | Comments / Mockups |
|---|---|---|---|
| 3.1 | P1 | Similar to preview, new column will be added titled "Applies To" where the offices that each holiday applies to are listed. See Section 2 for more details. |
| Does the user need to be in a particular user hierarchy to use this feature? | No |
| Does the office hierarchy affect use of this feature? | No |
| Are you using any existing permissions to control this feature? | No |
| Are you adding any new permissions or changing existing permission to control this feature? | P2 - add new permission for creating holidays |
| Are you using any existing activities to control this feature? | No |
| Are you adding any new activities or changing existing activities to control this feature? | No |
| Are there any special considerations for upgrade scenarios? What will be the default value for new permissions? | No |
| What will be the default values for default roles in a new installation? | No |
| Does this feature affect Bulk Loan Creation? How? | Yes - only branches w/ that holiday designated should have schedules affected |
| Does this feature affect Collection Sheet Entry? How? | Yes - only branches w/ that holiday designated should have schedules affected |
| Does this feature affect Redo Loans? | Yes - only branches w/ that holiday designated should have schedules affected |
| Does this feature affect Undo Loans? | Yes - only branches w/ that holiday designated should have schedules affected |
| Does this feature behave differently for LSIM or GLIM? | No - schedules should be updated accordingly with LSIM on or off. |
| Will this feature support users localizing data that they enter? | N/A |
| Does this feature involve any date/time related data, and if so how should conversions be handled? | Yes - should already be taken care of |
| Is there currency or other numeric data ? If so does it require any special handling or validation? | No |
| Do changes to the data that is collected or stored by the new feature have to be fully logged by the system? | N/A |
| Does the administrator configuring the system need the ability to turn on or off logging for this feature? | No |
| Is the feature currently logged but the structure of the logged records changing? | No |
Provide any relevant information about reporting requirements for the new features and answer the questions below, providing detail to explain any particular area when necessary.
| Does the feature affect any existing reports? | Collection Sheet report |
| Does the feature require adding any new reports? | No |
| Will the feature be a high use-case scenario? | No |
| Will the feature have potential for high concurrency? | No |
| Does the feature include complex UI or data gathering logic that will be used by a significant portion of the user base? | No |
| Does the feature contain risks of database connection timeout? | No |
| Will the feature contain any bulk insert/update/delete transactions? | No |
| Will the feature contain any caching mechanisms or cache refreshing mechanisms? | No |
| Could the feature result in a large amount of data being sent to the client or between the database and web server? | No |
| Would users on a low bandwidth connection likely face issues with a part of this feature? | No |
| Does the feature affect existing batch jobs or require adding any new batch jobs? | Yes - []Apply Holiday Changes will be affected |
| Will the feature include demo data? | No |
| Does the feature require any data to be gathered at setup runtime? | No |
| Is there any data conversion that needs to be done as part of an upgrade? | No |
| Will customers lose data or will the way existing data is stored change significantly? | No |
| Will another feature, workflow or portion of the data model be deprecated as a result of this new feature? | No |
| Will existing role permissions be changed or impacted by this feature? If so provide details in the security section. | No |
| Will existing customers need to learn a new UI process or change the way they use the system as a result of this new feature? | New selection for holidays - must choose Head Office to work as expected |
| If different user groups are using the same database, are there concerns over the sharing of data related to the feature? | No |
| Are there expected to be performance related issues with having many customers sharing the same hardware in support of this feature? | No |
| Does this feature require changes to configuration files? | No |
| If so, is this feature enabled or disabled by default? | N/A |
| Which MFI's do we expect to use this feature? | KMBI, GK |
| How will this impact them? | Ability to create new holidays now for specific branches |
| Date | Name | Role | Status |
| PM | |||
| Dev | |||
| QA |
Accounts (Centers, Groups, Clients, Loans, and Savings), setting their properties, and how to enter them. Includes creating multiple loan accounts.
An MFI can optionally configure MIfos to support centers (see System Configuration). If Mifos is configured with centers turned on, then all groups must belong to a center.
When a center is defined, a loan officer, joining date (when the center joined the MFI), and meeting schedule must be specified. A meeting schedule is required even if the MFI has configured Mifos to support the disbursal of loans and collection of repayments on non-meeting days [See Meetings]. If this option is turned off, then all repayment schedules and disbursal dates will be scheduled on meeting days. Note the following about centers:
The attributes for a center account, provided in the following table, are divided into two parts:
| S.No. | Attribute Name | Data Type | Default value, Mandatory for state inactive - active | Editable in state active - inactive | Range | Can be hidden? |
Mandatory -Optional -Configurable |
Description/Notes |
|---|---|---|---|---|---|---|---|---|
|
Attributes During Center Creation |
||||||||
| 1. | Name | Alphanumeric | None - Yes - Yes | No - No | N/A | No | Mandatory | Name of center should be unique across branch. |
| 2. | Loan officer assigned to Center | Drop-down | None- No - Yes | Yes- Yes | LOs in that branch | No | Mandatory | This information percolates down to all groups and clients linked to the center. |
| 3. | MFI joining Date | Date | Current date - Yes - N/a | Yes - Yes | N/A | No | Mandatory | This is the date when the center joins the MFI. The user can enter any past or future date. |
| 4. | External ID | Numeric | None - No - Configurable | Yes - Yes | N/A | Yes | Configurable | If an old system was being used, and now is transferred to the Mifos system, this can serve as a link between old system and the Mifos system. There is no built-in intelligence in Mifos system to handle this data. |
| 5. | Meeting schedule – Frequency of Meetings | Frequency/ Recurrence | None - No - Yes | Yes - Yes | 999 weeks; 999 months | No | Mandatory |
This is the number of times meetings are held within a time period (number of weeks, months). For details, refer ''__Meetings''__. |
| 6. | Meeting Schedule - Location of Meeting | Alphanumeric | None - No - Yes | Yes - Yes | N/A | No | Mandatory | This is the text field indicating where meetings are held for the group. This information percolates to all the groups belonging to this center. |
| 7. | Center Address -Address 1 | Alphanumeric | None - No - No | Yes - Yes | N/A | Yes | Optional | The Address fields for centers can be hidden. If hidden, address fields including city, state, country and postal code are not displayed in the UI. |
| 8. | Address 2 | Alphanumeric | None - No - No | Yes - Yes | N/A | Yes | Optional | |
| 9. | Address 3 | Alphanumeric | None - No - No | Yes - Yes | N/A | Yes | Optional | |
| 10. | City | Alphanumeric | None - No - No | Yes - Yes | N/A | Yes | Optional | |
| 11. | State | Alphanumeric | None - No - No | Yes - Yes | N/A | Yes | Optional | |
| 12. | Country | Alphanumeric | None - No - No | Yes - Yes | N/A | Yes | Optional | |
| 13. | Postal Code | Alphanumeric | None - No - No | Yes - Yes | N/A | Yes | Optional | |
| 14. | Telephone | Alphanumeric | None - No - No | Yes - Yes | N/A | Yes | Optional | |
| 15. | Question Groups | None - No - Configurable | Yes - Yes | N/A | Yes | Configurable | See Question Groups. | |
|
Attributes and Actions Viewable/Editable only After Center Creation |
||||||||
| 16. | Groups assigned to Center | Group names | None - No - No | Yes - Yes | Groups in that branch | No | Mandatory |
Groups cannot be assigned to Inactive centers. But a center can be made Active without any group assigned to it. |
| 17. | System ID | Numeric | N/A - N/A - N/A | N/A -N/A | N/A | No | Mandatory | System generated unique center ID to identify the center. |
| 18. | Date created in system | Date | The Date the record is first created - No - No | N/A -N/A | N/A system filled | No | Mandatory | Date when the center record was created and saved in the system. |
| 19. | Assigning clients to center titles (Officer titles/positions) | Drop-down | None - No - No | Yes - Yes | Titles defined by MFI and Names of Clients belonging to the center | Yes | Configurable | See Assign clients to positions |
| 20. | Notes (500) | Alphanumeric | None - No - No | Yes - Yes | N/A | No | Optional | A record can have multiple notes attached to it. |
| 21. | Status | Radio Buttons | Active - N/A - N?A | Yes - Yes |
Active; Inactive |
No | Mandatory |
By default, a new center is saved in Active state |
The account details screens display the following information:
Mifos tracks the performance of each center and provides the following metrics, which are displayed in the Performance History box on the account details page.
|
Performance metrics |
Formula |
|
Number of active clients |
Total number of active and on-hold clients belonging to the center |
|
Number of active groups |
Total number of active and on-hold groups belonging to the center |
|
Total outstanding loan portfolio |
Total original value of all outstanding loans (including all group loans and client loans) |
|
Portfolio at risk |
The remaining balance of all outstanding loans (of groups and clients together) that have one or more installments of principal past due more than 30 days / Outstanding principal balance of all outstanding loans. These values are principal only; they do not include interest. *Currently not available in Mifos. |
|
Total Savings |
Includes all the savings accounts of the center, group and also of the clients belonging to the group |
In Mifos, clients can be organized into groups. If Mifos is configured to support centers, then groups are associated with centers and inherit the meeting schedule and loan officer from the center. If Mifos is configured not to support centers, then groups are the top of the client hierarchy and a meeting schedule and loan officer must be defined for the group.
A group may have no clients, one client, or many clients. Clients can be added to a group either at the time of client account creation or at a later time.
The role of the group varies depending on the MFI. For some, the group is the primary unit with which the MFI interacts. Groups maintain a single group savings account and receive a single group loan from the MFI. For other MFIs, the group is simply a collection of individual clients. The benefits of the group include:
When a group applies for a group loan, the loan application goes through the same approval cycle as an individual loan.
The MFI can assign members positions such as president and treasurer, to facilitate group management.
Group fees can be defined from the Admin tab. A user can remove one or more of these fees for a particular group account. If a fee is removed from one account, it does not affect other accounts. In addition, an LO can apply miscellaneous fees or penalties, either at the time of account creation or later. The LO specifies the amount, which is added in the next payment. These are one-time charges; a penalty cannot be charged for an overdue fee.
The following table of group attributes is divided as follows: attributes related to groups, available during group creation; attributes related to the MFI, available during group creation; and attributes and actions that can be viewed/edited only after group creation, from the 'group Details page.
Attributes marked as Mandatory for Partial state in the table below are the minimum required to create a record. Pending Approval is an optional state; if Mifos is configured to hide this state, the attributes marked as Mandatory for Pending in the table should be considered as Mandatory for the Active state. Note: We have not thoroughly tested Mifos with the "Pending Approval" state hidden. We do not recommend hiding this state.
| S.No. | Attribute Name | Data Type | Default value |
Mandatory for State = Partial/ Pending/ Partial |
Editable After State= Pending/ Approved | Range | Can be hidden? | Mandatory/ Configurable |
Description/ Notes |
|---|---|---|---|---|---|---|---|---|---|
|
Group Information |
|||||||||
| 1. | Name of Group | Alphanumeric | None | Yes/Yes/Yes |
Yes/Yes |
N/A | No | Mandatory | This must be unique across the branch. |
| 2. | Address of Group - Address 1 | Alphanumeric | None | No/No/Yes | Yes/Yes | N/A | Yes, if optional | Configurable | First field. The complete address of the group can be hidden. |
| 3. | Address 2 | Alphanumeric | None | No/No/Yes | Yes/Yes | N/A | Yes | Optional | Second field |
| 4. | Address 3 | Alphanumeric | None | No/No/Yes | Yes/Yes | N/A | Yes | Optional | Third field |
| 5. | City | Alphanumeric | None | No/No/Yes | Yes/Yes | N/A | Yes, if optional | Configurable | |
| 6. | State | Alphanumeric | State of MFI | No/No/Yes | Yes/Yes | Defined by MFI | Yes, if optional | Configurable | |
| 7. | Country | Alphanumeric | Country of MFI | No/No/Yes | Yes/Yes | Defined by MFI | Yes, if optional | Configurable | |
| 8. | Postal Code | Alphanumeric | None | No/No/Yes | Yes/Yes | N/A | Yes | Optional | |
| 9. | Telephone | Alphanumeric | None | No/No/Yes | Yes/Yes | N/A | Yes, if optional | Configurable | |
| 10. | Question Groups | None | No/No/Yes | Yes/Yes | N/A | Yes, if optional | Configurable | See Question Groups. | |
|
MFI Related Information |
|||||||||
| 11. | LO assigned to group | Drop -Down | None | No/No/Yes | Yes/Yes | LOs active in the branch. | No | Mandatory | LO is inherited from the center, if Mifos is configured with centers enabled. Field is disabled in UI, if centers are enabled. |
| 12. | Name of Center assigned | Click and select | None | No/No/Yes | Yes/Yes | Available centers, if Centre hierarchy exists. | No | Mandatory to be approved if Center hierarchy exists. | This field applies on if Mifos is configured with centers enabled. Center is chosen at the time of group creation. |
| 13. | Trained | Checkbox | None | No/No/Yes | Yes/Yes | Selected/Not selected. | Yes | Optional |
Once selected, it cannot be cleared. For details, see Trained. |
| 14. | Trained on | Date | None | No/No/Yes | Yes/Yes | N/A | Yes, if “Trained” is hidden. | Mandatory, if group is marked as “Trained”. | Once the Trained on date is saved, it cannot be changed. The field becomes read-only. |
| 15. | External ID | Alphanumeric | None | No/No/Yes | Yes/Yes | N/A | Yes, if optional | Configurable | If an old system was being used, and now being transferred to Mifos system, this can serve as a link between old system and Mifos system. There is no built-in intelligence in Mifos system to handle this data. |
| 16. | Branch Name | Alphanumeric | Branch of User | Yes/Yes/Yes | Yes/Yes | Braches as per data scope of logged in user | No | Mandatory | If Mifos is configured with centers enabled, the branch is inherited from the center. If centers are not enabled, then system should display a list of branches per user's data scope. |
| 17. | Meeting Schedule - Location of group meeting | Alphanumeric | None | No/No/Yes | Yes/Yes | N/A | No | Mandatory |
If Mifos is configured with centers enabled, the meeting is inherited from the center. If centers are not enabled, then the meeting schedules for the group must be defined. |
| 18. | Meeting Schedule – Frequency of Meetings | Date/T ime/ Recurrence | Inherited from center | No/No/Yes | Yes/Yes | 999 weeks; 999 months | No | Optional | Same as 17 above. |
| 19. | Apply fee type | Multi select | None | No/No/N/A | N/A - N/A | All fee types applicable to clients | No | Optional | See Group Fees. |
|
Attributes/Actions Viewable/Editable After Group Creation |
|||||||||
| 20. | Assign client ID – | Un-editable | None | No/No/Yes | Yes/Yes | Clients belonging to the group | No |
Clients belonging to the group are listed on the group details page. See Assign Clients to Group |
|
| 21. | Assigning clients to positions (Officer titles/positions) | Drop-Down | None | No/No/Yes | Yes/Yes | Options defined by MFI | Yes, if optional | Configurable | See ''__Officer Titles; ''Assign Clients to Positions__ |
| 22. | Group System ID | Alphanumeric | N/A | N/A - N/A - N/A | N/A - N/A | N/A | No | Mandatory | System generated unique ID. This is not editable. |
| 23. | Record creation date | Date | None | Yes/Yes/No | No/No | N/A | No | Mandatory | Date when the record was first saved in the system. |
| 24. | Historical data | Alphanumeric/ Numeric/ Date | None | No/No/Yes | Yes/Yes | N/A | No | Optional | Refer Historical Data under Client Accounts |
| 25. | Notes (500) | Alphanumeric | None | No/No/Yes | Yes/Yes | '''N/A''' | No | Optional |
A record can have multiple "notes" attached to it. The last three notes are visible in the ''Details'' page. |
| 26. | Status | Drop-Down | None | N/A - N/A - Yes | Yes/Yes | Refer State flow | Pending Approval can be hidden by HO | ||
| 27. | Flag | Drop-Down | None | No/No/N/A | N/A - N/A | Refer flags | No |
The flag is required only for Cancelled and Closed statuses. |
|
When a group record is created, it is processed through various states, as illustrated below. A user with appropriate permissions can manually changes a group record state in Mifos. If a checklist has been defined by the MFI, this checklist will appear when changing the group state [see Checklist].
The state flow diagram explains the various states or statuses that a group record goes through:

As illustrated, a group record can reside in the following states:
|
state |
description |
|---|---|
|
Partial Group Application |
If the record has been created, but data is incomplete or the user does not want the state to be Pending Approval, the status can be marked as Partial Application. |
|
Pending Approval |
This is an optional state and can be hidden by the MFI. The record contains all necessary data, and is waiting for approval. Before and after this point, there may be some offline processes that govern the approval process. These processes are specific to the MFI and do not impact Mifos functionality. |
|
Approved/Active |
The group has been approved and is eligible to open a savings account or apply for a loan or other products offered by the MFI. |
|
Cancel |
A group application can be cancelled due to various reasons: A group can reapply at any time after this. When the group reapplies, the old record and system ID can be used and carried forward if it has not been archived. From Cancel, a group record can be moved to a Partial Application state. |
|
On Hold |
If the group state is marked On hold, it has the following implications: * New accounts cannot be opened for the group. |
|
Close |
A group record can be Closed to indicate that the group is no longer banking with the branch or that a duplicate record for the group exists in the system. The Flags associated with this state are: Transferred, Duplicate Account, Left Program, Blacklisted, and Other. |
Once a user with appropriate permissions has entered the information to create a group, the user then previews the entire set of information in one screen, to validate the data. This is a mandatory step. When the user approves the preview page, the group’s data is saved in the database. Every time a group record is edited or a state is changed, the user is required to preview the changes before they are saved.
Error checking for mandatory fields and valid data is performed. If an invalid entry is found or any mandatory fields have been left empty, an error message is displayed. The system checks that the group name is unique across the branch, as a way of ensuring that no duplicate records exist. No further checking for duplicate group records is performed.
When a group is created, Mifos generates a unique ID to identify it in the system. This is displayed on the group details page, which also includes the following information:
Mifos tracks the performance of each group and provides the following metrics, which are displayed in client's and groups’ detail pages in the Performance History box:
|
performance metrics |
formula |
|---|---|
|
Number of active clients |
Total number of Active and On hold clients belonging to the group, irrespective of the client state |
|
Amount of last group loan if applicable |
Total amount of the last group loan that was disbursed. Please note that the logic for this field is different on the client page. There is an open issue (#533) to resolve this. |
|
Average loan size for individual members |
Sum of active loan amount for all client loan accounts / Number of client loan accounts |
|
Total outstanding loan portfolio |
Total original value of all outstanding loans (including group loans and all client loans) |
|
Portfolio at risk |
The remaining balance of all outstanding loans that have one or more installments of principal past due more than 30 days / Outstanding principal value of all outstanding loans. This includes only Loan product loans. These values are principal only; they do not include interest. |
|
Total Savings |
Total of all savings accounts of the group and those of the clients belonging to the group |
|
Loan cycle per product |
See description below* |
A group can be moved from one center to another if all the active loan and savings accounts associated to the group and to the clients within the group are closed. The group can only be moved to a center with the same frequency of meetings as before. For example, a group that meets monthly cannot be moved to a center that meets weekly). When a group is moved, the group and its clients inherit the meeting time and loan officer of the new center. If loan schedules are tied to meetings, then all corresponding loan schedules will be updated.
A group attempting to transfer to a branch already containing a group with the same name must first change its name to something unique to the new branch.
Loan Officers assigned to groups can also be changed.
As either individuals or as members of groups, clients are the end beneficiaries of microfinance services. Clients are typically recruited, assigned to and managed by a loan officer at a particular BO. If they belong to a group, they inherit the loan officer from the group.
Before clients can receive loans, set up savings accounts, or be charged fees, client accounts must be created for them in Mifos.
Users with appropriate permissions can create a new client record by clicking the Create new client link on the Quick start navigation pane of the Home tab.
Note the following
The following table of client attributes is divided into three sections: personal information, available during creation of a client record; MFI related information, available during creation of a client record; attributes/actions that are viewable and editable only after creation from the client account details page.
Attributes marked mandatory for Partial state in the table are the minimum requirements to create a record. Pending Approval is an optional state; if this state is hidden, the attributes marked mandatory for Pending state should be considered mandatory for the Active state. Note: We have not thoroughly tested Mifos with the "Pending Approval" state hidden. We do not recommend hiding this state.
| S. No. | Attribute Name | Data Type | Default | Mandatory for State Partial / Pending | Editable after Approved | Partial / Pending/ Approved | Range | Can be hidden by MFI? | Mandatory / Configurable | Description / Notes | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Personal Information | ||||||||||||
| 1. | Salutation | Drop-Down | None | Yes | Yes | Yes / Yes / Yes | Options defined by HO | No | Optional | |||
| 2. | First Name | Alphanumeric | None | Yes | Yes | Yes / Yes / Yes | 100 characters | No | Mandatory | For details, see Name. | ||
| 3. | Middle Name | Alphanumeric | None | No | No | Yes / Yes / Yes | 100 characters | Yes | Optional | |||
| 4. | Second last | Alphanumeric | None | No | No | Yes / Yes / Yes | 100 characters | Yes, if optional | Configurable | |||
| 5. | Last Name | Alphanumeric | None | Yes | Yes | Yes / Yes / Yes | 100 characters | No | Mandatory | |||
| 6. | Government ID # | Alphanumeric | None | Yes | Yes | Yes / Yes / No | N/A | No | Configurable |
This can be Government ID, or National ID, or Social Security Number. This is un-editable after a client enters Active state. |
||
| 7. | Date of Birth | Date | None | Yes | Yes | Yes / Yes / No | Any date in the past | No | Mandatory | Date format is locale specific, but is stored in MFI format. | ||
| 8. | Gender | Drop-down | None | Yes | Yes | Yes / Yes / Yes | Male; Female | No | Mandatory | |||
| 9. | Marital Status | Drop-down | None | No | No | Yes / Yes / Yes | Options defined by MFI | No | Mandatory | |||
| 10. | Number of children | Numeric | None | No | No | Yes / Yes / Yes | 0-30 | No | Configurable | |||
| 10. | Citizenship | Drop-down | None | No | No | Yes / Yes / Yes | Options defined by MFI. | Yes, if optional | Configurable | |||
| 11. | Ethnicity | Drop-down | None | No | No | Yes / Yes / Yes | Options defined by MFI. | Yes, if optional | Configurable | |||
| 12. | Education level | Drop-down | None | No | No | Yes / Yes / Yes | Options defined by MFI. | Yes, if optional | Configurable | |||
| 13. | Business Activities | Drop-down | None | No | No | Yes / Yes / Yes | Options defined by MFI | Yes, if optional | Configurable | |||
| 14. | Handicapped | Drop-down | None | No | No | Yes / Yes / Yes | Options defined by MFI. | Yes, if optional | Configurable | MFI can make this yes/no, or this can be “blind” “deaf” “wheelchair”, etc. | ||
| 15. | Photograph | Photo | No | No | No | Yes / Yes / Yes | N/A | Yes, if optional | Configurable | REMOVED in 1.6 | ||
| 16. | Spouse /Father First Name | Alphanumeric | None | Yes | Yes | Yes / Yes / Yes | N/A | No | Mandatory | For details, see Name. | ||
| 17. | Spouse /Father Middle Name | Alphanumeric | None | No | No | Yes / Yes / Yes | 200 characters | Yes | Optional | |||
| 18. | Spouse /Father Second Last Name | Alphanumeric | None | No | No | Yes / Yes / Yes | 60 characters | Yes, if optional | Configurable | |||
| 19. | Spouse /Father Last Name | Alphanumeric | None | Yes | Yes | Yes / Yes / Yes | 60 characters | No | Mandatory | |||
| 20. | Flag for whether /not father or spouse name | Drop-Down | None | Yes | Yes | Yes / Yes / Yes | Father or Spouse | No | Mandatory | |||
| 21. | Address 1 | Alphanumeric | None | Yes | Yes | Yes / Yes / Yes | N/A | No | Mandatory | First field | ||
| 22. | Address 2 | Alphanumeric | None | No | No | Yes / Yes / Yes | N/A | No | Optional | Second field | ||
| 23. | Address 3 | Alphanumeric | None | No | No | Yes / Yes / Yes | N/A | Yes | Optional | Third field | ||
| 24. | City | Alphanumeric | None | Yes | Yes | Yes / Yes / Yes | N/A | No | Configurable | |||
| 25. | State | Drop down | MFI state | Yes | Yes | Yes / Yes / Yes | Defined by MFI | No. | Configurable | |||
| 26. | Country | Alphanumeric | Country of the MFI | Yes | Yes | Yes / Yes / Yes | Defined by MFI. | Yes. | Configurable | |||
| 27. | Postal Code | Numeric | None | Yes | Yes | Yes / Yes / Yes | None | No | Configurable | Label should be defined by MFI: “pin code”, etc. | ||
| 28. | Telephone | Alphanumeric | None | No | No | Yes / Yes / Yes | N/A | Yes, if optional | Configurable | MFI configures whether or not it is mandatory. | ||
| 29. | Question Groups | None | No | Yes | Yes / Yes / Yes | N/A | Yes, if optional (Unused ones) | Configurable | See Question Groups. | |||
| MFI Related Information | ||||||||||||
| 30. | Loan Officer Assigned | Drop down | LO entering record | No | Yes | Yes / Yes / Yes | List of active LOs in the system. | No | Mandatory |
If client is part of a group, LO should be inherited from group membership. Else, LO can be chosen from the list of LOs. If the user is an LO, the field should default to the LO’s name |
||
| 31. | Meeting Schedule | Date/ Time/ Recurrence | Inherited from Group | Yes | Yes | Yes / Yes / Yes | 999 weeks; 999 months. | No | Optional |
This value is inherited from group information. If not belonging to a group, the client has an individual meeting schedule, which can be changed anytime in any state except for Closed and Cancelled states. For details, refer Meetings |
||
| 32. | Trained | Check box | Not selected | No | No | Yes / Yes / Yes | N/A | Yes, if optional | Optional | See Trained. | ||
| 33. | Trained On | Date | None | No | No | Yes / Yes / Yes | N/A | Hidden, if “Trained” box is hidden | Optional | See Trained. | ||
| 34. | Branch | Alphanumeric | Branch of the user | Yes | Yes | Yes / Yes / Yes | Branches in the data scope of the logged in user. | No | Mandatory |
Default value for this field should be derived from the login of the user/LO. Branch is chosen at the time of client record creation. If the client belongs to a group, the branch of the group is selected. |
||
| 35. | Apply fee type | Multi select | None | No | No | N/A - N/A - N/A | All fee types applicable to clients | No | Optional |
Personnel can apply fee amount after choosing an appropriate fee type. For details, refer Client Accounts. This can be edited later on from the ''Client Details ''page. In addition, “default fees” is applicable to all the new client records. If required, users can remove these default fees from a client record. |
||
| Attributes /Actions Viewable /Editable After Client Creation | ||||||||||||
| 36. | Client Start Date | Date | Date when changing the client state to Active. | No | Yes | No / No / No | No | N/A | This is the point at which client is first Approved. | |||
| 37. | Record creation date | Date | N/A | Yes | Yes | No / No / No | N/A | No | N/A | This is system generated when the record was first saved in the Mifos system. | ||
| 38. | Client - system ID | Alphanumeric | None | N/A | N/A | No / No / No | No | N/A | This is an independent unique ID generated by the Mifos system to identify a client. This is not editable. | |||
| 39. | Assigned to group- Group ID | Group ID number | None | No | No | Yes / Yes / Yes | Groups that exist in the branch | No | N/A | Group ID of the group that the client is a part of. | ||
| 40. | Accounts | Account IDs | N/A | N/A | N/A | Yes / Yes / Yes | Accounts owned by the individual | No | N/A | List of loan, savings and client account of the client. | ||
| 41. | Center membership | Center ID | Inherited from Group | No | No | Yes / Yes / Yes | No (If Centers exist in hierarchy) | Mandatory (if existing in hierarchy and client belongs to a group) | Inherited from group details. Clients cannot belong to a center directly. | |||
| 42. | Historical data | Alphanumeric/ Numeric/ Date | None | No | No | Yes / Yes / Yes | N/A | No | Optional |
Client’s historical data has to be maintained and displayed in the client details screen.
For details, refer Historical Data. |
||
| 43. | Notes (500) | Alphanumeric | None | No | No | Yes / Yes / Yes | N/A | No | Optional |
A record can have multiple "notes" attached to it. By default, last three notes are visible in the details page. Also if the “See all notes” link is called, all notes related to the record should be shown. |
||
| 44. | Status | Drop-down | None | N/A | N/A | Yes / Yes / Yes |
Partial Application; Pending Approval (optional state); Active; On Hold; Cancelled; Closed |
Pending Approval can be hidden by HO | Mandatory | |||
| 45 | Flag | Drop-down | None | No | No | N/A - N/A - N/A |
For Status Cancelled-Rejected; Duplicate; Withdrawn; Blacklisted; Other For status Closed- Transferred; Duplicate; Blacklisted; Left Program; Other |
No | The flag is required only for Cancelled and Closed statuses. | For details, see flags | ||
Note that only the following fields are mandatory for On Hold, Cancelled, and Closed states: First Name, Last Name, DOB, Loan officer, Meeting. Also, fields that cannot be edited after Active state are not editable in Closed and On Hold states either.
Client Family details
If this feature is turned on (see Configuration Guide)
When a client record is created, it is processed through various states, as illustrated below.

A user manually changes a client record state in Mifos. Between state changes a checklist is displayed if one has been defined. Mifos validates the fields as described in the attributes table above. Every change in state is entered in the change log, along with the date and user ID of the user making the change. For details, refer to Change Logs and Application Logs.
As illustrated, a client record can reside in the following states. All states are mutually exclusive:
| Status | Description |
|---|---|
| Partial Application | If the record has been created, but data is incomplete or the user does not want the status to be as Pending Approval, status can be marked as Partial Application. |
| Pending Approval |
This is an optional state and can be omitted during setup by the MFI. Record contains all necessary data, and is waiting for approval. Before and after this point, there could be some offline processes, which might govern the approval process. These processes can be specific to each MFI and does not impact Mifos functionality. A record can be saved in this state after the mandatory fields (according to the attributes table) have been filled. |
| Active |
Client has been Approved and is eligible to open a savings account or apply for a loan. Every client has to have a Loan Officer to be active. |
| Cancel |
A client application can be cancelled due to various reasons: Client can withdraw the application An MFI officer rejects the application The client is not eligible, as the client has been Blacklisted. A duplicate client record already exists and thus the new record is being cancelled. A client can reapply anytime after this. When a client reapplies after the record is Cancelled, the same client record can be moved to Partial state. |
| On Hold |
If the client status is marked On Hold, it has the following implications: New accounts cannot be opened for the client. New loan accounts cannot be opened for the client, but repayments for current loans remain as scheduled. |
| Close | A client record can be closed to indicate that the client is not banking with the branch anymore or a duplicate record for the client exists in the system. The flags associated with this state are: Transferred, Duplicate Account, Blacklisted, Left Program, and Other. Once Closed, client can reapply again, but the record creation of the client has to follow the complete application procedure. Refer state flow. |
Notes on client states:
Once a user with the appropriate permissions has entered the data to create a client, the user then previews the entire set of information in one screen, to validate the data. This is a mandatory step. When the user approves the preview page, the client’s data is saved in the database. Error checking for mandatory fields and valid data is performed. If any invalid entry is found or any mandatory fields have been left empty, an error message is displayed.
When a client record is created, Mifos checks the system for duplicate records, based on Government ID. If a client record with the same Government ID already exists in any state other than Closed, an error is display and the new record is not created. If a Government ID is not present, the system checks for duplicates based on Name and DOB [and father/spouse name?]. If this information matches an existing record, the user must change the name (for example, by adding a middle name) before the new record is created. In either case, if a matching record is found in Closed state, a warning is displayed to the user to review the existing record before continuing.
The client account details page includes the following information:
All data, except the system-generated Client ID, Government ID, and DOB can be modified. Government ID and DOB fields can only be modified in Partial Application state. A client’s group membership can be edited or removed, as long as neither the group nor the client have active loan or savings accounts. Every time a client record is edited or its state is changed, the user is required to preview the changes before they are saved.
Change logs track the following changes made to the client records: Date of change, Changed by, Fields changed, Old value, New value. These logs are viewable from the client details page. Changes are displayed in a single list on one or more pages.
Historical information is available by clicking the View Summarized Historical Data link at the bottom of the account details page.
|
Attribute |
Data Type |
Remarks |
|---|---|---|
|
MFI Joining Date |
Date |
No validations are required. Future or past dates will also be acceptable. |
|
Loan Cycle Number |
Number |
|
|
Product Name |
Text field |
No validations are required. |
|
Amount of loan |
Numeric |
Information on the last loan is stored by the system. |
|
Total amount paid |
Numeric |
|
|
Interest Paid |
Numeric |
|
|
Number of missed payments |
Numeric |
|
|
Total number of payments |
Numeric |
|
|
Notes |
Alphanumeric |
Only one Notes field is required and this is editable. |
Mifos tracks the performance of each client and provides the following metrics, which are displayed on the client’s detail pages in the performance history box.
The following parameters are used to track the performance of each client by the system:
| S. No. | Performance Metrics | Formula | Description |
|---|---|---|---|
| 1 | Loan Cycle number | The counter is incremented when a loan is disbursed if, at loan product definition level [link], the attribute Include in loan cycle is set to Yes. If the loan account is rescheduled, written off, or cancelled, the loan cycle number is decremented. |
|
| 2 | Amount of last loan |
Amount of the most recently “closed-obligations met” loan |
This consists of the most recently "closed-- obligations met" loan amount that incremented the loan cycle number. Please note that the logic for this field is different on the group page. There is an open issue (#533) to resolve this. |
| 3 | Total # of active loans |
Total number of all loan accounts in * Active in good standing * Active in bad standing |
|
| 4 | Delinquent Portfolio | Amount of overdue loan principal / Total original value of all outstanding loans |
* This should consider loans in Active in good standing and Active in bad standing states. * Written-off loans should not be included. * Closed- rescheduled loans should not be included. |
| 5 | Total Savings | Sum of account balances of all mandatory and voluntary savings accounts | This should include all the savings accounts of the client. |
| 6 | Attendance |
Attendance of the client is entered from the Enter Collection Sheet screens. The following two counters should be maintained: * Number of meetings attended: Number of meetings where the client attendance is equal to "Present" and “Late” for the last 12 months * Number of meetings missed: Number of meetings where the client attendance has a value equal to "Absent", "Approved leave" for last 12 months For one meeting, attendance should be counted only once, irrespective of the number of times bulk entry has been entered. |
|
| 7 | Loan cycle per product | See description below |
Notes on loan cycle per product
New clients can be added to a group by clicking the Add Client link on the group account details page. An individual can belong to only one group at any time.
The following rules apply to the relationship between group states and client states:
Existing clients that do not belong to a group can be assigned to a group, as long as their client status is neither closed or cancelled and they do not have an active loan. The group status much be equal to or higher than the client status.
Group membership is assigned via the Edit meeting schedule/Add group link on the client details page. When a group is selected, the system validates that the client does not have an active loan or savings account and adds the client information to the group account details and updates the group performance metrics.
Changes are made to deposits due from the group: if the group’s mandatory savings account is calculated per individual, the amounts are recalculated based n the new number of clients. The client inherits the meeting schedule and the loan officer of the assigned group.
Group membership for an existing client can be removed. This can be done by clicking the Edit/Remove group membership link.
The user can optionally assign another loan officer at this point, and enter notes about the removal. When the user clicks Submit, the system prompts the user if the client is active and no loan officer was assigned. If the client was a title holder in the group, the system alerts the user that the title position is now empty. The system then removes the group membership from the client record.
After a client is removed from a group, the performance history details on the group details page is updated with the new number of client members and the individual loan size and total loan portfolio fields are recalculated. If the group’s mandatory savings account is calculated per client, the amount is recalculated based on the change in the number of client members.
A client can be reassigned to any of the following:
Loan accounts can be created for all Active products in the system; they inherit the rules and defaults from the product definition. Loan accounts can be created for either an individual or a group, depending on whether the product is defined for clients or groups. A group or client can have multiple loan accounts but a single account cannot be given to multiple groups or clients.
Loan accounts can be opened only for Approved/Active clients and groups.
Fees can be charged to loan accounts in three ways, both at time of account creation and after.
Loan accounts can be created by clicking the Open new loan account link in the Quick Start navigation pane on the Home tab. A user with appropriate permissions will then need to then identify the client or group for which the loan is being created and select the loan product that will define the loan.
The loan product attributes are inherited from the product definition. The defaults for some attributes can be overwritten at the account level as long as the new value remains within the min/max range defined in the product definition.
| Mandatory for State= | Editable after State= | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| S. No. | Attribute Name | Data Type | Default Value | Partial/ Pending | Approved | Partial | Pending | Approved | Range | Can be disabled? | Configurable/ Mandatory/Optional | Description/ Notes |
| 1. | Account Owner | String Un-editable, chosen from search results | N/A | Yes | Yes | No | No | No | Search results of list of Approved clients in the system | No | Mandatory | |
| 2. | Purpose of Loan | Drop-Down | None | No | No | Yes | Yes | Yes | Options as defined by HO | No | Optional | |
| 3. | Loan Name | Drop-Down- single select | None | Yes | Yes | No | No | No | All products in the status “Active” and Applicable to the “Account owner type” | No | Mandatory | If Account Owner is a client, products applicable to “Clients” will be displayed in the Loan product list. Similarly for groups. |
| 4. | Loan system ID | N/A | N/A | Yes | Yes | N/A | N/A | N/A | N/A | No | Mandatory | Un - editable- system generated |
| 5. | Loan Amount | Number | If specified, inherited from product definition. | Yes | Yes | Yes | Yes | No | Min/Max amounts as defined in product definition | No | Mandatory | |
| 6. | Interest rate | Percentage |
Inherited from product definition |
Yes | Yes | Yes | Yes | No | Min/Max rate as defined in product definition | No | Mandatory | The rate field can be zero, but cannot be left blank. |
| 7. | Number of installments | Number |
Inherited from product definition |
Yes | Yes | Yes | Yes | No | Min/Max installments as defined in product definition | No | Mandatory | |
| 8. | Disbursal Date | Date | Next meeting date | Yes | Yes | Yes | Yes | Yes | Any date – in between the loan approval date and one year from the current date. | No | Mandatory | This date is used as a Loan Start Date to generate the repayment schedule. The user can fill this field at the beginning of the loan to project when loan is disbursed; but this field can be updated anytime before disbursement. |
| 10. | Grace period for repayments | Number of installments |
Inherited from product definition |
No | No | Yes | Yes | Yes | 0; Min/max number of installments | No | Mandatory (if grace period is specified) | If grace period type (as per product definition) is “None”, OR, If Interest is deducted at disbursement, then this field is disabled. If the loan account is still in grace period, the length of grace period can be extended or reduced. It cannot be reduced for the period already crossed. For example, if the grace period is for three installments, and when the account is at 0.5 installments, it cannot be reduced to one installment, but can be reduced to two installments. |
| 11. | Fee types | List |
Inherited from product definition |
No | No | Yes | Yes | Yes | Predefined fee types | No | Optional | Only those fee types for which periodicity aligns with the repayment frequency can be attached to the account/ product. See fees for details. |
| 12. | Source of Fund | Look-up, single select | None | No | Yes | No | No | No | Inherited from the product definition | No | Mandatory | |
| 14. | Collateral Type | Drop down- single select | None | No | No | Yes | Yes | Yes | Options defined by HO | No | Optional | Mifos system does not link these accounts; neither does it perform any validations for balance, validity, etc. of the savings account. |
| 15. | Collateral Notes | Text (200) | None | No | No | Yes | Yes | Yes | N/A | No | Optional | System allows only a single Collateral Note This note can be edited multiple times, but the system displays only the last saved Collateral Note |
| 16. | Status | Drop-Down | N/A | N/A | N/A | N/A | N/A | N/A | Refer Status flow. | No | ||
| 17. | Flag | Drop-Down- single select | None | N/A | N/A | N/A | N/A | N/A | Rejected; Withdrawn; Other | No | Mandatory | Applicable only for status= Cancelled |
| 18. | Question Groups | Mix | None | No | No | Yes | Yes | Yes | See Question Groups. | |||
| 19. | Notes | Text Field (500 char) | None | No | No | Yes | Yes | Yes | N/A | No | Optional | An account can have multiple "notes" attached to it. |
| 20 | External ID | Text Field | None | No | No | Yes | Yes | Yes | N/A | No | Optional | External ID is not enforced as unique. |
| Account Balance Details- System calculated Uneditable fields | ||||||||||||
| 20. | Principal Paid | Number | N/A | N/A | N/A | N/A | N/A | N/A | No | Mandatory | Total principal paid by the client/ group till date | |
| 21. | Interest Paid | Number | N/A | N/A | N/A | N/A | N/A | N/A | No | Mandatory | Total interest paid by the client/ group till date | |
| 22. | Fees Paid | Number | N/A | N/A | N/A | N/A | N/A | N/A | No | Mandatory | Total fees paid (all fee types) by the client/ group till date | |
| 23. | Penalty Paid | Number | N/A | N/A | N/A | N/A | N/A | N/A | No | Mandatory | Total penalty paid by the client/ group till date | |
| 24. | Total Amount Paid | Number | N/A | N/A | N/A | N/A | N/A | N/A | No | Mandatory | Total amount paid (principal + interest + fees + penalty) by the client/ group till date | |
| 25. | Principal Remaining | Number | N/A | N/A | N/A | N/A | N/A | N/A | No | Mandatory | Total principal to be paid from the current date till the end of the loan period. This includes any missed installments. | |
| 26. | Interest Remaining | Number | N/A | N/A | N/A | N/A | N/A | N/A | No | Mandatory | Total interest to be paid from the current date till the end of the loan period. This includes any missed installments. | |
| 27. | Total Amount Remaining | Number | N/A | N/A | N/A | N/A | N/A | N/A | No | Mandatory | Total amount to be paid from the current date till the end of the loan period +principal + interest). This includes any missed installments. | |
| 28.. | Principal Overdue | Number | N/A | N/A | N/A | N/A | N/A | N/A | No | Mandatory | Principal overdue (from previous installments) | |
| 29. | Interest Overdue | Number | N/A | N/A | N/A | N/A | N/A | N/A | No | Mandatory | Interest overdue (from previous installments) | |
| 30. | Fees Overdue | Number | N/A | N/A | N/A | N/A | N/A | N/A | No | Mandatory | Total fees overdue from the previous installments. This is calculated as sum of all fee types charged to the account. | |
| 31. | Penalty Overdue | Number | N/A | N/A | N/A | N/A | N/A | N/A | No | Mandatory | Total penalty overdue | |
| 32. | Total Amount Overdue | Number | N/A | N/A | N/A | N/A | N/A | N/A | No | Mandatory | Total amount overdue. This is the sum of overdue (principal, interest, fees, and penalty). | |
When a loan account is created, it is processed through various states, as illustrated below.
If a checklist has been defined by the MFI, this checklist will appear when changing the loan state [see Checklist]. Every manual change in state is entered in the change log, along with the date and user ID of the user making the change [link to change logs]. Note that some state changes (moving from Approved to Active in Good Standing, between Active in Good Standing and Active in Bad Standing, and moving into Closed/Obligation Met) are handled automatically by the system. These state changes are automatically triggered when a loan is disbursed, a payment is missed, etc.
If the HO does not include the optional states Pending Approval and Disbursed to LO, the status flow diagram looks like the following (Note: because we haven't thoroughly tested MIfos with these optional states turned off, we do not recommend removing these states): (Disbursed to LO state has been removed)

As illustrated, a loan record can reside in the following states. All states are mutually exclusive:
|
Status |
Description |
|---|---|
|
Partial Application (Save for later) |
This state is used if the record has been created, but data is incomplete or the user does not want submit the record for approval. |
|
Pending Approval (Submit for Approval) |
This is an optional state and can be omitted during configuration. This state is used when the record contains all necessary data and is waiting for approval. Before and after this point, there may be offline processes which might govern the approval process. These processes can be specific to each MFI and does not impact Mifos functionality. |
|
Approved |
Loan amount and repayment schedule has been approved. Once a loan account is approved, interest, amount, loan term, funding source, etc are frozen. These parameters cannot be changed. |
|
|
|
|
Active in Good Standing |
Once the loan has been disbursed to the customer, the state will be changed to Active in Good Standing automatically by the system. Any applicable grace period starts from this point. If the disbursement date is different from the date originally entered, the repayment schedule will be regenerated. |
|
Closed - Obligations met |
The system moves accounts into this state automatically when a loan amount is completely paid off. This state change cannot be manual. |
|
Closed - Rescheduled |
Due to some reason, if the customer is unable to repay the loan on time, he or she can request for loan rescheduling. If MFI allows rescheduling, the current loan account has to be closed with the status marked as Closed- Rescheduled and a new loan account has to be created which can have the same or different conditions and rules compared to the previous loan. Mifos system does not link the old and new accounts. In performance reporting and other reporting, this loan is not counted; counter should be decremented. If this loan is included in the loan cycle, it should be removed from there when the loan account status is changed to Closed- Rescheduled. |
|
Active- Bad standing |
Due to violations and/or non-repayment etc, the customer loan account can be marked as “Active- Bad standing”. From this state, customer account can go to “Active in good standing” or “Closed - Written Off”. System will move the loan account to this state automatically, in case it exceeds the “Definition of lateness” as defined by the MFI i.e., system has not received any payment for X number of days. (X is the lateness specified.) System will move the account back to the “Active in good standing” status when the total amount overdue has been paid (the complete principal overdue + interest overdue + fee overdue+ penalty overdue has been paid). The state change from “Active in good standing” to “Active in bad standing” and vice versa will always be automatic. Manual change will not be allowed. |
|
Closed- Written Off |
If the MFI/LO determines that the customer cannot repay or has no intentions to repay the loan, the loan can be “Written off”. Transactions cannot be applied to accounts in this state. |
|
Canceled |
A loan application can be cancelled due to various reasons like,
|
Notes:
Mifos automatically tracks changes in the loan/savings status. The first entry in this history should be the creation of the loan/savings and should show the change of status from New to Open, while the last entry should be the transition of the loan/savings to a final state of either Closed or Canceled.
This information can be used to track performance of the LO or efficiency of the MFI’s processes by tracking duration between loan/savings statuses.
The following attributes are captured when the status is changed and saved. All these fields are mandatory, un-editable, and generated by Mifos system.
|
S. No.
|
Attribute Name
|
Data Type
|
Description/ Notes
|
|---|---|---|---|
|
1. |
Old Status |
String |
|
|
2. |
New Status |
String |
|
|
3.. |
Date Changed |
Date |
This is the system date when the status is saved into a new status. |
|
4. |
Changed By |
String |
This is the username of the system user who performed the change in status. |
Note: All status changes, irrespective of number of times these statuses have been changed, are recorded in the status description table.
|
Status |
Description |
|---|---|
|
Partial Application (Save for later) |
This status is used if the record has been created, but data is incomplete or the user does not want the status to be Pending Approval, status can be marked as Partial Application. The loan account attributes can be updated/modified in Partial Application state and Pending Approval state as per the attributes table. |
|
Pending Approval (Submit for Approval) |
This is an optional state and can be omitted during configuration by the HO. This status is used when the record contains all necessary data and is waiting for approval. Before and after this point, there could be some offline processes, which might govern the approval process. These processes can be specific to each MFI and does not impact Mifos functionality. |
|
Approved |
Loan amount and repayment schedule has been approved. Once a loan account is approved, interest, amount, loan term, funding source, etc are frozen. These parameters cannot be changed. |
|
|
|
|
Active in Good Standing |
Once the loan has been disbursed to the customer, the state will be changed to Active in Good Standing by the system. Any applicable grace period starts from this point. The repayment schedule will be regenerated in case the disbursement date is changed. |
|
Closed - Obligations met |
The system moves accounts into this state automatically when a loan amount is completely paid off. This state change cannot be manual. |
|
Closed - Rescheduled |
Due to some reason, if the customer is unable to repay the loan on time, he or she can request for loan rescheduling. If MFI allows rescheduling, the current loan account has to be closed with the status marked as Closed- Rescheduled and a new loan account has to be created which can have the same or different conditions and rules compared to the previous loan. Mifos system does not link the old and new accounts. In performance reporting and other reporting, this loan is not counted; counter should be decremented If this loan is included in the loan cycle, it should be removed from there when the loan account status is changed to Closed- Rescheduled. |
|
Active- Bad standing |
Due to violations and/or non-repayment etc, the customer loan account can be marked as “Active- Bad standing”. From this state, customer account can go to “Active in good standing” or “Closed - Written Off”. System will move the loan account to this state automatically, in case it exceeds the “Definition of lateness” as defined by the HO i.e., system has not received any payment for X number of days. (X is the lateness specified at the HO level.) System will move the account back to the “Active in good standing” status when the total amount overdue has been paid up, that is the complete principal overdue + interest overdue + fee overdue+ penalty overdue has been paid up. The state change from “Active in good standing” to “Active in bad standing” and vice versa will always be automatic. Manual change will not be allowed. |
|
Closed- Written Off |
If the MFI/LO determines that the customer cannot repay or has no intentions to repay the loan, the loan has to be “Written off” and the system should make the required accounting/financial entries. Transactions cannot be applied to accounts in this status. |
|
Canceled |
A loan application can be cancelled due to various reasons like,
|
Mifos automatically tracks all changes in the loan states. [where is it accessed?] The first entry in this history is the creation of the loan record and shows the change of state from New to Open. The last entry is the transition of the loan to a final state of either Closed or Canceled.
This information can be used to track performance of the LO or efficiency of the MFI’s processes by tracking duration between loan/savings statuses.
The following attributes are captured when the status is changed and saved. All these fields are generated by Mifos and are not editable.
|
S. No.
|
Attribute Name
|
Data Type
|
Description/ Notes
|
|---|---|---|---|
|
1. |
Old Status |
String |
|
|
2. |
New Status |
String |
|
|
3.. |
Date Changed |
Date |
This is the system date when the status is saved into a new status. |
|
4. |
Changed By |
String |
This is the username of the system user who performed the change in status. |
Once a user with the appropriate permissions has entered the data to create a loan, the user then previews the entire set of information in one screen, to validate the data. This is a mandatory step. When the user approves the preview page, the loan information is saved in the database. Error checking for mandatory fields and valid data is performed. If any invalid entry is found or any mandatory fields have been left empty, an error message is displayed.
Once a loan account has been created, its information can be viewed and edited on the account details page, as described in the following paragraphs.
The account summary section of the details page gives an overview of the amount paid and due after the last transaction. This information is updated by the system according to the values defined in the loan attributes table, and is not editable by the user.
The account summary is updated when the system detects any of the following actions:
The following information is updated whenever a payment is made:
The following information is included in a table, which is updated whenever a payment is made. The amounts due are calculated as follows:
|
Original Loan |
Amount Paid |
Loan Balance |
|
|---|---|---|---|
|
Principal |
Original loan amount- This figure is not updated after the account has been Approved. |
Amount paid against principal till date |
Original loan amount paid |
|
Interest |
Interest expected from this account This figure is not updated once the account becomes Approved. |
Amount paid against interest till date. |
Amount of interest remaining on the loan
|
|
Fees |
Amount expected from this account as per the fee types attached to the account |
Amount paid against fees and miscellaneous fees till date |
Amount expected from this account as per the fee types attached to the account. It should include unpaid miscellaneous fee charged to the account |
|
Penalty |
N/A |
Amount paid against miscellaneous penalty till date |
Any miscellaneous penalty charged, and not paid. |
|
Total |
Total of principal and interest |
Total of above 4 |
Total of above 4 |
If an installment payment is missed, the amount is added to the next payment and displayed in this section.
The user can view installment details by clicking the View installment details link:
|
Column Name |
Description |
|---|---|
|
Current Installment Details |
|
|
Principal |
Principal due for the current/upcoming installment |
|
Interest |
Interest due for the current/upcoming installment |
|
Fees |
Fee due for the current/upcoming installment as per the fee types linked to the account and miscellaneous fee charged to the account This amount can be waived. |
|
Penalty |
Any miscellaneous penalty charged This amount can be waived. |
|
Total |
Total of Principal, Interest, Fees, and Penalty |
|
Overdue amount |
|
|
Principal |
Amount overdue against principal for the missed installments |
|
Interest |
Amount overdue against interest for the missed installments |
|
Fees |
Amount overdue against fees for the missed installments |
|
Penalty |
This should be a summation of all misc penalties that was charged and was included in the previous installment(s), but not paid. |
|
Total |
Total of Principal, Interest, Fees, and Penalty |
Transaction history records and displays the repayment details of the account. This is updated by the system when a transaction is made. The user is not allowed to make any modifications to the transaction history.
When an account is first created, a Disburse loan link is displayed in the Transactions box. This can be used to record the loan disbursal. After disbursal, this link is not available, but the other transaction links can be used to apply payments, charges, adjustments, or to repay the loan.
Mifos tracks the performance of each loan and provides the following metrics, which are displayed in the Performance history box on the loan detail page.
Users can prepare and print whatever administrative documents are available, such as vouchers, payment books, disbursal receipts and payment receipts, by clicking a link under Administrative documents. [link to administrative documents]
When a user creates a loan account for a client, he first identifies the client and selects a loan product from the list of products available for the client. If Mifos has been configured to require repayment on meetings days, the system displays only those products whose frequencies are equal to or multiples of the client's meeting frequency. For example, a client with a meeting frequency of three weeks on a Monday is eligible for loan products with a frequency of 3, 6, and 9 weeks. A client whose meeting frequency is the last Monday of every two months is eligible for loan products with a frequency of 2, 4, and 6 months.
On the next page, the default values for that loan product are displayed, which the user may change for the new loan account, according to the ranges indicated in parentheses next to the fields on the page. Automatic administrative fees associated with the account are displayed, and the user can apply up to three additional fees to the loan.
When the user clicks Continue, an installment schedule is displayed. It is based on the loan amount, interest rate, repayment frequency, and the number of installments specified. For more information regarding principal and interest calculations, see . The following information is displayed, which is independent of the grace period and meeting schedule the client belongs to:
| Column Name | Description |
|---|---|
|
Due Date |
Due date |
|
Date paid |
Date of payment- This is not a part of repayment schedule when a loan account is created |
|
Principal |
Principal paid/due |
|
Interest |
Interest paid/due |
|
Fees |
Fees paid/due |
|
Total |
Total of Principal, Interest, and Fees |
| Running balance - This is not a part of repayment schedule when a loan account is created. | |
|
Principal |
Total principal outstanding |
|
Interest |
Total interest outstanding |
|
Fees |
Total fees outstanding |
|
Total |
Total of Running balance, Principal, Interest, and Fees |
If the loan is a variable installment loan, the user is able to edit the loan schedule here. If Compare with Cash Flow is checked, the user is also able to enter in cash flow details. See Variable Loan Installments and Cash Flow Comparision FS for more information.
Notes on repayment schedule:
The repayment schedule can be accessed at any time by clicking the View payment schedule link on the loan account details page.
Note: Also see http://groups.google.com/group/mifosfunctional/browse_thread/thread/7ca15f34dc937d9c for more details on how repayment schedules are created.
On the loan account details page, the user clicks the Edit account information link and then edits the disbursal date and/or the repayment day. The system validates that the edits satisfy the predefined interval between the disbursal date and the loan schedule state date and then calculates and displays a new repayment schedule. The system also validates that the date entered is a future date and that the repayment interval has not been altered.
Mifos offers bulk processing features to facilitate creating multiple loan accounts based on the same product definition and approval multiple loans in the Pending approval state.
A user with the appropriate permissions can create loan accounts for all or some clients in a center at one time. These loan accounts will be defined by the same loan product and will be created with the same loan information, except for the loan amount and purpose.
To do this, the user clicks the Create multiple loan accounts link on the Client & Accounts Tasks navigation pane and filters the accounts by branch, loan officer, center (or group if the center hierarchy doesn't exist) and loan product. The system displays the approved clients in the groups in the user’s data scope. The user selects those clients for whom loan accounts are to be created and specifies the loan amount and purpose.
Bulk loan creation does not allow specifying all attributes of a loan including collateral type and info, custom fields and source of funds.
This feature also does not work with loan products with variable loan installments or with interest rate type of Declining Balance - Interest Recalculation
Loans are usually approved by the branch manager. When a loan account in the Pending approval state (or Partial application state if the Pending approval state is not available) fulfills the eligibility criterion, a user with appropriate permissions can approve such loans one at a time by clicking the Edit change status link on the loan account detail page and changing the status to Approved. Alternatively, a user can filter all the loan accounts in his/her data scope that are Pending approval, and change the state to Approved at one time.
To do this, the user clicks the Change account status link on the Clients & Accounts Tasks navigation pane and filters the accounts by branch, loan officer, type, and current status.
Savings accounts can be created for saving products already defined in Mifos; they inherit the rules and defaults from the product definition. For example, a minimum deposit may be required before an account can earn interest. Savings accounts can be created for an individual or a group or a center, depending on the definition of the product. When a user creates a client account, he can choose to automatically create up to three savings accounts for the client at the same time.
A savings account can be created only if the product is in an Active state and the client or group is Approved or the center is Active. Accounts can be either mandatory or voluntary, depending on how the Recommended/Mandatory amount for deposits attribute is set.
Group/center savings accounts. By default, all members of a group/center are part of all the savings accounts of the group. These members are allowed to deposit and withdraw from the group/center savings account. When a transaction (deposit/withdrawal) is made, the user selects the client name from a list of Approved clients belonging to the group/center. The deposits/withdrawals can also be made by a non-specified entity.
A center, group or client can have multiple accounts of the same or different products but a single account cannot be given to multiple centers, groups or clients. Individual client accounts cannot be converted to a group account. Similarly, a center/group account cannot be converted.
Savings accounts cannot be deleted.
Notes on savings amount:
In addition to the attributes inherited from the savings product definition, the following attributes are defined for savings accounts. Attributes that are defined at the product definition level but can be modified at the account level are repeated here.
| s. no. | attribute name | data type | default value | mandatory state = partial/ pending | editable after state = approved | partial | pending | approved | range | notes |
|---|---|---|---|---|---|---|---|---|---|---|
|
1 |
Account Owner (client/ group/center) |
String (System ID) |
None |
Yes |
Yes |
No |
No |
No |
All clients and groups in Approved Status; All centers in Active state |
|
|
2 |
Savings Product Name |
Drop Down |
None |
Yes |
Yes |
No |
No |
No |
Savings Products in active state |
|
|
3 |
Recommended/ Mandatory Amount for Deposits |
Number |
Inherited from product definition |
No |
No |
Yes |
Yes |
Yes |
|
|
|
4 |
Status |
Radio Buttons |
N/A |
N/A |
Yes |
Yes |
Yes |
Yes |
|
The field will be called "Mandatory amount for deposits" for Mandatory Accounts and "Recommended amount for deposits" for Voluntary accounts." Mandatory for "Mandatory Accounts" and Optional for "Voluntary accounts." See note on this field below. |
|
5 |
Flag |
Drop Down |
None |
N/A |
N/A |
N/A |
N/A |
N/A |
|
For canceled state, flag options are: Withdrawn, Rejected, Blacklisted, Other |
|
6 |
Notes |
Text |
|
|
|
|
|
|
|
Can be added from the account details page |
|
7 |
Question Groups |
Mix |
None |
No |
No |
Yes |
Yes |
Yes |
|
See Question Groups |
When a savings account is created, it is processed through various states, as illustrated below. A user with appropriate permissions manually changes a savings record state in Mifos, using a checklist [link] if one has been defined by the MFI. Mifos validates the fields as described in the attributes table [link]. However, external MFI processes and business logic are not validated.
Every change in state is entered in the change log, along with the date and user ID of the user making the change [link to change logs].
[Figure 1: Status Flow Diagram- Savings Account Creation]
As illustrated, a savings record can reside in the following states. All states are mutually exclusive:
Table 2: State Description for Savings Accounts
|
status |
description |
|
Partial Application (save for later) |
If the record has been created but data is incomplete or the user does not want the state to be Pending Approval, the state can be marked as Partial Application. The account attributes can be updated/modified in the Partial Application state and Pending Approval states, as per the attributes table. Deposits/withdrawals are not allowed in this state. |
|
Pending Approval |
This is an optional state, depending on the MFI. The record contains all necessary data, and is waiting for approval. Offline processes, specific to each MFI, might govern the approval process but do not impact Mifos functionality. Deposits/withdrawals are not allowed in this state. |
|
Active |
The savings account has been approved and the client can use their savings account. An account can remain Active with a nil balance. |
|
Inactive |
If there are no transactions in the savings account for X days (X is the dormancy definition defined by the MFI), the state is automatically changed to Inactive. There are no restrictions on deposits, withdrawals, and adjustments while the account is in this state. If a transaction is made, the state automatically changes to Active. These state changes (from Inactive to Active and vice versa) can also be made manually. If an account is Inactive, no voluntary/mandatory deposits due appear in the collection sheet/bulk entry form. Mandatory amounts due stop accumulating but the amounts already accumulated in the account remain. (This is currently not working due to Issue 1911). |
|
Cancel |
A savings application can be cancelled for to various reasons: client withdraws their application; the application is rejected by an officer of the MFI; the client is not eligible because he/she has been blacklisted. Deposits/withdrawals are not allowed in this state. |
|
Closed |
Savings account is Closed. Once closed, the state of the account cannot be modified. Transactions are not allowed after an account is closed. When an account is closed, the interest till the current date should be calculated and posted to the account. Because the balance of the account must be nil before it can be closed, a withdrawal transaction must be made. The user must specify the Date of transaction (current date) and the Amount (total account balance including the interest earned till the current date). This amount must be rounded as per the rounding rules. The user must also specify the mode of payment, receipt ID and receipt date, and well as the client name. For group/center savings accounts, the client who made the withdrawal should also be specified. |
Once the user identifies the owner of the savings account, selects the product, and enters a savings amount, he/she previews the set of information associated with the savings account, on a single screen. This is a mandatory step. When the user approves the preview page, the savings account is saved in the database and an account number is assigned.
When a savings account has been created, its information can be viewed and edited on the account details page.
Near the top of the page, the Account balance is displayed, which is calculated as: Deposits – Withdrawals + Interest Earned. This information is not available for accounts in Partial and Pending states. The total amount due and the date are also displayed.
For mandatory accounts only, click the View all account activity link to see a breakdown of the deposits made.
Under Performance History, the account details page also includes a summary of the account balance, as of the last transaction/interest posted. It includes the following:
Deposits due. The account details page also displays the details for the deposit due on the next meeting date. The details included in this section are: [I can’t find this]
Note that the original deposit and the total overdue amount can be waived.
The following attributes are displayed as read -only information:
Transactions made to client, loan, and or savings accounts - either entered individually on account details, or using collection sheets.
After a Loan account is in Approved status, transactions can be made to the account. These transactions include the following:
Note:
In addition, loan disbursals can be reversed.
A loan repayment schedule is set up at the time of loan creation. In addition to the amount of the loan repayment, the collection installment amounts may include MFI fees, penalties, and other adjustments. When a loan state is changed to Disburse to LO (or Approved, if Disburse to LO is not used by the HO), the loan can be issued to the client. The transaction is entered in Mifos through a Disburse loan link which is displayed on the loan details page once the loan is approved. Alternatively, disbursals can be entered in Mifos using the collection sheet entry.
Loan amounts are disbursed in full only.
The following details are captured when the loan is disbursed:
Miscellaneous fee or miscellaneous penalty charged to the account before disbursal is added to the first installment.
When the disbursal entry is made, the account activity is updated, the repayment dates in the repayment schedule is updated as per the date of disbursal, and the disbursal date is changed to the date entered by the user.
Transaction entries are updated with the loan amount, including interest and/or fees, and the status of the loan account is changed to Active in good standing.
The grace period starts when the client account reaches the Active in good standing state for the first time.
When a loan officer returns from a meeting or otherwise receives a payment, he/she or a data entry clerk enters the collection details in Mifos and the system updates the relevant records. To record a payment, the user clicks the Apply payment link under Transactions on the loan account details page.
The system enters the current date for the Date of Transaction. The user enters the amount of the payment and, optionally, the receipt ID and date of receipt. When completed, the user previews the payment information and then saves it. Once the payment is recorded the payment is broken into principal, interest, fees, and penalty components, which are displayed in a table on the account details page. The account balance, amount paid and total amount remaining, and the next payment details are updated accordingly.
The loan account details page shows the total amount due on the next scheduled payment date. The user can click the View installment details link to see the total amount broken into the following components for both the current installment and overdue amounts: principal, interest, fees, and penalty.
After a loan is disbursed, a client can at any time repay the loan in a single payment. To record a total repayment, the user clicks the Repay loan link in the Transaction box on the loan details page. The system calculates the total amount due as of the current date, including principal, interest, fees and penalties, as follows:
Note on holidays: In case a holiday is added after the disbursal of the loan and the original calculation of the repayment schedule, one installment can be shifted to the next repayment date. For example, payment on 1st Jan is shifted to 1st Feb. In this case, if an early repayment is done on or before 31st Jan, it will not consider the interest amount, which would have been due on 1st Jan if Jan 1st were not a holiday.
The user specifies the mode of payment, and optionally the receipt ID and date for the total amount due. The system updates the account summary table with the amounts applied to principal, interest, fees and penalties and changes the account state to Closed – Obligation met.
A client may at any time make a payment that is not in the amount due on a specific date. For example, a client may make a partial payment when she’s short of cash or an overpayment when she has a surplus. A user records these payments in the same way he/she records normal installment payments, by clicking the Apply payment link in the Transaction box of the account details page. However, in these cases, the user needs to modify the default amount shown for the payment to reflect the actual payment amount before previewing and submitting the payment.
The implications of payments that do not match the amount due are described in the following paragraphs.
A partial payment is first applied against the penalty due. If the amount exceeds the penalty, it is applied against the fee due, followed by the interest due and then the principal. The system updates the account activity and transaction history entries. If the user clicks the View repayment schedule link, he/she sees that the partial payment is reflected in both the Installments paid and Installments due sections of the table. The Date paid for an installment is displayed only when the entire installment has been received.
Primary Flow- Partial Payment
Before the system accepts an early payment, it validates that the date of transaction is between the last payment date and the current date, and that the amount entered is not greater than the total amount outstanding for the loan. The amount paid is first applied to the current installment. The remaining amount is then applied to the penalty due, if any, for the next installment. An excess at this point is applied to the fee due, followed by the interest due, and then the principal. The system updates the account activity and transaction history entries. If the user clicks the View repayment schedule link, he/she sees that the early payment is reflected in both the Installments paid and Installments due sections of the table.
Primary Flow- Early Payment
Mifos allows backdated payments if the configuration settings allow it. The system calculates and displays the total amount due as of the current date. If a backdated payment is paid, the user manually calculates the amount due as of the transaction date. The system verifies the date and amount. If the amount entered is not equal to the amount due as of the transaction date, the system does not accept the payment.
The date of payment can be between the date of the last meeting and the current date.
Alternate Flow- Backdated Payment
If an installment payment is missed, it is displayed in the overdue information, and the Total Amount Due includes the missed installment. For example, if a client has to repay $100 (principal = $80 and Interest = $20) every month, and she defaults for the month of August, then for the month of September, the following amounts are displayed in the Next Payment details:
Principal Due= $80
Interest Due = $20
Penalty Due = $2 (for the missed/defaulted installment)
Principal Overdue= $80 (for the missed/defaulted installment)
Interest Overdue = $20 (for the missed/defaulted installment)
Total Amount Due= $202
While the payment is entered, the system accepts either $202 or no payment at all.
To rectify errors, the full amount of the last amount paid can be nullified by clicking the Apply adjustment link from the Transactions box on the account details page, the repayment schedule page, or the next installment details page. Multiple repayments can be reversed by reversing each payment amounts one at a time.
Users adjusting loan payments for a loan already of the status Closed – met obligation, must have a specific permission to do so.
When the user clicks the Apply adjustment link, he indicates that the last payment should be reverted, and includes a note describing the reason for the adjustment. These notes are stored with the transaction history, rather than with the Recent notes or All notes for the client. After the adjustment has been previewed and submitted, the user can click the Apply adjustment link again, to reverse the previous payment, and so on, until only the first payment remains.
Once an adjustment is made, the system breaks down the last amount paid into its components and updates the respective amounts where required. For example, if the last amount was paid for principal, interest and fees together, the system breaks the total amount into these amounts and subtracts it from the principal paid till date, the interest paid till date, and the fee paid till date, and adds it to the loan balance of principal, interest, and fees to pay.
After each adjustment, the system updates the following:
Alternate Flow - Adjusting payments
Data entry errors can result in loans that are created and disbursed to a wrong client/group or recorded against the incorrect client. Or a loan account of the incorrect product can be created and disbursed to a client. The error might not be detected until after multiple repayments have been recorded.
To correct this type of error, a user with the appropriate permissions can reverse the loan disbursal and all payments made again the loan, as long as the loan is within the user’s data scope. The loan must be in an Active in good standing or Active in bad standing states only.
The user clicks the Reverse Loan Disbursal link on the Admin tab, enters the reason for the reversal in the Notes box, and then previews the change before saving it. Mifos changes the loan account state to Cancelled with the flag Loan reversed, and reverses any payments that have been made along with the reversal of the loan disbursal. The notes are included in both the account notes and the adjustment notes, and the change is logged in the account activity. All relevant counters, such as the loan cycle, are decremented and the loan is not included in loan counts for reports. The loan is moved to the Canceled state, with a reason flag of “reversed.”
If several payments have already been collected, the user can use the Redo Loan Disbursal link to recreate a loan and historical payments.
Alternate flows
Additional information
After an error has been made and the loan reversed as a result, as explained in Reversing loan disbursals, a user with appropriate permissions can redo the loan disbursal by opening an account for the correct client with the correct product selected. The loan disbursed should be reversed first before being redone.
To do this, the user clicks the Redo Loan Disbursal link on the Admin tab and selects the client for whom the account is to be redone. The system validates that the client is within the user’s data scope and displays the Redo Loan Account page. Red warning text indicates that the user is redoing the loan account.
The user enters the loan account information. Note that the user is able to enter a disbursal date in the past.
When the user clicks Continue, the Redo Loan Account Installment page is displayed, on which the Actual Payment Date and Actual Amount paid are user-editable. After the user previews and submits the loan account information, the account is flagged as redone and the loan is immediately moved to Active in Good Standing.
- User has permission to perform this action.
- Results outside the user's data scope should not be shown to the user.
- Note: The system should allow the user to enter a disbursal date in the past.
- Two fields Actual Payment Date and Actual Amount paid are user editable.
Redo Loan Disbursal: UI screens are accessible here
To view the screens, download and extract the zip folder, click on admin.htm, and if your browser gives you a warning select "Accept blocked content". Click on the Redo Loan Disbursal link under Manage Accounts and follow the user flow below.
Fees and penalties can be applied at either the loan account or at a client/group/center account. When client accounts are created, predefined charges (fees) may be attached to the account. These charges are in the form of periodic or one-time fees, and one-time miscellaneous fees or penalties. The amount due at any given time is displayed under Account information on the client detail page.
To record a charge payment for a client account, the user clicks the Apply charges link on the client details page and enters the amount, date of transaction, mode of transaction, receipt ID and date.
In addition to the fee types inherited by the loan account from product definition, user can apply other predefined fee types to the account and also apply a Misc fee to the account.
To calculate the next payment due, system will consider all the fee types applied to the account and the misc fee amount applied to the account, if any, and calculates the “Payment Due amounts”.
Notes:
User can also apply a “Misc penalty” amount to the account. If a miscellaneous penalty amount is applied to the account, the same is included in the upcoming/today’s payment due for the account.
Note:
Fee installments and penalty installments can be waived and the same amount will be reduced from the next installment details

Client, Group, and Center accounts may also have fees and penalties attached. Fees predefined as applies to that account can be attached to the account. They are due at the next meeting day when applied. Fee payments can be applied before the next meeting day. Partial payments of fees due can also be applied. See Early Repayment of Fees for detailed scenarios.
Types of Fees/Penalties
When a Loan Officer returns from the field, the officer has to enter the collection sheet details in the system. Alternatively, he can provide the details to a non-loan officer who can enter the data for him. After necessary validations, the system updates the relevant records with the transaction details provided by the LO/user.
Steps to enter a center’s data in collection sheet entry. User can enter this feature from Enter Collection Sheet Data link in Mifos in the left navigation pane.
The collection sheet entry form will have the following data:
| Sl. No. | Column Name |
Description |
|---|---|---|
| 1 | Client/Group Name, Client/Group ID | Client Name should be only First and last name. |
|
Due |
||
| 2 | Loan Product 1, 2… |
System calculated values should be pre-filled These can be edited by the users. |
| 3 | Savings Account 1, 2… |
Mandatory deposit amount for savings account 1 due till the current date. For voluntary savings accounts, this amount will only have the latest amount due and will not include the amounts due from past meetings. System calculated values should be pre-filled. The amount can be edited by the user. |
|
Issues/Withdrawals |
||
| 4 | Loan Account 1, 2… | System calculated values for Loan amount due to be disbursed to the client/group. The amount will be editable. |
| 5 | Savings Account 1, 2… | User-entered- Withdrawals made in the field clients/groups/centers |
|
Other Collections |
||
| 6 | Client Charges | System calculated- Fee/Misc fee/ Misc penalty charged to client/group/center account and due |
| 7 | Attendance |
Drop down with the following options: Present, Late, Absent, (Approved) Leave. |
Collection Sheet Entry displays disbursals due on a meeting. If the transaction date is modified to a date other than the last meeting date, Mifos updates the disbursal date for that loan account and regenerates the repayment schedule as per the new disbursal date.
Release: 1.4 (updated in 1.6.x)
Al Majmoua currently handles all repayments of loans by clients by having clients deposit their repayments directly at a bank, and then Al Majmoua is able to download online a file of these recorded transactions to import their MIS. They need the ability to do this in Mifos as well. See related Business requirements for more detail.
| Priority | User Story | Section in FR |
|---|---|---|
| 1 | As a user (accountant) at the HO, I want to be able to import a XLS of bank transactions from Audi Bank into Mifos so that all details for our clients' payments are accurately recorded in Mifos | |
| 1 | As a loan officer at a BO, I want to be able to see the clients at branch have paid their loans in Mifos | |
| 2 | As a user (accountant) at the HO, I want to be able to import a XLS of bank transactions from any bank into Mifos so that all details for our clients' payments are accurately recorded in Mifos |
The following items will not be addressed in this release:
This feature is in the Admin section and will allow the User to import bank transactions
Actors
Preconditions
Basic Flow
Post-conditions
Alternative Flows
Validations
Actors
Preconditions
Basic Flow
Post-conditions
Validations
Alternative Flows
Post-conditions
Post-conditions
Post-conditions
Post-conditions
Actors
Preconditions
Basic Flow
Post-conditions
Alternative Flows
Actors
Preconditions
Basic Flow
Post-conditions
Validations
Alternative Flows
| Priority | Size | User Stories | Mingle card # |
|---|---|---|---|
| 1 | X-Small | As a User, I can give permission to import bank transactions. | |
| 1 | Small | As a User, I can click on Import Bank Transactions and see options to import my file (Audi Bank). | |
| 1 | Small | As a User, I can confirm that I want to import the data into Mifos. | |
| 1 | Medium | Populate all data from file import in Mifos | |
| 2 | Medium | As a User, I can click on Import Bank Transactions and see options to import my file (generic) |
| FR# | Pri | Description | Comments / Mockups |
|---|---|---|---|
| 1.1 | P1 | Add new permission "Can import transactions" under the Bulk subsection in Permissions. The ADMIN role should by default have this permission checked. | |
| 1.2 | P1 | Assumption is the only check when the user imports transactions is if they have this permission checked in their role. There is no checking of their data scope and hierarchy. Ie: If the user is a Loan Officer in BO1, and has this permission checked in their role, then they are allowed to import any bank file, and there is no check that the data they are importing is only for their branch office. | |
| 1.3 | P2 | If one day we implement importing transactions per branch, then permission should also check for data scope. Ie, can only import data for a particular branch. |
| FR# | Pri | Description | Comments / Mockups |
|---|---|---|---|
| 2.1 | P1 | Add Manage Imports section with Import Transactions link in Admin section | |
| 2.2 | P1 |
New Import Data Transactions Screen with following fields: * Import format (dropdown) * Select import file (browse for select file) |
|
| 2.3 | P1 | Import format Field will have two options: Audi Bank (tab delimited) and Audi Bank Excel 97 formats | |
| 2.4 | P1 | Screen has buttons Continue and Cancel. Clicking on Continue imports the file selected and Mifos does validations and brings User to Review & Submit screen. Clicking on Cancel returns User to Admin screen. | |
| 2.5 | P1 |
If there is no import plugin for the MFI, then the Import Format options will be blank and if the User tries to import a file and Continue, the following error message will be displayed at the top. Also if the User does not select a plugin even if there are options then the following error message will be displayed. Please select the import type. |
|
| 2.6 | P1 |
If there is no Mode of Payment configured in Mifos to be the same as the first cell of that file (in this case, should always be Bank Audi sal), then an error message will be thrown on the Import screen: No payment type found named <bank> where <bank> is the first cell of that file. |
| FR# | Pri | Description | Comments / Mockups |
|---|---|---|---|
| 3.1 | P1 | Audi Bank import file is currently in Excel. Al Majmoua will save these as a tab-delimited file first before importing into Mifos. | |
| 3.2 | P1 | Audi Bank import file first few lines contain description of file. These are to be ignored. Only data after row of column headings will be imported. | |
| 3.3 | P1 | Import file will have columns in below table | |
| 3.4 | P1 | There will be bare basic error checking - to successfully import the data. | |
| 3.5 | P1 |
If a row with C (for Credit in D/C column) contains a cell that's missing a required field, Mifos displays an error message for each row this occurs. Row <#> is missing data. where the row # is the original row # of the import file. |
|
| 3.6 | P1 |
If any value under Trans.Date column is not in format of YYYY/MM/DD if User is using TSV importer, then Mifos displays an error message for each row this occurs. Transaction date value in Row <#> does not follow expected format (YYYY/MM/DD). where the row # is the original row # of the import file. No error message will be thrown to validate date format when using Excel importer since the importer will check for correct date format automatically. |
|
| 3.7 | P1 |
If any value under the Serial column is not numeric (ie text or special character) then Mifos displays an error message for each row this occurs. Serial value in Row <#> does not follow expected format. where the row # is the original row # of the import file. |
|
| 3.8 | P1 |
If any value under the Description column does not follow the format PMTMAJ<2 letter code><5 digit loan id for external id or 15 digit loan id for Mifos loan id> then Mifos displays an error message for each row this occurs. Mifos should throw an error message when:
|
|
| 3.9 | P1 |
Check if the same file name has been imported. If so, then throw an error message and reject the whole import. Same file name has been imported. Please import a different file. |
|
| 3.10 | P1 |
After clicking on Continue, Mifos will display the Review & Submit screen with the following: Review the information below. Click Submit if you want to continue with import or click Edit to make changes. Click Cancel to return to Admin page without submitting information. Import information Import file name: <name of file> Import Status: <#> rows contained no errors and will be imported. where <#> is the number of valid rows being imported. See mockup. |
|
| 3.11 | P1 |
If any error messages apply, then Mifos adds the messages line by line. The following rows contained errors and will not be imported:
|
|
| 3.12 | P1 |
User can then either
|
|
| 3.13 | P1 | If User clicks on Submit, Mifos imports the file and displays confirmation screen - see mockup -> | |
| 3.14 | P1 | There is no option to revert a file upload once it has been submitted. | |
| 3.15 | P1 | There is no checking of duplicate rows (see 3.9) | |
| 3.16 | P1 | Currency of values imported is directly inherited from the loan product that the loan account is mapped to. | |
| 3.17 | P2 |
If there are no rows found with import data, the following error message should be thrown: No rows found with import data. |
| Column Name | Required | Description | Comments | Validations | Range | Example | Maps to Mifos |
|---|---|---|---|---|---|---|---|
| Trans.Date | Yes | Payment date | Validate date is in range (see above) | YYYY/MM/DD (for tab-delimited files) | 2009/09/01 | Transaction Date | |
| Serial | Yes | reference number for the transaction | Only validate value is numeric (see above) | 1234567 | Serial Number (internal field in DB) | ||
| Value Date | No | Ignore this column | |||||
| Reference | No | Ignore this column | |||||
| D/C | Yes | Debit or Credit | Only import rows with C | No validation - only import rows with C | D or C | C | None |
| Amount | Yes | transaction amount | can be in USD or LBP, currency is not indicated | Only validate amount is a number | numeric number | 2577 | Transaction amount |
| Balance | No | ignore | Ignore this column | ||||
| Description | Yes | contains the loan id |
Only import rows with A, Z, or C in the 2nd letter of <two-letter-code> Need to extract the loan id from this row loan id is 5 digits or 15 digits |
Only validate if the loan id can be extracted for rows with A, Z, or C - so if format is incorrect and loan id cannot be extracted, display error message (see above) | PMTMAJ <two-letter-code><5 digit external loan id or 15 digit mifos loan id><space><two-digit LA code> <client name> |
PMTMAJ EC12345 82 Joe Smith PMTMAJ EC1234567890123456 82 Joe Smith |
External ID |
| FR# | Pri | Description | Comments / Mockups |
|---|---|---|---|
| 4.1 | P1 | Assumption: All transaction detail is for loan repayments (loan fees, interest, principal). There is no data in file for loan disbursals, savings withdrawals or deposits, client, group or center fees, or client attendance. | |
| 4.2 | P1 | Trans.Date is actual repayment date recorded | |
| 4.3 | P1 | Amount that is being paid - pre-payments and partial payments are allowed. Amount in file is applied in the following order - Penalties, Fees, Interest, Principal. | |
| 4.4 | P1 | Trans. Date cannot be after today in Mifos | |
| 4.5 | P1 | Mode of Payment must be configured in Mifos to have Bank Audi sal, which will be the mode of payment used for all transactions in that import. | |
| 4.6 | P1 | If there is an overpayment, Mifos should thrown an error. |
LSIM
| Does the user need to be in a particular user hierarchy to use this feature? | No |
| Does the office hierarchy affect use of this feature? | No |
| Are you using any existing permissions to control this feature? | No |
| Are you adding any new permissions or changing existing permission to control this feature? | Yes - adding new permission Can import bank transactions |
| Are you using any existing activities to control this feature? | No |
| Are you adding any new activities or changing existing activities to control this feature? | No |
| Are there any special considerations for upgrade scenarios? What will be the default value for new permissions? | No special considerations. Default value is checked in ADMIN role and unchecked for all other roles. |
| What will be the default values for default roles in a new installation? |
| Does this feature affect Bulk Loan Creation? How? | No |
| Does this feature affect Collection Sheet Entry? How? | No |
| Does this feature affect Redo Loans? | No |
| Does this feature affect Undo Loans? | No |
| Will this feature support users localizing data that they enter? | |
| Does this feature involve any date/time related data, and if so how should conversions be handled? | |
| Is there currency or other numeric data ? If so does it require any special handling or validation? |
| Do changes to the data that is collected or stored by the new feature have to be fully logged by the system? | Yes |
| Does the administrator configuring the system need the ability to turn on or off logging for this feature? | No |
| Is the feature currently logged but the structure of the logged records changing? | No |
Provide any relevant information about reporting requirements for the new features and answer the questions below, providing detail to explain any particular area when necessary.
| Does the feature affect any existing reports? | No |
| Does the feature require adding any new reports? | No |
| Will the feature be a high use-case scenario? | No |
| Will the feature have potential for high concurrency? | No |
| Does the feature include complex UI or data gathering logic that will be used by a significant portion of the user base? | No |
| Does the feature contain risks of database connection timeout or ASP page timeout? | |
| Will the feature contain any bulk insert/update/delete transactions? | |
| Will the feature contain any caching mechanisms or cache refreshing mechanisms? | Unclear |
| Could the feature result in a large amount of data being sent to the client or between the database and web server? | Yes |
| Would users on a low bandwidth connection likely face issues with a part of this feature? | Depends on size of file |
| Does the feature affect existing batch jobs or require adding any new batch jobs? | Unclear |
| Will the feature include demo data? | No |
| Does the feature require any data to be gathered at setup runtime? | No |
| Is there any data conversion that needs to be done as part of an upgrade? | |
| Will customers lose data or will the way existing data is stored change significantly? | No |
| Will another feature, workflow or portion of the data model be deprecated as a result of this new feature? | No |
| Will existing role permissions be changed or impacted by this feature? If so provide details in the security section. | ADMIN role should be updated to have this permission checked. |
| Will existing customers need to learn a new UI process or change the way they use the system as a result of this new feature? | No |
| If different user groups are using the same database, are there concerns over the sharing of data related to the feature? | |
| Are there expected to be performance related issues with having many customers sharing the same hardware in support of this feature? |
| Does this feature require changes to configuration files? | No |
| If so, is this feature enabled or disabled by default? | N/A |
can we get the bank to only put loan id in the description field? No
| Audi Bank | Generic Import | ||
|---|---|---|---|
| Pros | Cons | Pros | Cons |
| Faster | Restricts us to adding one bank at a time in the future | Can accommodate all 5 of Al Majmoua's banks | Will take longer to implement |
| Date | Name | Role | Status |
| PM | |||
| Dev | |||
| QA |
When a savings account is in Approved status, the following types of transactions can be made to the account:
Each of the transaction entries described here is made against the correct GL Code, according to the chart of accounts defined for the HO. The transactions are not included in the change logs.
For mandatory savings accounts, the total due, including amounts not paid in past meetings, and the date, are displayed on the account details page. If the mandatory deposits are specified as per group member, then deposits made against Non-specified do not reduce the amounts to be deposited by each group member. This is applicable to all center savings accounts as well.
For voluntary savings accounts, a recommended amount is displayed on the account details page.
The user specifies the following when making a deposit/withdrawal:
For mandatory accounts, the amount deposited can be less than or equal to or greater than the mandatory deposit amount, with the following implications:
The system records the date of transaction and the username. The user previews and saves the information. The system performs basic error checking and records the transaction date and the user name and records the transaction and updates the savings account balance.
Note : Even though the current account balance is shown as one value (sum of all debits minus all credits), the system can detect if, for example, an adjustment is made, whether it was a withdrawal or a reduction of interest earned .[correct?]
To rectify errors/mismatches, users with appropriate permissions can modify or nullify the amount last paid. The system then reverses the last entry (withdrawal or deposit) and creates another transaction for the new deposit. The corresponding financial transactions entries (DR/CR) are made.
For mandatory accounts:
For voluntary accounts:
For group/center savings accounts, if the last transaction is nullified, it is adjusted against the client who made the transaction.
Bulk entry. For center savings accounts, there can be multiple deposits and/or withdrawals. For adjustments, the system picks up the amount under the non-specified option of the center account as the last transaction. If this is empty, the system allows an adjustment on the transaction made for the last client. A similar rule applies to group savings accounts.
More on interest posting and calculations here
This section records all amounts that were deducted or added to the account.
The details recorded are:
Users can search for clients, groups, and centers in Mifos by name and by ID, and they can search for loans and savings account by account number. Search fields are displayed on both the Home tab and the Clients & Accounts tab.
The system performs a name search first and then an ID search on the user entry. Search results show the total matches within the user’s data scope, starting with the user-specified keyword. It displays 20 results per page, and allows the user to navigate between the pages.
Names: Users can search for any client, group, and center names and the system returns matches within the user’s data scope. For example, a search for John results in all client, group, and center names that start with john (like <value>%) and belong to a branch within the user’s data scope.
The system searches a client’s first, second last and last name, but not middle name.
If a user searches for a client name consisting of multiple words, the system treats these as a single word. For example, if a user searches for an or anne m, then anne marie will be one of the results. But if a user searches for marie, then anne marie will not be a search result. Results are displayed by client type, with client names followed by groups, followed by centers. Each type is sorted, with clients sorted by last name and then first name only.
IDs: Users can search by client ID, client's government ID, group ID, center ID, and loan and savings account numbers. When using this search method, the ID or number entered must be exact, otherwise no results are displayed.
Search results for a client/group/center ID or name include links to the following:
Here is a sample:

Search results performed on loan/savings account system ID include a link to the account details page of the searched ID.
To create a new client account in Mifos, the user begins by searching for the group to which the client will belong. The results show the groups that match the search criteria, together with the branch/center to which each group belongs.

The user then clicks the appropriate group name to begin entering the client information. A user also searches for groups when transferring a client from one group to another.
To create a new group record in Mifos, the user begins by searching for the center to which the group will belong. The results show the centers that match the search criteria, together with the branches to which each center belongs. The search results are sorted first by branch name and then by center name. [what about area offices?]

The user then clicks the appropriate center name to begin entering the group information. A user also searches for centers when transferring a group to another center in the same or a different branch.
On the Clients & Accounts tab, under Select a Branch Office, users can navigate as follows:
If a branch has no loan officers, the results display “No loan officers available.” If a loan officer has no centers assigned to him/her (or groups if the center hierarchy doesn’t exist) the results display “No centers/groups available.”
In addition, on the details page of client, group, center, loan and savings accounts, users can navigate as follows.
|
Client |
Branch home page of the client |
|
Group |
Branch home page of the group |
|
Center |
Branch home page of the center |
|
Loan account |
Branch home page of the account owner |
|
Savings details |
Branch home page of the account owner |
|
Client changes |
Branch home page of the client |
last modified 2010-05-14 07:36
MFIs can use BIRT, the same reporting tool used to create reports at the HO level, to create a set of administrative documents that can be attached to specific loan and savings accounts and printed as needed. The administrative documents that ship with Mifos v1.1 include a voucher, payment book, disbursal receipt, and payment receipt. [more info about each of these?]
Once an administrative document has been created, it can be uploaded to Mifos through the Upload admin documents link on the Admin tab. The user enters a document title, account type (either loan or savings), and the states in which the document can be printed. He then uploads the document template, previews it, and clicks Submit, to make the report available in Mifos.
Users can click the View admin documents link on the Admin tab to see a list of available administrative documents. From this page, the user can edit a document definition or download a document and modify the layout or data fields and then upload it to Mifos again.
Available administrative documents are displayed on the loans and savings account details page, for every loan or savings account that meets that status requirements specified in the document definition. When a user clicks on a document link, the document is displayed with the data pertaining to that account. The user can then print the document, or the user can click Cancel to return to the account details page.
There is an open issue where admin documents are not working with Savings Accounts. Issue MIFOS-1977
last modified 2009-01-20 15:37
Surveys provide a means for collecting information about a user or a group that can then be used, for example, when assessing loan applications, poverty levels, and for measuring impact and creating exit and collateral surveys. MFIs first create a common set of survey questions. Users can then choose from these questions when defining surveys. Surveys can be attached to clients, groups, centers, loan accounts, and savings accounts. The same survey can be attached multiple times to the same entity to track historical changes over time.
Survey questions are defined from the Define questions link on the Admin tab. They are defined at the HO level; AO’s and BO’s cannot define new questions.
For each question, the user specifies the question name, the question, the question type and the possible answers, as described in the following table.
| S No. | Attribute Name | Data Type | Range | Description |
|---|---|---|---|---|
|
|
Short Name | Text (50) | 50 characters | Short name of the question ie 'Annual Family Income' instead of 'what is your annual family income'. Duplicates will be checked using this field. This field will also preface the full question whenever Questions are displayed |
|
|
Question | Text (4000) | 4000 characters | Question (as it will appear in the surveys) will be added here. Number of characters for the question '/' can be max 4000 but only 500 characters will be displayed in the question list. |
|
|
Answer Type and Answers | See 3a - 3e | ||
| 3a. | Single Select | Number of options; Text fields = number of options | Number of options can be maximum 20. These answers will have radio buttons. | |
| 3b. | Number | Minimum Value allowed; Maximum Value allowed | Specifies the range of allowable answers that a question can have. | |
| 3c. | Date | None | None | Definition of date will be inherited from MFI. If marked mandatory; at least option must be selected. |
| 3d. | Multi Select | Number of options; Text fields = number of options | Number of options can be maximum 20. These answers will have check boxes. | |
| 3e. | Free Text | Number of characters (1-4000 characters) | User can define what size text field s/he wants to allow so some response fields can be a single line, others a large box. | |
|
|
State | Active;Inactive | Questions can be marked as inactive if they are not part of any survey. Inactive questions will not be visible in the Questions list displayed when creating a survey; however they will still be displayed in the Question Bank. |
The user enters the possible answer choices one at a time. After each entry, he clicks Add, and the answer is added to the choice list. Once the answer choices are defined, he clicks Add Question, and the question is displayed as a preview. When the user has finished adding questions, he clicks Submit. The questions are added to the question bank and are available for use in surveys. The user is returned to the Admin tab.
Note the following:
[how are questions flagged for PPI?]
Questions in the question bank can be viewed by clicking the View question bank link on the Admin tab.
A new survey is defined by clicking the Define new survey link on the Admin tab. The user names the survey, specifies who the survey applies to, and adds questions to the survey, which have already been defined in the question bank.
The fields are defined in the following attributes table.
| S No. | Attribute Name | Data Type | Range | Description |
|---|---|---|---|---|
|
|
Survey Name | Duplicate survey names will be allowed | ||
|
|
Survey Type | Client; Group; Center; Loan; Savings; All | Specifies who the survey applies to... Client/Group/Center together are grouped as customers when browsing surveys; Loan/Savings are grouped as Accounts | |
|
|
Creation Date | |||
|
|
Add Questions to Survey | Search Results or All Questions | Questions will be added to the survey in the order of selection. Reordering of questions in survey will not be allowed | |
|
|
Mandatory | Specify which questions have to be marked as Mandatory in the survey. There is currently an issue in Mifos (Issue 2446) where if you set a question as Mandatory, you cannot unset it. Workaround is to create a new question and replace it in the survey. | ||
|
|
State | Active;Inactive | Surveys can be made inactive if they are not attached to any record |
The questions are added to the survey one at a time, by selecting a question displayed in the list box and clicking the button. The question name and the question itself are then displayed in the bottom portion of the screen. The user can mark the question as mandatory. He can click Delete to remove the question from the survey.
When the list of questions is complete, the user clicks the Preview button to view the survey. He can click Edit Survey Information at this point to edit the list of selected questions. When he clicks Submit, the survey becomes active and available for use. A confirmation page is displayed, with a View survey details now link and a Define a new survey link.
Once submitted, a survey cannot be edited [true?]. Surveys can be deleted only if they have not been attached to any record. However, they can be hidden, so that they cannot be attached to any new survey. Multiple instances of the same survey in the same state are allowed.
Existing surveys can be viewed from the View surveys link on the Admin tab or by clicking the View all surveys link on an account details page. The system displays all existing surveys grouped by who the survey applies to (group, center, client, etc). Users can view a specific survey by clicking its link on this page. On the survey details page, users can click the Printer version link to display a printer-friendly version of the survey and the Edit survey link, to edit the survey.
Surveys are completed and attached to an account (client, group, center, loan, or savings) from the account details page. When a user clicks the Attach a survey link, in the Surveys box, Mifos displays a Select a survey box with a list of surveys applicable to the account type. The user selects a survey and enters the date of the survey and the officer who conducted the survey and then completes the questions in the survey. When completed, the user previews the information entered. He can click Clear All to re-enter information or Submit to save the survey results.
The system validates that required questions are answered and displays the survey name in the Surveys box on the account details page. Multiple instances of the survey can be attached to the record.
The information in completed surveys can be used to generate custom reports.
The Progress out of Poverty Index Survey is a country-specific survey that is used to determine the likelihood of a client belonging to a specific poverty level. An MFI uses this information on a portfolio level to calculate overall poverty rates. At the client level, the information is used to determine which products to offer a client or to track loan repayments/retention/recruitment rates of clients falling into each of the poverty buckets.
The surveys for each country include 10 questions. For each question, points are associated with each possible answer. The total number of points for a completed survey is called the poverty index score. For each country, a poverty likelihood chart is defined that maps the poverty index score to a percentage indicating the likelihood that a client is non-poor, at-risk, poor, or very poor. For example, in India, if a client receives a poverty index score of 52, that means that the client has a 2.5% change of being very poor, a 10.8% chance of being poor, and a 86.7% change of being non-poor.
An MFI can define the poverty index score range for each poverty level from the Configure PPI Settings link on the Admin tab. This is optional; an MFI can use the PPI survey but choose not to have its score impact their clients’ poverty status.
The user selects a country and sets the status to Active or Inactive. For each poverty status level, the user defines a point range, and then clicks Preview. On the Preview page, the user clicks Submit.
PPI settings can be viewed and edited from the View PPI settings link on the Admin tab.
Once a Poverty Index Survey has been defined for an MFI, a link to it appears in the Survey box on every client account details page.
Because Poverty Index Surveys and their corresponding Poverty Likelihood Charts change so infrequently, there is no user interface for entering this information and must be implemented directly into Mifos. Any changes to the survey and the chart will impact only future surveys and scores.
PPI surveys can be attached to client accounts only. To complete a PPI Survey for a client, the user clicks the Attach a survey link on the client details page and selects the survey from the drop-down list. The user enters the date the survey data was collected. Surveys can be back-dated with no restriction. The user then completes the survey questions and clicks Preview. The system checks to ensure all mandatory questions are answered. The total score is calculated, which can be between 0 and 100. The Status field is automatically calculated by Mifos, based on the total score and the defined poverty levels. The user clicks Submit, or can click Clear All to re-enter the answers.
If poverty levels have been configured, then a poverty field is attached to the client details page under a new section called Poverty measurement information, which has the following fields: Poverty measurement tool; Poverty band.
At any time, these survey results can be edited or deleted. If edits change the poverty status, this will automatically be reflected in the Poverty field on the details page. If a survey is deleted, the associated poverty status and scores are also removed and the Poverty field reverts back to the previous score.
last modified 2009-08-11 15:28
Once Mifos is being used to manage accounts, handle scheduling, and collect repayments, the data being generated can be viewed in reports:
By default, Mifos provides the following reports, each of which you can access from the Reports tab:
You generate reports from the Reports tab. To change how the reports appear on the Reports tab or to edit the appearance of the reports themselves (by editing or creating your own reports templates), use the View report templates and Upload report templates links under Manage Reports on the Admin tab.
Collection Sheet Reports are used by Loan Officers for their meetings with clients. The reports provide Loan Officers with the amounts that need to be collected from each client, including loan repayments, fees, penalties, recommended savings amounts, and any other dues that need to be collected. The reports also provide the amount of money that should be disbursed to each client at the meeting.
To generate a Collection Sheet Report:
To create your own Collection Sheet Report template:
The Branch Cash Confirmation Report lists a branch's daily cash inflows and outflows and is used to tally the day's accounting books. This report is typically used by management as well as accounting departments.
To generate a Branch Cash Confirmation Report:
To create your own Branch Cash Confirmation Report template:
Note: Currently this report is hardcoded to extract data from a database named 'mifos'. If you have changed the name of the Mifos database, the report needs to be updated with the correct database.
The Branch Progress Report consists of the summary statistics, staff performance metrics and loan details of the office for which the report is being generated. This report is typically used by management to monitor office progress and aid decision making. Because the report can be generated for any date in the past, comparative studies and trend analysis are possible.
Mockup/Spec: Branch Progress Report Mockup
Sample PDF: Sample Branch Progress Report
To generate a Branch Progress Report:
To create your own Branch Progress Report template:
To customize the standard reports provided by default with Mifos or to create your own reports, you will need to download and install version 2.1.2 of the BIRT RCP (Rich Client Platform) Report Designer from Eclipse. The RCP version is required because it produces reports in the version (3.2.6) supported by the BIRT Report Viewer provided with Mifos. It also simplifies the Eclipse user interface so that only essential screens and options are presented.
To install BIRT:
Designing your own report starts with planning it on paper or in a spreadsheet application like Excel. See the following sample: report designed in Excel.
If you are creating your own report, the data in the report can be extracted one of two ways:
For a technical overview on how BIRT interacts with Mifos, see Current Reports Architecture.
To create a custom report that uses SQL to extract data, use the procedure below. For help with steps you perform in BIRT, see the following in the BIRT RCP Designer online help: BIRT Report Developer Guide > Field Guide to BIRT > Learning the Basics > Tutorial 1: Building a Simple Listing Report.
If com.mysql.jdbc.Driver isn't listed, download it from http://dev.mysql.com/downloads/connector/j/5.0.html and place the file mysql-connector-java-5.1.5.bin.jar in ...\mifos\build\src_pkg\WEB-INF\platform\plugins\ where ... is the path to your Mifos working copy. For example, on Windows: C:\subversion\projects\mifos-trunk\mifos\build\src_pkg\WEB-INF\platform\plugins, on Mac OS X or GNU/Linux: /home/user/svn/mifos-trunk/mifos/build/src_pkg/WEB-INF/platform/plugins/.
As you write your query, keep the following in mind:
An input parameter is a value entered by the user. A series of input parameters, called cascading parameters, can dynamically filter, or constrain, the next option's possible values. The Collection Sheet Report uses cascading paramters.
For steps on how to create input parameters (or in BIRT terminology, data-set parameters) see the following section in the BIRT RCP Designer online help: BIRT Report Developer Guide > Field Guide to BIRT > Enabling the User to Filter Data.
The Administrative Documents feature in Mifos allows you to generate a receipt for an account -- without having to use the Reports tab. You can also use this feature to generate other administrative documents specific to an account, such as vouchers and passbooks.
To create a receipt template:
- userId
- account_id
- reportName
When you click an account's receipt link, the system automatically passes in the account ID of the loan account and generates a receipt, based on the BIRT template design you uploaded.
To add labels in another language:
Tips for populating the properties file(s):
To upload and view your report:
To edit your report:
Mifos allows you to control two things related to report security:
You handle the first by associating report-related actions with specific user roles. You handle the second by incorporating one or more parameters in your report that are based on organizational hierarchy.
To manage the permissions related to a report:
If a report has parameters based on organizational hierarchy, a user's access to that report is affected by her position in the organization's hierarchy. For example, if a user is assigned to the Head Office, which is the top of the hierarchy, she can see all report data. If a user is assigned to Branch A, she can only see data for Branch A. If a user is a loan officer, she can only see data for her clients.
The following error indicates that you are using a BIRT extension of Eclipse, instead of the BIRT RCP:
ERROR [STDERR] Caused by: Error.DesignFileException.INVALID_XML - 1 errors found! 1.) (line = 0, tag = null) org.eclipse.birt.report.model.parser.DesignParserException (code = Error.DesignParserException.UNSUPPORTED_VERSION, message : The report file of version "3.2.14" is not supported.)
To resolve this error, install the BIRT RCP.
last modified 2010-06-13 22:38
With Mifos 2.0.x and above, Mifos supports reports in Pentaho.
This report shows a comparison of 2 months specified by the user of the MFI's metrics, arrears, loan balances, etc. This report can be run down to the branch office level as well. This report is useful in providing information on progress at the MFI - for example, if they are expanding their outreach at a certain pace, or if their PAR has increased or decreased. This report can also help the MFI see if certain branch offices are doing better or worse than others.
PDF Sample - MFI Progress Report (.pdf)
This report allows the MFI to see detailed metrics per Loan Officer, such as the branch offices they have been at, the number of centers they manage, and arrears and loan portfolio information. This report should be used to assess a LO's performance, and also see key statistics about their management.
PDF Sample - Loan Officer Detailed Report (.pdf)
This report lists all clients that have been changed to a Closed status in Mifos for a particular branch office or group level, their closed status, reason, notes, and # of loans they had.
PDF Sample: Client Exit (.pdf)
This report is an export in CSV format that lists all clients with PPI data, details about client, and their PPI scores and likelihoods relevant for their country.
.CSV Sample - PPI Data Dump (.csv)
This report allows the MFI to compare Loan Officers by certain measures such as arrears amounts, PAR, etc. This report helps the MFI assess Loan Officer's performance. Data shown in this report is cumulative as of end date of report.
PDF Sample - Loan Officer Performance Summary (cumulative) (.pdf)
This report allows the MFI to compare Loan Officers by certain measures such as arrears amounts, PAR, etc. This report helps the MFI assess Loan Officer's performance. Data shown in this report is for during the period stated.
PDF Sample - Loan Officer Performance Summary (during period) (.pdf)
This report shows outstanding balances of loans or savings accounts based on filters selected, such as office, loan officer, product, and account status, as of a certain date. It is also possible to group the accounts by group, LO, or branch office, and get totals for each.
PDF Sample: Balance Outstanding (.pdf)
| Field | Definition |
|---|---|
| Account ID | Short Mifos ID of Account |
| Client Name | Name of Client the Account belongs to |
| Balance Amount | Balance of Savings Account as of the date the report was run |
| Saving Status | Account Status |
| Date of Opening | Date the Account became Active |
| Gender | Gender of Client the Account belongs to |
| Group Name | Name of Group the Client belongs to |
| Loan Officer | Loan Officer as of date |
| Field | Definition |
|---|---|
| Account ID | Short Mifos ID of Account |
| Client Name | Name of Client the Account belongs to |
| Loan Amount | Amount of Loan Disbursed |
| Balance Amount | Outstanding Balance of Loan Account as of the date the report was run |
| Loan Status | Account Status |
| Disbursal Date | Date the Account became Active |
| Gender | Gender of Client the Account belongs to |
| Group Name | Name of Group the Client belongs to |
| Loan Officer | Loan Officer as of date |
| Source of Funds | Source of Funds for Loan Account |
This report shows balance outstanding and other figures per source of funds in Mifos. This report helps the MFI give figures to their Funders on loans sourced by that fund.
PDF Sample: Balance Outstanding by Source of Funds (.pdf)
This report shows expected in and out cash flow for branch per day for the period specified. This report includes Principal, Interest, Loan Fees, and any Client, Group, or Center Fees (under Client Fees). This report does not include savings.
PDF Sample: Branch Expected Cash Flow (.pdf)
This collection sheet is optimized for centers, and for MFIs that collect only at meetings. MFIs from India would typically use this collection sheet.
PDF Sample: Center Collection Sheet (.pdf)
This collection sheet report is optimized for groups and also for MFI's that may collect between meetings, through a system like MPESA (mobile payments) where payments are imported into Mifos before the meeting occurs. Collected columns are populated with prepayments for loans. This report would typically be used in regions like Kenya where the center model is not used.
PDF Sample - Group Collection Sheet (MPESA) (.pdf)
This report shows what was due and collected for loan repayments for one or more branches. This report should be run frequently to verify amounts that were collected. This report can also help the MFI determine if collections were under or over what was expected for the branch.
PDF Sample: Due vs. Collected by Branch (.pdf)
| Field | Definition |
|---|---|
| Principal Due | Principal due for that branch's loan repayments on the repayment date specified - does not take into account prepayments or arrears |
| Interest Due | Interest due for that branch's loan repayments on the repayment date specified - does not take into account prepayments or arrears |
| Principal Arrears Due | Principal that was overdue for that branch's loan repayments on the repayment date specified |
| Interest Arrears Due | Interest that was overdue for that branch's loan repayments on the repayment date specified |
| Principal Collected | Principal that was paid (both due and overdue) for that branch's loan repayments on the repayment date specified |
| Interest Collected | Interest that was paid (both due and overdue) for that branch's loan repayments on the repayment date specified |
This is the same report as Due vs Collected by Branch, except it can be filtered further by Center. This report helps to see what a specific center collected versus what was due.
PDF Sample: Due vs. Collected by Center (.pdf)
This is the same report as Due vs Collected by Branch, except it can be filtered by Loan Officer. This report helps to see what a specific Loan Officer collected versus what was due.
PDF Sample - Due vs. Collected by Loan Officer (.pdf)
This report shows loan accounts by source of funds, and information about each of them such as Loan Disbursal Dates, # of Installments, etc. This report can help the MFI see details of loan accounts for a specific source of funds. This report can be run to drill down into any problem loan accounts associated with a source of fund.
PDF Sample - Funds Movement (.pdf)
This report displays metrics by loan product. This report helps to differentiate each product the MFI offers, and helps the MFI assess if any changes should be made to their loan products based on the metrics.
PDF Sample - Loan Classification by Product Report (.pdf)
| Filter | Description |
|---|---|
| Date Range | Period to run report for |
| Office | Head Office down to Branch Office selected |
| Field | Definition |
|---|---|
| Product Name | Name of Loan Product |
| # of Loans Disbursed (During Period) | Number of Loans disbursed during date period specified |
| Amount Disbursed (During Period) | Amount of Loans disbursed during date period specified |
| # of Loans Disbursed (Cumulative) | Number of Loans disbursed cumulative by end of period for that loan product |
| Amount Disbursed (Cumulative) | Amount of Loans disbursed cumulative by end of period for that loan product |
| Amount Outstanding (End of Period) | Principal Outstanding at end of period for that loan product |
| Arrears (End of Period) | Principal in Arrears at end of period for that loan product |
| PAR (End of Period) | Portfolio at Risk at end of period for that loan product |
| # of Active Loans (End of Period) | Number of Active Loans (Active in Good or Bad Standing Status) at end of period for that loan product |
| % of Portfolio Amount (End of Period) | Principal outstanding at end of period for this loan product divided by total principal outstanding * 100 |
This report shows all loans that are in pending approval status for a particular period, and also by loan officer and loan product.
PDF Sample - Loans Pending Approval (.pdf)
This report shows all loans that have been approved, but not yet disbursed, for a particular period, and also by loan officer and loan product.
Loans To Be Disbursed (.pdf)
This report can be run at the end of day to display all transactions made in Mifos that day. This report shows each detailed transaction. This report is useful for reconciliation with accounting.
PDF Sample - Mifos Transactions - Detailed Report (.pdf)
This report is similar to the Mifos Transactions - Detailed report, except it groups transactions by Receipt ID, and shows totals for each group of transactions by Receipt ID. This report is useful if reconciliation at the MFI is by Receipt ID.
PDF Sample - Mifos Transactions - Summary (.pdf)
Question Groups provide a means for collecting information about a user or a group that can then be used, for example, when assessing loan applications, poverty levels, and for measuring impact and creating exit and collateral surveys. MFIs create a common set of questions. Users can then choose from these questions when defining new question groups. Question Groups can be attached to entities or workflows. The same question group can be attached multiple times to the same entity to track historical changes over time. Question Groups replace both Additional Field and Survey functionality in Mifos 1.6.x and lower.
Question Group questions are defined from the Define questions link on the Admin tab, or during creation of a Question Group. They are defined at the Head Office level.
For each question, the user specifies the question title, the question, the question type and the possible answers, as described in the following table.
| S No. | Attribute Name | Data Type | Range | Description |
|---|---|---|---|---|
| 1. | Question | Text (x) | x characters | Question (as it will appear in the surveys) will be added here. Number of characters for the question can be max x characters. |
|
|
Answer Type and Answers | See 3a - 3f | ||
| 3a. | Single Select | Number of options; Text fields = number of options | If there are less than 7 options, answers will have radio buttons. If there are more, then the answers will be available in a dropdown. | |
| 3b. | Number | Minimum Value allowed; Maximum Value allowed | Specifies the range of allowable answers that a question can have. | |
| 3c. | Date | None | None | |
| 3d. | Multi Select | Number of options; Text fields = number of options | Infinite number of options | |
| 3e. | Free Text | Number of characters (1-4000 characters) | ||
| 3f. | Smart Select | Max 5 tags allowed, each 50 characters max. | ||
|
|
State | Active;Inactive | Questions can be marked as inactive. Inactive questions will not be visible in the Questions list displayed when creating a question group; however they will still be displayed in the Questions list. |
The user enters the possible answer choices one at a time. After each entry, he clicks Add, and the answer is added to the choice list. Once the answer choices are defined, he clicks Add Question, and the question is displayed as a preview. When the user has finished adding questions, he clicks Submit. The questions are added to the question bank and are available for use in question groups. The user is returned to the Admin tab.
Questions can be added from either Add Question in Admin, or during creation of a Question Group.
Any type of text can be entered as part of response for this type of question including special characters.
This answer type should be used for questions where you want the user to choose one choice or multiple choices for answers.
This answer type can be used for questions where you might have categories, and you may want the user to have see answer choices and their tags when entering in answers. For example, you may want to ask a client what their business activity is, and have categories of business activity. Answer choices could be entered as Cow Purchase, Pig Purchase, etc. A tag can be added to these answer choices as "Animal Husbandry". Then, when the Loan Officer is entering the answer for this client's business activity, they can enter Animal Husbandry to see the detailed choices.
A new question group is defined by clicking the Define new question group link on the Admin tab. The user names the question group, specifies where the question group applies to, and adds questions to the question group.
The fields are defined in the following attributes table.
| S No. | Attribute Name | Range | Description |
|---|---|---|---|
| 1 | Question Group Title | 50 in the UI, 200 in the database | Duplicate QG names will be allowed |
| 2 | Applies To | Create Client; View Client; Close Client; Create Group; View Group; Create Office; Create Personnel; Create Center; View Center; Create Savings; View Savings; Create Loan; View Loan; Disburse Loan; Approve Loan. | Specifies where the survey is applied. Can be applied to more than one entitiy or workflow. |
| 3 | Apply to all Loan Products? | Y/N | If the QG applies to Create Loan, check this box to have this QG applied to all existing loan products. |
| 4 | Is response editable? | Y/N | If this is checked, the responses to this QG can be edited by a user with the right permissions. Old responses will still be saved, but only the latest answer will be displayed. This pertains to the Create workflows. |
| 5 | Section Heading | 50 in the UI, 200 in the database | This is used to group questions into sections. Each section will have its own heading. This defaults to Misc. |
| 6 | Add Questions to the QG | Questions can be created on the fly or added from Question Bank. Questions are added to the bottom. Questions can be reordered in the QG. | |
| 7 | State | Active;Inactive | Question Groups are active by default when created. They can be marked as inactive when being edited. If it is marked inactive, then the QG will not be displayed in the entities or workflows it appiles to. |
Questions can be added to the QG from the Question Bank or creating new questions on the fly. The user can select multiple questions from the Question Bank to be added to the survey. The question name and the question itself are then displayed in the bottom portion of the screen. The user can also add a new question while creating the QG. The new question will be automatically added to the Question Bank. If a question has already been selected for the Question Group, it cannot be added again. The user can mark each question as mandatory. By default, each question added is mandatory. He can click Remove to remove the question from the survey. Questions can be reordered by clicking the arrows in the Order column. Whole sections can also be reordered by clicking the arrows.
Mifos 2.0 allows MFIs the feasibility of creating question groups using XMLs. As soon as the XMLs are saved in the folder in the format. The $MIFOS_CONF/uploads/questionGroups and $MIFOS_CONF points to the users’ Mifos configuration directory. The files are named as "PPISurvey<QuestionGroup_NAME>.xml" where [QuestionGroup_NAME] should be replaced with the question group name that the user wishes to activate. See Past Releases - PPI Surveys on location of these XMLs.
As a result of this feature being implemented in Mifos 2.0, existing additional fields and surveys are automatically migrated during the upgrade to 2.0. Please see Important Information regarding this before you upgrade.
The Progress out of Poverty Index Survey is a country-specific survey that is used to determine the likelihood of a client belonging to a specific poverty level. An MFI uses this information on a portfolio level to calculate overall poverty rates. At the client level, the information is used to determine which products to offer a client or to track loan repayments/retention/recruitment rates of clients falling into each of the poverty buckets. See Progress Out of Poverty website for more information.
The surveys for each country include 10 questions. For each question, points are associated with each possible answer. The total number of points for a completed survey is called the poverty index score. For each country, a poverty likelihood chart is defined that maps the poverty index score to a percentage indicating percentage likelihoods of poverty for the client.
PPI's are available in the Question Group format in Mifos. See Past Releases - PPI Surveys for information on location of these files and how to copy the relevant PPI QG for their MFI into the appropriate folder. In Mifos, under Activate Question Groups, the Administrator can choose to activate the PPI Survey for their country.
Once activated, the PPI QG is automatically created in Mifos, set as active, and applied to the Create Client workflow. The Mifos Administrator can navigate to View Question Groups to view the PPI QG and edit the workflows it applies to. Questions can be reordered but should NOT be edited. If they are edited, the PPI Scoring Tool will not work.
PPI's can be entered like other QG's. Mifos BI 1.0 includes a PPI Scoring and Likelihood Tool that scores the PPI's entered into Mifos, and provides a PPI Data Export that lists clients and their PPI data.
See PPI Functional Spec for more information on PPI in Mifos.
Financial calculations, batch jobs, and logs.
Mifos supports the following types of interest calculation; flat interest rate, declining balance, declining balance interest with equal principal installments, and declining balance with interest recalculation. Flat and declining balance types both result in Equal Monthly Installments (EMI). Declining balance interest with equal principal installments allow MFIs to calculate interest using equal principal installments, and simple declining balance formula to calculate the interest.
P = principal amount (initial amount)
r = annual rate of interest (as a decimal) Assumption: Number of decimals used for calculation will be the same as that specified by HO.
A = amount of money accumulated including interest
n = number of times the interest is compounded per years
Periodic intervals: daily, monthly, quarterly, semiannually, or annually (This can be number of days and number of weeks too.)
EMI Definition: EMI (Equated Monthly Installment) is the amount payable to the lending institution every month, till the loan is paid back in full. It consists of a portion of the interest as well as the principal.
Declining Balance Definition: Interest is computed at periodic intervals on the amount of the original principal that has not yet been repaid. Since the borrower only pays interest on that amount of original principal that has not yet been repaid, interest paid is smaller every period. However, to make sure that the borrower sets EMI, the formula is:
EMI formula:
EMI = i*P / [1- (1+i)^-n]
Where,
P = Loan amount
r = Rate of interest per year
n = Term of the loan in periods
l = Length of a period (fraction of a year, i.e., 1/12 = 1 month, 14/360 = bi-weekly.)
i = Interest rate per period (r*l)
Examples:
P=1000, r = 5/100, l = 6/12 n = 2, i = 0.025
EMI = 0.025 * 1000 / [1-(1+0.025)^-2]
EMI = $518.83
The way to apply payments is as follows:
Calculate interest in the principal due: If balance = $1000, and i = 0.025, interest is $25
Calculate the amount to principal which is the monthly payment minus the interest due: $518.83 - $25 = $493.83
Calculate the principal remaining, which is the previous principal remaining minus the amount applied to principal: $1000 - $493.83 = $506.17 (remaining balance)
Once next payment is received, repeat steps 1 to 3.
Note: Due to rounding of computed values, it could potentially be off by a maximum of N number of pennies after the full term of the loan. It will never be short if we round up, rather, principal could end up with a few more pennies.
Declining Balance Interest – Interest in Periodic Payments; Principal at the End (or Earlier)
Declining Balance Definition: Interest is computed at periodic intervals on the amount of original principal that have not yet been repaid. Since the borrower only pays interest on that amount of original principal that has not yet been repaid, interest paid is smaller every period.
For this interest type, the client only needs to pay per period the interest and the complete principal at the end of the loan cycle. Thus, per period the client pays the same interest amount, unless he or she pays part of the principal ahead. If so, the future periodic payments are less the interest amount.
Note:
Early payments of principal/interest will not be handled in version 1.0.
If loan is disbursed in between two meetings, interest installments are not EMIs.
Formula:
For one period interest calculation: interest = P * (r/n)
Where,
P = loan amount- Use the Principal Remaining (which at one point is equal to the initial amount).
r = rate of interest (annual/100)
n = term of the loan
Examples:
P=1000, r = 3% monthly, n = 4
Interest = 1000 *(3/100) = 30
Monthly payments of 30
If client pays 300 of principal, then next payment will be of:
Interest = 700 *(3/100) = 21
Definition: Flat interest refers to charging interest on the full original loan amount, rather than on the declining balance. For example, with group based loans, a common "interest rate" is "3% per month, flat, for four months". This means that a $100 principal amount lent is multiplied by 3%, and then by 4 months to come up with $12 in interest. Thus, $112 would be repaid over four months in equal installments.
This is the most common calculation used in Grameen Style MFIs (most MFIs). Also there is no incentive for repaying early, since customer still has to pay the total interest as was calculated at the start of the loan.
The use of "flat" interest rates is usually explained as facilitating understanding by poorly educated and illiterate clients. "Flat" interest is easier to calculate than “declining balance” interest. However, "flat" interest also disguises the "effective" interest rate (APR, or internal rate of return) to the loan. Based on how often the principal is collected (weekly, monthly or at the end of the term), and assuming there are no additional fees, the above loan has an APR of between 39% and 71%.
Formula: Interest = P * r/100 * n
P = loan amount- Initial amount
r = rate of interest
n = term of the loan
Examples:
P=100, r = 3/100 per month, n = 4
Interest = 100 *(3/100) * 4 = 12
Monthly payments of 112 / 4 = 28
Note: The above formula holds for loans disbursed in between two meetings also.
This feature allows MFIs to calculate interest using equal principal installments, and simple declining balance formula to calculate the interest. This means that the borrower pays equal installments of principal for the duration of the loan, and the interest is calculated on principal that has not been paid for the loan period.
Formula Interest = (P-Pp) * r * n
Where,
P = loan amount
Pp= Principal paid
r = rate of interest
n = term of loan
The following example illustrates this:
Principal = 15,000
Int. Rate = 25 %
No of payments = 25
Payment schedule (Every 2 weeks) = 14 days
Principal = 15,000/25 = 600
|
Payment Schedule |
|||
|
Installment |
Principal |
Interest |
Total |
|
1 |
600 |
(15,000 – 0)*0.25*14/365 = 143.83 |
743.83 |
|
2 |
600 |
(15000-600)*.25*14/365 = 140 |
740 |
|
3 |
600 |
(15,000 – 1200)*.25*14/365 = 132.32 |
732.32 |
|
Repeat |
|
|
|
The following additional logic is needed in the Loan Repayment and Interest Calculation:
This takes the Declining Balance interest rate type, but interest charged is updated based on early or late payments. See Declining Balance - Interest Recalculation FS for more information.
Interest is calculated on savings accounts in Mifos based on options set when creating the savings product. The administrator can set frequency of interest calculation and posting on each savings product to configure how often interest is posted to a savings account. The start date for interest calculation and posting, and the reference for the time period, is the start of the fiscal year. Interest is posted on the last day of the time period (as per Frequency for interest posting to accounts).
For one period interest calculation: A = P(1+r/n)
Where:
P = principal amount (initial amount)
r = annual rate of interest (as a decimal)
A = amount of money accumulated including interest
n = number of times the interest is compounded per year
Periodic intervals: can be set by number of days or months.
Average Balance:
The average balance is the average of all the daily balances for that interest calculation period.
A=P(1+(r/n))
A=1200(1+(.08/4))
TBD
See Savings Interest Calculation and Posting for more information.
| CurrencyRoundingMode | DigitsAfterDecimal | Annual Interest Rate | Minimum Balance |
|---|---|---|---|
| HALF_UP | 1 | <= 1% | <= 60 |
| 2 | <= 1% | <= 5 | |
| CEILING | 1 | ||
| 2 | |||
| FLOOR | 1 | ||
| 2 |
Batch jobs are a series of back-end jobs on a computer that are executed through predefined scripts. Mifos is configured to run a set of batch jobs nightly at 12 am. The server must be kept on at night for these processes to run.
Mifos users will be automatically logged out when batch jobs run, and no logins are permitted until the batch jobs complete.
Please see Managing Batch Jobs for information on how to configure and monitor these nightly jobs.
This job updates the status of the product to active on the start date and to inactive on end date. For more explanation of start/end dates of products, see Product Definitions.
Calculates interest and posts interest to savings accounts.
Generates the next year meeting schedule for savings accounts at the end of current year. Note that this same job also handles client accounts. See Meeting Schedule Change below for additional notes
Updates a loan account to status of In arrears (“Active in bad standing”) if a payment is late and if the acceptable lateness (specified in configuration settings) has been exceeded. Also calculates the portfolio at risk value for all loan accounts.
Calculates how many days in arrears loan accounts are in.
Updates existing accounts with changes in fee status or amount.
For example, suppose all clients must pay a monthly membership fee or 10Rs. When clients are created, this membership fee is attached to their account. If the MFI later decides to change the membership fee to 15 Rs, the MFI can make this change directly on the fee definition page and choose to apply the change to all exisiting accounts. This batch job then updates the membership fee amount across all current accounts.
Generates the next year meeting schedule for client accounts at the end of current year. Note that the same batch job also handles savings accounts. See Meeting Schedule Change below for additional notes.
This job updates any holiday changes to loan and savings schedules in Mifos.
Mifos produces change logs, which capture and store information on all the activities performed on data. It also produces application logs, which consist of error messages, warnings, and actions performed by the users of the system.
For each installation of Mifos, the change log captures the creation and modification of data in the system. Specifically, Mifos captures the following activities, which are preconfigured in the system and cannot be modified:
Change logs are captured for the following entities:
In addition to other data, the change log captures changes for the following:
Additional data changes will be recorded in the change log, but there is no guarantee that any change, other than the status and loan officer changes listed above, will be captured in the change log.
Activities for which the change log captures data changes are pre-configured in Mifos. New activities cannot be brought under the scope of the change log.
Change log for a particular entity are visible from the section where details of the entity are created or modified. The change log can be accessed from the View change log link at the bottom of each page. The data is in a flat list format organized by date.
The application log helps developers and IT personnel ensure the proper functioning of Mifos by providing a log of debug or error messages, warnings, and actions by the users. It is stored on the server and is not available through the Mifos user interface.
A severity or importance level is assigned to all entries in the application log. The entries can be sorted by the severity levels, thereby enabling users to focus on issues of interest. System administrators are able to turn off and on certain types of logging by setting a configuration value.
Application logging is enabled at the module level, and hence there are different loggers per module. This is done so that various modules can have different levels of logging. The stabilized modules log only 'ERROR' or 'FATAL' levels. while the modules under development would be at 'DEBUG' level. Modules that are released and are relatively, but not completely, stabilized are logged at 'INFO' level.
Developers can use application logging to identify where a particular error has occurred as well as test proper functioning.
When a loan is created, the schedule of repayments is computed to 13 decimal places of precision, then rounded to the precision specified by the settings described below. Finally, the last payment is adjusted to account for roundoff errors. This page describes the precise manner in which MifOS rounds and adjusts these loan payments.
Three types of application-wide settings affect how a loan repayment schedule is rounded and adjusted: currency precision, rounding precision, and rounding mode. (See "Currency and Rounding Rules" for a general discussion of currency and rounding.)
AccountingRules.DigitsAfterDecimalRounding precision is set by two configuration options:
AccountingRules.InitialRoundOffMultiple. Allowable values are 1, 0.5, 0.1, 0.01, and 0.001.AccountingRules.FinalRoundOffMultiple. Allowable values are the same as those for initial rounding.Specifies the method of rounding. MifOS supports three rounding modes: HALF_UP, FLOOR, and CEILING. The mode is set by three configuration options, one for each rounding context:
AccountingRules.CurrencyRoundingModeAccountingRules.InitialRoundingModeAccountingRules.FinalRoundingMode (*Section Under Development*)
The Currency Rounding mode is set for all of Mifos; as mentioned above the settings determines the number of decimal places after the decimal point will be displayed throughout the application. Mifos administrators usually set this to be the actual level of precision of the currency. The settings MFIs use are very dependent on what makes sense for collecting payments in the country and area in which they are working.
AccountingRules.DigitsAfterDecimal= 2AccountingRules.InitialRoundingMode=CEILING AccountingRules.InitialRoundOffMultiple=1
For the final payment the MFI also does not want the client to bring small coins. The
MFI wants any rounding to benefit the client, so the final amount is rounded down.
AccountingRules.FinalRoundOffMultiple=1AccountingRules.FinalRoundingMode=FLOORAccountingRules.DigitsAfterDecimal= 3AccountingRules.InitialRoundingMode=HALF_UP AccountingRules.InitialRoundOffMultiple= .5 AccountingRules.FinalRoundOffMultiple=.001AccountingRules.FinalRoundingMode=CEILINGA loan's repayment schedule is computed, or re-computed, when
The computation is exact, normally keeping up to 13 decimal places of precision. In most scenarios, the payment amounts need to be rounded off before becoming final. Rounding is done automatically by MifOS before the repayment schedule is displayed or printed.
Note: for release 1.1, the ability to add or remove a charge after one or more payments are applied is disabled unless the amount of the charge is already rounded (and thus MifOS will not re-round the installments). The feature will be enabled once business rules are established for how rounding should be applied in the case that past or future payments have already been applied.
MifOS rounds each part (principal, interest, fees, penalties, interest) of an installment separately, and rounds the total payment as well. This often results not only in small overpayment or underpayment of parts of the installment, but also in a difference between the rounded total installment payment and the sum of its parts. MifOS corrects for this by adjusting parts to add up to the whole installment, according to the rules described below.
Finally, after installments are rounded and adjusted, it is possible that neither the total paid across all installments nor the total principal actually paid will add up to the amounts originally computed. MifOS corrects for this by adjusting the amounts in the final installment.
The details of how MifOS carries out this rounding and adjusting is described in the steps below.
Let's illustrate the steps with a sample loan. Assume these application settings:
Currency precision: 3 decimal places Currency rounding mode: HALF_UP Initial rounding mode: HALF_UP Initial rounding precision: 1 (round to whole currency unit) Final rounding mode: HALF_UP Final rounding precision: 1 (round to whole currency unit) Days in fiscal year: 365 The terms of the loan are:
Loan amount: 120 Interest rate: 25% Number of installments: 6 Payment frequency: weekly Loan Type: Equal payments, declining interest In addition, the loan includes a periodic fee of 4% applied to principal + interest, and the first installment includes a miscellaneous fee of 5.
MifOS creates the repayment schedule based on accounting rules and the terms of the loan.
Installment Num. Total Principal Interest Loan Fee Misc. Fee 1 30.2178231440342 19.7616116826613 0.5753424657534 4.8808689956195 5.0000000000000 2 25.2178231440342 19.8563591359343 0.4805950124804 4.8808689956195 0.0000000000000 3 25.2178231440342 19.9515608578189 0.3853932905958 4.8808689956195 0.0000000000000 4 25.2178231440342 20.0472190263153 0.2897351220994 4.8808689956195 0.0000000000000 5 25.2178231440342 20.1433358298661 0.1936183185486 4.8808689956195 0.0000000000000 6 25.2178231440342 20.2399134674066 0.0970406810081 4.8808689956195 0.0000000000000 Totals 156.3069388642050 120.0000000000000 2.0217248904856 29.2852139737172 5.0000000000000
MifOS first computes the rounded and adjusted totals for the loan. It
These are the amounts that the customer will actually pay during the life of the loan.
Because total interest is adjusted, the amount of interest that the borrower pays may differ from the total (currency-rounded) interest due. In order to balance accounts, that difference goes into the 999 account .
Initial-rounded total payments: 156.000 Principal (already rounded): 120.000 Currency-rounded loan fee: 29.285 Currency-rounded misc. fee: 5.000 Currency-rounded interest: 2.022 Adjusted interest: 1.715 (total payments - principal - fees) The customer will pay 0.307 less interest than actually due, which is accounted for in the 999 account.
What happens depends on whether or not the installment is the last one, and whether any grace period applies.
The first 5 payments are rounded and adjusted as shown below.
Installment Num. Total Principal Interest Loan Fee Misc. Fee 1 30.000 19.544 0.575 4.881 5.000 2 25.000 19.638 0.481 4.881 0.000 3 25.000 19.734 0.385 4.881 0.000 4 25.000 19.829 0.290 4.881 0.000 5 25.000 19.925 0.194 4.881 0.000
Compare the loan totals computed in step 2 with running totals of all but the last installment, and adjust the last installment's parts so that the running totals of all installments sum to loan totals.
The last installment is adjusted as follows:
Total payment = 156 - (25 + 25 + 25 + 25 + 25) = 26 Principal = 120 - (19.544 + 19.638 + 19.734 + 19.829 + 19.925) = 21.330 Loan Fee = 29.285 - (4.881 + 4.881 + 4.881 + 4.881) = 4.880 Interest = 26 - (0.575 + 0.481 + 0.385 + 0.290 + 0.194) = -0.210
The principal is always zero, and only interest and fees are paid. As above, the installment's interest amount absorbs any rounding discrepancies:
Calculations are the same as if there were no grace, since the zero-payment installments are not included in the installment list at all.
Under some scenarios, rounding can result in the last installment becoming negative -- see this known issue. At this time, the only resolution available is to adjust the terms of the loan.
last modified 2009-01-20 15:37
Background
Almost all MFIs need a report which gives a status of loan accounts in arrears. This feature maintains a summary table that captures arrears data so that it can be easily accessed by the reporting module.
Feature summary
Below are the requirements for this table:
Feature description