Early Repayment of Fees
Early Repayment of Fees
Release: |
2.1 |
Current Owners: |
Kay Chau |
Status (Draft, In Review, Stable, Approved) |
Stable |
Introduction
Our new customer MFI in Kenya, PAWDEP, has a business need to assign penalties to savings accounts and have them due when applied. What PAWDEP does is that whenever a client withdraws money from their savings, they must pay 10ksH for doing the withdrawal. This is not possible in Mifos right now as you cannot assign fees or penalties to savings accounts, nor can you have fees applied to client accounts due when they are applied (can only be due at meetings). We need to implement a way to meet their business need.
Goals
- Ability to apply payment of penalties before or on meeting date to the client
- Allow partial payment of fees and penalties
Non-Goals
The following items will not be addressed in this release:
- Decoupling of Fees schedule from Meeting Schedules
- Only applicable to Clients, Groups and Centers - no Fees related to Savings or Loans.
Definitions and Terminology
Term |
Definitions |
---|---|
 |
 |
- Mandatory fields will be preceded by *
- Links are italicized
- Buttons are
Button
Related Documents
Early Repayment of Fees
This will update existing Fees/Penalties functionality at the client, group, and center accounts.
User Stories and Scenarios
Priority |
Size |
User Stories / Scenarios |
---|---|---|
1 |
 |
MFI is able to apply some sort of 1 time, upfront fee at any time. They are also able to apply payment on it immediately instead of having it due on the next meeting. The fee is just added to the open balance, but can be paid off before the next meeting. Essentially you are allowed to make payments towards your fees balance at any time now instead of restricting to the next meeting. Same as prepaying. |
2 |
 |
Also needed but the ability to make Partial Payment - Can pay off less than balance, but then payment is applied in a certain order: |
Example Use Case
Branch Staff applies a one-time fee to a client with no other fees due on client's meeting date and then applies payments through CSE
Client needs to a pay a penalty for savings withdrawal. At the meeting, LO collects a payment of 10ksH for the penalty. During data entry in Mifos. Branch Staff needs to note that a penalty of 10ksH has been applied to the client. Then they want to go into CSE and note all payments that were collected.
Actors
- Branch Staff
Preconditions
- Client has no recurring fees and no fees due at their next meeting date currently.
- Client meets on the 5th of every month.
Basic Flow
- Branch Staff logs onto Mifos on the 12/5 and navigates to client.
- Branch Staff applies a charge of 10ksH to the client. He wants to apply payment on it immediately (before next meeting date). Client has no other fees or penalties due.
- Branch Staff navigates to Collection Sheet Entry runs a collection sheet for 12/5. Under A/C column, amount of 10ksH is listed for the client. Branch Staff completes CSE and applies exact payment.
Post-conditions
- Balance of client account is 0.
Validations
- Â It used to be that this charge would not show up until 1/5.
Alternate Flow
- At Step 3 of Basic Flow, Branch Staff applies payment of 4ksH in CSE. CSE completes. Balance of client account is 6ksH.
Branch Staff applies a one-time fee to a client with no other fees due on client's meeting date and then applies backdated payments through CSE
MFI staff will usually enter these after their meeting days.
Actors
- Branch Staff
Preconditions
- Client has no recurring fees and no fees due at their next meeting date currently.
- Client meets on the 5th of every month.
Basic Flow
- Branch Staff logs onto Mifos on the 12/6 and navigates to client.
- Branch Staff applies a charge of 10ksH to the client. He wants to apply payment on it immediately (before next meeting date). Client has no other fees or penalties due.
- Branch Staff navigates to Collection Sheet Entry runs a collection sheet for 12/5. Under A/C column, amount of 0 is listed for the client. Branch Staff completes CSE and applies a payment of 10ksH.
Post-conditions
- Balance of client account is 0.
Validations
- Â Client should not be allowed to overpay
Alternate Flow
- At Step 3 of Basic Flow, Branch Staff applies payment of 4ksH in CSE. CSE completes. Balance of client account is 6ksH.
More Scenarios
Pre-Conditions
- One-Time Charge = 10ksH
- If Recurring Fees = 6ksH
- Monthly meetings on the 5th of every month
Scenario # |
User Applies the One-Time Charge of 10 ksH on: |
Are there existing Recurring Fees? (see Pre-Cond) |
User wants to apply Payment through CSE or Individual Payment |
Default Payment Due Listed |
User applies payment on this date and with this amount: |
Was this a full or partial payment? |
Open Balance After Payment |
Comments |
|
---|---|---|---|---|---|---|---|---|---|
1 |
On meeting date - 12/5 |
No |
CSE |
12/5 = 10 |
12/5 = 10 |
Full |
0 |
Currently, can't pay this amount off on meeting date |
|
2 |
 |
No |
Individual |
12/5 = 10 |
12/5 = 10 |
Full |
0 |
 |
|
3 |
 |
Yes |
CSE |
12/5 = 16 |
12/5 = 16 |
Full |
0 |
 |
|
4 |
 |
Yes |
Individual |
12/5 = 16 |
12/5 = 16 |
Full |
0 |
 |
|
5 |
 |
Yes |
CSE |
12/5 = 16 |
12/5 = 12 |
Partial - 12 |
4 (remains on one-time fee) |
 |
|
6 |
 |
Yes |
Individual |
12/5 = 16 |
12/5 = 12 |
Partial - 12 |
4 (remains on one-time fee) |
 |
|
7 |
Between meetings - 12/15, no backdating, 12/5 meeting already entered |
No |
Individual |
12/15 = 10 |
12/15 = 10 |
Full |
0 |
 |
|
8 |
=> You might want to pay off early in an Import case |
Yes - already paid 12/5's |
Individual |
12/15 = 16 |
12/15 = 16 |
Full |
0 |
 |
|
9 |
 |
Yes - already paid 12/5's |
Individual |
12/15 = 16 |
12/15 = 12 |
Partial - 12 |
4 (remains on recurring fee due next mtg) |
 |
|
10 |
 |
Yes - didn't pay 12/5's (overdue amount) |
Individual |
12/15 = 22 |
12/15 = 22 |
Full |
0 |
 |
|
11 |
 |
Yes - didn't pay 12/5's (overdue amount) |
Individual |
12/15 = 22 |
12/15 = 12 |
Partial - 12 |
10 (remains on one-time fee and then recurring fee for next mtg) |
 |
|
12 |
=> Unlikely to go into CSE on 12/15 since your 1/5 hasn't happened yet so these are for what happens when you go into Mifos on 1/5 |
No |
CSE |
1/5 CSE = 10 |
1/5 CSE = 10 |
Full |
0 |
 |
|
13 |
 |
Yes - already paid 12/5's |
CSE |
1/5 CSE = 16 |
1/5 CSE = 16 |
Full |
0 |
 |
|
14 |
 |
Yes - already paid 12/5's |
CSE |
1/5 CSE = 16 |
1/5 CSE = 12 |
Partial - 12 |
4 (remains on recurring fee) |
 |
|
15 |
 |
Yes - didn't pay 12/5's (overdue amount) |
CSE |
1/5 CSE = 22 |
1/5 CSE = 22 |
Full |
0 |
 |
|
16 |
 |
Yes - didn't pay 12/5's (overdue amount) |
CSE |
1/5 CSE = 22 |
1/5 CSE = 12 |
Partial - 12 |
10 (remains on one-time fee and then recurring fee) |
 |
|
17 |
Backdated scenario - 12/6 |
No |
CSE |
12/5 CSE = 0 |
12/5 CSE = 10 |
Full Balance |
0 |
Error out if you try to enter in more than 10 for 12/5 |
|
18 |
 |
No |
Individual |
12/6 = 10 |
12/5 = 10 |
Full |
0 |
 |
|
 |
 |
No |
CSE |
12/5 CSE = 0 |
12/5 CSE = 4 |
Partial |
6 |
 |
|
 |
 |
No |
Individual |
12/6 = 10 |
12/5 = 4 |
Partial |
6 |
|
|
19 |
 |
Yes - didn't pay 12/5's (not paid yet) |
CSE |
12/5 CSE = 6 |
12/5 CSE = 16 |
Full Balance |
0 |
Error out if you try to enter in more than 16 for 12/5 |
|
20 |
 |
Yes - didn't pay 12/5's (not paid yet) |
Individual |
12/6 = 22 |
12/5 = 16 |
Partial - 16 (Full for 12/5) |
6 (Recurring Fee for your next mtg) |
Error out if you try to enter in more than 16 for 12/5 |
|
21 |
 |
Yes - didn't pay 12/5's (not paid yet) |
CSE |
12/5 CSE = 6 |
12/5 CSE = 12 |
Partial - 12 |
4 (remains on one-time fee) |
 |
 |
22 |
 |
Yes - didn't pay 12/5's (not paid yet) |
Individual |
12/6 = 22 |
12/5 = 12 |
Partial - 12 |
10 (remains on one-time fee and then recurring fee) |
 |
 |
Early Repayment of Fees Functional Requirements
Fees Applied
FR# |
Pri |
Description |
Comments / Mockups |
---|---|---|---|
0.1 |
P1Â |
Fees get applied depending on date. |
 |
0.2 |
P1 |
One time fees get applied to the next meeting. They are added to the open Fees Balance |
 |
0.3 |
P1 |
The difference is you can now pay off your open balance at any time. |
 |
0.4 |
P1 |
When an amount is due, we should just see the open balance on the account as of that date |
 |
Apply Payment flow
FR# |
Pri |
Description |
Comments / Mockups |
---|---|---|---|
1.1 |
P1Â |
Change Amount field so that it populates to balance on the client account instead of 0 if it is before client's next meeting date. Date still defaults to today. See above scenarios for what should be populated. |
|
1.2 |
P1 |
Amount field is now editable. User can apply partial payment |
 |
1.3 |
P1 |
Partial Payment should be applied in following order: Due date of fees (overdue first), and then order in which fee was applied |
 |
1.4 |
P1 |
Balance is running balance. |
 |
Apply Adjustment flow
FR# |
Pri |
Description |
Comments / Mockups |
---|---|---|---|
2.1 |
P1 |
Apply Adjustment should continue to work. If a payment is made on the client account, then you can also adjust the payment after. |
 |
2.2 |
P1 |
Adjustment will just adjust the amount that was paid previously |
 |
Client Charges Details Page
FR# |
Pri |
Description |
Comments / Mockups |
---|---|---|---|
3.1 |
P1 |
Upcoming Charges currently lists meeting date as when upcoming charges are due. Leave this as is, since they are technically due by the next meeting. Doesn't mean you can't pay it off now. If today is meeting date, Upcoming Charges should list today's date. |
 |
3.2 |
P1 |
Waive Charges - you should be able to continue to waive charge as right now - your whole balance would be waived. |
 |
3.3 |
P1 |
Overdue Charges - should work as it does currently. Any charges not paid as of last meeting date are considered overdue. Payment should be applied to Overdue Charges first |
 |
3.4 |
P1 |
Remove Recurring Fees -Â If today is a meeting date, and you remove a recurring fee today, it should be removed from TODAY's meeting now. |
 |
Client Account Details Page
FR# |
Pri |
Description |
Comments / Mockups |
---|---|---|---|
4.1 |
P1 |
Under Amount Due, this should be updated with balance of client account. See FR#1.1 for what should be listed here |
Existing bug |
Collection Sheet Entry
FR# |
Pri |
Description |
Comments / Mockups |
---|---|---|---|
5.1 |
P1 |
Default amount in A/C Collection should be open balance on the account as of that date |
|
5.2 |
P1 |
If you are running a previous meeting's CSE, then it will list the open balance on that date which includes what's due at the next meeting. |
 |
Backdated Transactions
FR# |
Pri |
Description |
Comments / Mockups |
---|---|---|---|
6.1 |
P1 |
If backdated transactions are turned on, then the user can continue to apply payment for fees in the past.  |
|
6.2 |
P1 |
Backdated transactions can only be up to the last meeting date. It cannot be before the last meeting date. |
 |
6.3 |
P1 |
Reject if you try to overpay what's due. That means if you try to pay 1/5's recurring fee on 12/5 it will reject it. |
 |
Import Plugins
FR# |
Pri |
Description |
Comments / Mockups |
---|---|---|---|
7.1 |
P1 |
If there are import plugins that take in client fees, they should be updated with this behavior |
|
Other Assumptions
- Â
QA Considerations
- Â
Standard Considerations
Security (Permissions, Roles, and Data Scope)
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? |
Must have apply fees |
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 |
Impacts to System
Does this feature affect Bulk Loan Creation? How? |
No |
Does this feature affect Collection Sheet Entry? How? |
Today's meeting date should allow me to see today's fee applied |
Does this feature affect Redo Loans? |
No |
Does this feature affect Undo Loans? |
No |
Globalization/Localization
Will this feature support users localizing data that they enter? |
No |
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 |
Logging
Change Log
Do changes to the data that is collected or stored by the new feature have to be fully logged by the system? |
No |
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 |
Reporting
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? |
Need to check |
Does the feature require adding any new reports? |
No |
Performance
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 page timeout? |
No |
Will the feature contain any bulk insert/update/delete transactions? |
No |
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? |
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? |
Possibly |
Setup and Installation
New Installations
Will the feature include demo data? |
No |
Does the feature require any data to be gathered at setup runtime? |
No |
Backward Compatibility and Upgrades
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? |
No |
Hosting Support
Is there anything special for our cloud customers we need to be aware of? |
No |
 |
 |
Configuration
Does this feature require changes to configuration files? |
No |
If so, is this feature enabled or disabled by default? |
N/A |