August 2023 Release Notes
1. Preface
This is a living document, and its contents may be updated often. Make sure that you have the latest version for use.
This document provides information about the new and enhanced functionality in the Q2 Loan Servicing, August'23 General Availability (GA) release. You can access the release notes of the previous releases from the Q2 Customer Portal.
The contents of this document are applicable to all the customers who have installed the August '23 version (4.2008) of Q2 Loan Servicing for the first time or have upgraded from an earlier version.
1.1 Purpose of this Document
This document provides information on the following for the August'23 release:
1.2 Intended Audience
The audience of this document includes business users, implementers, and system administrators.
1.3 Prerequisites for Use
This document assumes a basic knowledge of the product concepts, the product release, and the Salesforce platform.
2. Introduction
These release notes may be updated after the first release. Any changes to the contents of these release notes are listed in the Change Record section.
3. Installation Information
Contact your Q2 Professional Services team or the Customer Success team for information on the package dependency and installation order of the packages required to install and set up the latest version of Q2 Loan Servicing.
4. Upgrade Considerations
For information on the upgrade steps, see release-related steps in the Q2 Product Upgrade Guide.
5. System Performance
To view the SOD batch jobs performance statistics for Q2 Loan Servicing without customizations under test conditions, see the Q2 Performance Benchmarking Guide.
6. New Features and Enhancements
This section briefly describes the new features and enhancements added in the August'23 release of Q2 Loan Servicing.
Note: For a detailed description of the new features and enhancements, see the following guides published over the Q2 Customer Portal:
Q2 Loan Servicing User Guide for Simple Loans
Q2 Loan Servicing User Guide for Amortized Loans
Q2 Loan Servicing User Guide for Line of Credit Loans
Q2 Loan Servicing User Guide for Master Facility
Q2 Loan Administration Guide
6.1 Financial Calculator Version 4.0 (Jira ID: ND-5496/ND-6348)
Feature Description
With the August 2023 release, the Financial Calculator of the Q2 Loan Servicing platform has been enhanced to achieve better performance and a more accurate EMI calculation. What does this mean?
Reduction of time for EMI calculation: The time that the system would take for calculation of EMI and returning the amortization schedule would be substantially reduced. Though it might sound ambitious, we are aiming to be able to generate EMI and amortization schedule for a 30-year monthly payment loan contract to less than 2 sec.
Manage loans with a higher loan tenor: You would be able to manage loans with loan tenor of up to 1500 terms without the system landing into CPU timeout.
As a new user or a lender on Q2 Loan Servicing Platform, you can select the version of FinCalc that you want to use at the Org Parameters level.
If you are an existing user on the platform, your FinCalc version continues to remain unchanged even if you upgrade to August 2023 unless and until you explicitly change this at the org level.
In case you want to try out our new version for running a particular set of loans for better performance, we have given the provision at the loan product level to select the version of FinCalc for only that product.
For this, a new field named Financial Calculator Version has been added at both the org level and the loan product level where the new calculator version 4 can be mentioned (Old versions supported are 3 and 3.1.)
7. Fixed Issues
For the details of the issues fixed in this release, see the Q2 Loan Servicing Patch Release Notes, 2023.
8. Known Issues
This section briefly describes the known issues in the August'23 release of Q2 Loan Servicing.
Issue ID | Description |
---|---|
ND-6359 |
Fincalc phase 3: While rescheduling the capitalization dates not considered before repayment start date |
ND-6151 | Running IPT job for Backdated LPT creation and reversal -only for Capitalization fee and NSF fee |
ND-6118 | Additional Bills are generating for daily contract |
ND-6225 | Latest Bill is not included in Repayment Schedule on Rescheduling loan with Maintain Delinquency=True |
ND-6216 | ARR-Allow to pass Transaction Date in Manual Bill creation API |
ND-6172 | Today's payoff is not getting updated to zero when Loan is in Closed Status |
ND-6229 | Lending Product Min Term not working |
ND-6374 | After moving to next IPT date and doing 2nd backdated LPT, payoff, loan balance and adj int cap is mismatching |
ND-6361 | Calc 3.1 issue: create contract with capitalization frequency less than the payment frequency, Interest calculation is wrong in schedule |
ND-6363 | Calc 4.0 issue: Create capitalized loan with Repayment plan (IO) period defined, the amortization schedule wrong |
ND-6429 | Remaining amount for funding on IO is not updated correctly after second disbursal with approval process in Non revolving loans |
ND-6430 | DML exception throwing while doing disbursal reversal that happen through approval process |
ND-6433 | Validation is not showing when doing Zero amount disbursal For Advance Interest loans |
ND-6424 | Apex heap size too large error is displaying while reversing payment |
ND-6438 | DML exception throwing while doing Loan Cancellation reversal |
ND-6440 | After doing Investor Rate change for IO AIC, New rate not getting reflected on the IO AIC |
ND-6364 | August'23 Performance: Apex CPU time limit exceeded exception observed for InterestAndBalanceDiagnosticsJob on both DAG & External batch |
ND-6437 | Maximum view state size limit while opening cash receipt |
ND-6456 | Bulk no of test cases are failing in payoff quote as late charges are included twice when applyFuturePayments=False |
9. New and Modified Objects
This section briefly describes the new and modified objects in the August'23 release of Q2 Loan Servicing.
For more details on the added and modified objects, see Q2 Loan Servicing Data Dictionary Guide.
9.1 New Objects
The following table describes the objects added in the August'23 release of Q2 Loan Servicing.
Object Name | Field Name | Field Description |
---|---|---|
Diagnostic Status | loan__Interest_Discrepancy_Found__c | This new field captures the results of diagnostics and links it to the contract record. |
loan__Loan_Balance_Discrepancy_Found__c | This new field is selected by the diagnostic job to indicate that the contract's principal amounts are not matching. | |
loan__Loan_Account__c | This new field indicates the loan account for which the diagnostic status is generated. | |
Diagnostic Settings | loan__Interest_Amount_Tolerance__c | This new field indicates the tolerance value for Interest amount in a loan. |
9.2 Modified Objects
The following table describes the objects modified in the August'23 release of Q2 Loan Servicing.
Modified Object Name | Added/Modified Field Name | Field Description |
---|---|---|
Loan Parameters | loan__Days_To_Payment_Amount_Change__c | This newly added field is an integer field used to provide the number of days for which the upcoming payments will remain constant after the rate change. |
loan__Enable_Delay_For_Manual_Rate_Change__c | This newly added field is a checkbox field used to indicate that the payment is delayed after the manual rate change. |
|
loan__Variable_Payment_Amt_Per_Rate_Schedule__c | This newly added field is a checkbox field used to indicate if amortization schedules with EMI is generated for different rate schedule. | |
Custom Hooks | Custom_Fixed_Schedules_Class__c | This newly added field is a text field that describes the custom class for Fixed schedules after a rate change. |
Other Loan Transaction | loan__Adjusted_Interest_Capitalized__c | This newly added field is a number field that stores the capitalized portion of interest adjustment. |
loan__Adjusted_Interest_Non_Cap__c | This newly added field is a number field that stores the non-capitalized portion of interest adjustment. | |
Diagnostic Log | loan__Loan_Account__c | This newly added field is a lookup field that stores the contract record for which this log is generated. |
loan__Actual_Capitalized_Interest__c | This newly added field is a number field that stores the contract's current value for capitalized interest. | |
loan__Expected_Capitalized_Interest__c | This newly added field is a number field that stores the calculated value for capitalized interest computed by diagnostic job. | |
loan_Actual_Non_Cap_Interest__c | This newly added field is a number field that stores the contract's current value for non-capitalized interest. | |
loan__Expected_Non_Cap_Interest__c | This newly added field is a number field that stores the calculated value for non-capitalized interest computed by diagnostic job. |
10. New and Modified APIs
This section briefly describes the APIs that are added or modified in the August'23 release of Q2 Loan Servicing.
For more details on the added or modified APIs, see Q2 Loan Servicing REST APIs Guide.
10.1 New APIs
There are no new APIs added in the August'23 release of Q2 Loan Servicing.
10.2 Modified APIs
There are no APIs modified in the August'23 release of Q2 Loan Servicing.
11. Global Methods
This section briefly describes the global methods that are added or modified in the August'23 release of Q2 Loan Servicing.
For more details on the added and modified global methods, see Q2 Loan Servicing Global Methods Guide.
11.1 New Global Methods
The following table describes the global methods added in the August'23 release of Q2 Loan Servicing:
Class Name | Global Method Name | Global Method Description |
---|---|---|
AbstractLoanActions | waivePaidCharge | This method is used to waive the paid charge component of loan. |
AbstractLoanActions |
interestAdjustmentAction | This method is used to do manual interest adjustment. |
AbstractCustomOptionForFixedSchedule | getCustomNumberOfFixedSchedules | This method is used to get the number of schedules whose payment amount will not change after rate change in a loan contract. |
AbstractCustomOptionForFixedSchedule | getEnableDelayForManualRateChangeFlag | This method is used to check if the delay in the Payment Amount functionality must be applied for the manual rate change from the Reschedule page or from Rate Change page. |
11.2 Modified Global Methods
There are no global methods modified in the August'23 release of Q2 Loan Servicing.
12. Post GA Release
Follow this section for the details on the issues fixed in the patches on the August'23 release of the following packages:
Q2 Loan Servicing
12.1 Issues fixed in Q2 Loan Servicing 4.2008.14
12.1.1 The Interest Remaining field is getting updated incorrectly when an Installment Payment is created on a delinquent contract (Jira ID: PDRFF-1379/ND-5996/ND-6306/ND-6307/ND-6380)
Issue Description
When an Installment Payment is created on a delinquent FAMZ loan contract, the Interest Remaining is getting calculated incorrectly as twice the expected value.
From the Hydrogen release, borrowers can repay the future schedules in advance at any point in time in Flexible-AMZ type loans irrespective of the due date. This feature allows the lenders to collect payment for future installments including principal and interest. This is achieved by closing the interest posting transaction by calculating the extra interest expected to be posted from the current date to the installment date. Until the installment date, the loan account is locked and no other loan actions, such as rate change and term extension can be performed.
For this option to be available, the Installment Payment flag must be enabled.
Example to Understand the Issue
-
Let us say today is January 18, 2022, and we create an FAMZ contract with the following details and disburse it:
Loan Amount = $10,000
Time Counting Method = Actual Days
Pre Bill Days = 28 Days
Contract Start Date = January 18, 2022
Payment Frequency = Monthly
First Payment Date = February 18, 2022
Interest Posting Frequency = Monthly
Term = 10 months
Rate = 10%
Interest Posting Enabled = True
-
Now, as we move on to February 18, 2022, the following two bills get generated:
The February 18, 2022 bill
-
The March 18, 2022 bill
Note:As the Pre Bill Days is defined as 28, bills get generated 28 days before the due date.
As we move on to February 21, 2022, let us create an Installment Payment that satisfies the delinquent bill.
This payment includes the February and March bill amounts. As the payment is an Installment Payment, the system accrues future interest till March 18 and saves it in the Interest Remaining field and the Interest Posting Transaction (IPT) gets closed.Let us move on to March 18, 2022.
The system, internally, reopens the closed IPT, again accrues interest till March 18 and adds to the Interest Remaining.
This issue is occurring because the Interest Posting Transaction (IPT) that was closed is getting posted again leading to the IPT amount being twice the actual amount. Thus, due to the IPT amount being twice the actual value, the Interest Remaining is also getting calculated as twice the actual amount.
Resolution
This issue is fixed as the logic has been updated to restrict the reposting of the IPT that is already closed. Hence, the Interest Remaining is updated correctly after the Installment Payment.
12.1.2 Interest Remaining is getting updated incorrectly when an ad hoc payment is reversed that results in a loan restructure (Jira ID: PDRFF-1495/ND-6064/ND-6299/ND-6302)
Issue Description
In an FAMZ contract, when an ad hoc payment is reversed resulting in the contract getting restructured, the Interest Remaining is getting updated incorrectly.
Example to Understand the Issue
Let us perform the following steps to understand this issue:
-
Let us create an FAMZ Lending Product with the following details:
-
Excess Threshold % for Reschedule = 1%.
Note:The Reschedule Status field is used to mark the loans that are to be rescheduled when an LPT amount is higher than the threshold defined in Excess Threshold % for Reschedule. All such loans will be rescheduled in EOD processing.
Payment Application Mode = Future Dues
-
-
Let us say we create a contract on August 3, 2012, with the following details, and disburse it:
Loan Amount = $10,000.
Interest Rate = 10%.
Payment Frequency = Monthly.
This sets the First Payment Date to September 3, 2012, and the Amortization Schedule gets generated for the following dates: September 3, 2012, October 3, 2012, November 3, 2012, till August 3, 2013, and the Due Amount for each schedule is $879.19.
-
Now let us go to August 13, 2012.
It is observed that the system accrues the interest from August 3, 2012, to August 13, 2012, and the value is as follows:
Interest Accrued = $27.40. = 10,000 * 10/365 * 10/100.
-
Now let us create an ad hoc payment of $1,000 with the Transaction Date as August 13, 2012, and clear it.
The system updates the contract's Reschedule Status to Pending because of this payment.
-
Let us go to August 14, 2022.
It is seen that the system reschedules the contract successfully and updates the Interest Remaining field value. The system updates the contract fields as follows:
Principal Remaining = $9,000.
Principal Paid = $1,000.
Last Accrual Date = August 13, 2012.
Interest Remaining = $27.40
Interest Accrued = $2.46. (This is interest accrued for 1 day.)
Reschedule Status = Success
The Amortization Schedule also gets generated for the following dates: September 3, 2012, October 3, 2012, November 3, 2012, till August 3, 2013, and the Due Amount for each is $791.51.
-
Now let us go to August 26, 2012.
It is seen that the system accrues the interest from August 14, 2012, to August 26, 2012, as per the new schedule, and the values are as follows:
Interest Remaining: $27.40.
Interest Accrued: $32.05.
-
Now on August 26, 2012, let us reverse the ad hoc payment that was created in step 4.
This must update the values as follows:
The Amortization Schedule should revert to the original one with the same following dates: September 3, 2012, October 3, 2012, November 3, 2012, till August 3, 2013, and the Due Amount for each schedule should be as the original one, which is $879.19.
Interest Remaining = $0.
-
Interest Accrued = $63.01.
The interest is to be calculated on the original principal amount that is $10,000. (10,000 * 10/100 * 23/365, where days = Aug 26 - Aug 3 = 23 days.)
Principal Remaining = $10,000.
Principal Paid = $0.
-
Let us go to the next payment date, which is September 3, 2012.
The Interest Remaining must be updated to $84.93 ( = 10,000 * 10/100 * 31/365, as August has 31 days and the interest is calculated from August 3 to September 3), but this is not the case.
It is seen that the Interest Remaining field is getting updated with an incorrect value.
Resolution
The issue is fixed, and now when an ad hoc payment is reversed, the Interest Remaining field is getting updated correctly.
12.1.3 The Interest Remaining is incorrectly calculated when payments are skipped and loan is rescheduled (Jira ID: PDRFF-1586/ND-6097/ND-6314/ND-6315)
Issue Description
In an FAMZ contract, when payments are skipped and the loan is rescheduled, the interest amounts in the schedule are getting incorrectly calculated and hence the Interest Remaining is getting incorrectly updated too.
Example to Understand the Issue
Let us try to understand this issue with the help of an example.
-
Create a loan with the following details and then approve and disburse it:
Amount = $100,000
Contract Date = January 3, 2022
Payment Frequency = Monthly
First Payment Date = February 3, 2022
Term = 60 Months
Interest Rate = 8%
Pre-Bill Days = 28
-
Let us go to February 3, 2022.
It is observed that the system generates a bill as per the schedule.
AMZ schedule amount is 2,027.64 (where Principal = 1,360.97 and Interest =666.67.) Let us pay and satisfy the bill of $2,027.64.
-
Now let us go to February 7, 2022, and reschedule the loan to change the Repayment Start Date to August 3, 2022 by going to Loan Actions > Reschedule > Transaction Date = 2/7/2022, Repayment Start Date = 8/3/2022.
This way we are skipping months for payment to August 3.Note:August and September are Interest only Payments.
Move the system date to August 3, 2022.
Create a payment transaction of amount 2,094.47.
Let us reschedule the loan to change the Repayment Start Date to September 3, 2022, by going to Loan Actions > Reschedule > Transaction Date = 8/3/2022, Repayment Start Date = 9/3/2022.
-
The following are observed:
The system calculates the interest from February 3, 2022, to July 3, 2022 on the scheduled balance as follows = 98,639.03 * 8/100 * 150/360 = 3,287.98 and assigns it to the Interest Remaining. (where 98,639.03 = 100,000 - 1360.97.)
This amount is more than the payment amount, which is $2,027.64. Hence, the system distributes the calculated Interest Remaining value in subsequent schedules by deducting the remaining interest amount to be paid from the due Amount in each schedule till there is no more interest left. Thus this interest of 3,287.98 must get split in the next schedules August 3, 2022, September 3, 2022, and October 3, 2022 schedules as 1436.88 + 1436.88 + 414.22 = 3287.98. You can refer to the following image.
-
After clicking Preview to preview the rescheduling:
The interest of the September 3, 2022, schedule must have the interest = 2,094.47 as seen in the following schedule ( = 1436.88 + 657.59). But this is not the case, and so Interest Remaining is getting incorrectly calculated when moved to the next due date, which is September 3, 2022.
The interest of the October 3, 2022, schedule must have the interest = 1,071.81 ( = 657.59 + 414.22). But this is not the case, and so Interest Remaining is getting incorrectly calculated when moved to the next due date, which is October 3, 2022.
Resolution
The issue is fixed now, and the system is calculating the interest amounts correctly after the rescheduling.
12.1.4 The Interest Remaining field value is getting incorrectly updated after the reversal of an ad hoc payment that had rescheduled the loan (Jira ID: PDRFF-1605/ND-6233/ND-6292/ND-6293)
Issue Description
In an FAMZ loan contract, when a loan is rescheduled due to an ad hoc payment and then the payment is reversed, the system is updating the Interest Remaining and other fields incorrectly.
Example to Understand the Issue
-
Let us create an FAMZ contract with the following details and disburse it:
Loan Amount = $60,000
Contract Start Date = August 27, 2012
Payment Frequency = Monthly
Term = 12 months
Interest Rate = 16%
Pre Bill Days=15
-
Let us go to September 3, 2012, and reschedule the contract by updating the Repayment Start Date as October 27, 2012.
The Interest Remaining and Last Accrual Date field values are updated to $160 and September 3, 2012, respectively, and the amortization schedules are accordingly generated.
-
Let us go to September 10, 2012, and create an LPT of $5,000 with the Transaction Date as September 10, 2012, and clear it.
Interest Accrued is updated to $186.67 for 7 days (from September 3 to September 7).
LAD is updated to September 10, 2012.As the Rescheduled Threshold Crossed flag is set to true in LPT and it is an ad hoc payment, the complete payment goes towards the principal instead of going to Excess, and the Reschedule Status is updated to Pending.
-
Now let us go to September 12, 2012.
The SOD jobs run, and the contract is rescheduled.
Interest Remaining is updated to $346.67 and Interest Accrued is updated to $48.89.
-
Reverse the LPT of $5,000 created in step 3.
The expected behavior must be as follows:Interest Remaining = $160
LAD must change from September 10, 2012, to September 3, 2012.
Interest Accrued must be recalculated from September 3 to September 12 as $240.
Old IPT must be discarded and a new IPT must be created in an Open status.
LAD on new IPT must be set to September 9, 2012.
But the actual behavior observed is as follows:
The LPT is reversed but the Interest Remaining is not getting updated correctly in the open IPT after the excess threshold LPT reversal. Interest Remaining remains unchanged as $346.67.
LAD is not updated to September 3, 2012. It remains unchanged.
Hence, many other fields are also getting incorrectly updated.
-
Now let us go to October 27, 2012.
As the billing frequency is monthly the second Interest Posting Transaction is created.
It is observed that the Interest Posted amount on the IPT and the Interest Remaining on the contract are not in sync.
Resolution
This issue is fixed, and the Interest Remaining and all others fields are now getting calculated correctly after reversing the ad hoc payment and the loan is rescheduled.
12.1.5 The required Interest Posting Transactions are not getting discarded after reversing the excess payments (Jira ID: ND-4887/ND-6506/ND-6508/ND-6509)
Issue Description
In an FAMZ loan contract, when an excess payment (that has crossed the excess threshold percentage) is reversed, the IPTs are not getting discarded and the IPT amount is getting added to the Interest Remaining.
Example to Understand the Issue
-
Let us create an FAMZ loan contract with the following details:
Loan Amount = $10,000
Contract Start Date = January 1, 2013
Payment Start Date = February 1, 2013
Payment Frequency = Monthly
Interest Posting Frequency = Monthly
Excess Threshold % for Reschedule = 5.00
IPT enabled = True
Pre-bill days = 5
Interest Rate Change Method = Change Payment Amount
Let us approve and disburse the loan contract.
AMZ schedule gets created with EMI amount = $879.16.-
Let us perform the actions on dates as described in the following table:
Step number Current System Date Actions Results 1. First bill date February 1, 2013 None
The system updates the values as follows:
Interest Posted = 0.00
Interest Remaining = $83.33
Interest Accrued = $0.00
Principal/Advance Remaining = $10,000
Bill gets generated with amount = $879.16
-
Two IPTs get created:
IPT1 with due date of February 1 is Closed of amount $83.33.
IPT2 with due date of March 1 is Open.
2. Second bill date March 1, 2013 None The system updates the values as follows:
Interest Posted = 0.00
Interest Remaining = $160.03 (= IPT1 + IPT2 = 83.33 + 76.70)
Interest Accrued = $0.00
Principal/Advance Remaining = $10,000
Bill gets generated with amount = $879.16
-
Three IPTs get created:
IPT1 with due date of February 1 is Closed of amount $83.33.
IPT2 with due date of March 1 is Closed of amount $76.70.
IPT3 with due date of April 1 is Open.
3. On the same date, later Make an excess payment of amount $3,000 (The excess amount must cross the excess threshold%).
This means that an LPT (Loan Payment Transaction) of an amount higher than the bill amount gets created and the bill gets paid.
The system updates the values as follows:
Reschedule Status = Pending
Last Accrual Date (LAD) = March 1, 2013
Interest Posted = 0.00
Interest Remaining = 0 as the bill gets paid due to excess payment
Interest Accrued = $0.00
Principal/Advance Remaining = $7160.03
Both the bills of February and March gets marked as Payment Satisfied
LPT gets created and marked as cleared
-
Following two IPTs that were Closed are marked as Paid:
Closed IPT1 with due date of February 1 of amount $83.33 is marked Paid.
Closed IPT2 with due date of March 1 of amount $76.70 is marked Paid.
IPT3 with due date of April 1 remains Open with no change.
4. The next day that is March 2, 2013 None The system updates the values as follows:
Reschedule Status = Success
Last Accrual Date (LAD) = March 1, 2013
Interest Posted = 0.00
Interest Remaining = 0
Interest Accrued = $1.99 for one day
Principal/Advance Remaining = $7,160.03
No change in the Bills
No change in the LPT.
-
Following two IPTs that were Closed are marked as Paid:
Closed IPT1 with due date of February 1 of amount $83.33 is marked Paid.
Closed IPT2 with due date of March 1 of amount $76.70 is marked Paid.
IPT3 with due date of April 1 remains Open with no change.
An Other Loan Transaction (OLT) with Transaction type as Reschedule gets created and a new schedule gets generated with the same amount $879.16.
5. Third bill date of April 1, 2013 None The system updates the values as follows:
Last Accrual Date (LAD) = April 1, 2013
Interest Posted = 0.00
Interest Remaining = $59.67
Interest Accrued = 0
Principal/Advance Remaining = $7160.03
A bill of amount $879.16 gets generated
Total 4 IPTS created 3-Closed (83.33 & 76.70,59.67) 1-Open (due date 5/1/2013 )
-
Following three IPTs are Closed:
IPT1 with due date of February 1 of amount $83.33 is marked Paid.
IPT2 with due date of March 1 of amount $76.70 is marked Paid.
IPT3 with due date of April 1 of amount $59.67 is marked Paid.
IPT4 is created with due date May 1, 2013, and is Open.
6. Fourth bill date of May 1, 2013 None The system updates the values as follows:
Last Accrual Date (LAD) = May 1, 2013
Interest Posted = 0.00
Interest Remaining = $112.51
Interest Accrued = 0
Principal/Advance Remaining = $7160.03
Fourth bill of amount $879.16 gets generated
-
Following four IPTs are Closed:
IPT1 with due date of February 1 of amount $83.33 is marked Paid.
IPT2 with due date of March 1 of amount $76.70 is marked Paid.
IPT3 with due date of April 1 of amount $59.67 is marked Paid.
IPT4 with due date of May 1 of amount $52.84 is marked Paid.
IPT5 is created with due date June 1, 2013, and is Open.
7. On the same date, later Reverse the excess payment created on March 1, 2013 (mentioned in Step 3) by clicking Repayment Transaction Reversal on that LPT.
The system must updates the values as follows:
Last Accrual Date (LAD) = March 1, 2013
Interest Posted = 0.00
Interest Remaining = $160.03
Interest Accrued = 0
All the IPTs till June 1 must get marked as unpaid.
IPTs of due dates April 1, May 1, and June 1 must get discarded. (Once they are discarded, they get recreated later.)
-
Following three IPTs must remain Closed:
IPT1 with due date of February 1 of amount $83.33 must be marked Paid.
IPT2 with due date of March 1 of amount $76.70 must be marked Paid.
IPT3 with due date of April 1 of amount $59.67 must be marked Paid.
IPT4 with due date of May 1 of amount $52.84 must remain Open.
Bills with due dates April 1 and May 1 must get marked as non primary.
Only bills with due dates of February 1 and March 1 must be marked primary.
The amortization schedule must get back to its previous state.
The excess LPT must get marked as reversed.
The OLT with Transaction Type as Reschedule that was created earlier must get marked as reversed.
Next Due Date must get updated to April 1, 2013
Next Due Generation must get updated to March 27, 2013 (because of pre bill days being 5)
Interest Remaining must not include April and May Interest Posted amounts.
However, the values are updated as follows:
IPTs of due dates April 1, May 1, and June 1 are not getting discarded.
Interest Remaining includes April and May Interest Posted amounts too.
Resolution
This issue is now fixed, the required IPTs are getting discarded successfully and the Interest Remaining is correctly calculated.
12.1.6 Excess principal payment is not triggering the automatic restructuring of the loan (Jira ID: ICAR-24/PDRFF-1899/ND-6469)
Issue Description
When an excess principal payment is made in an FAMZ loan contract, the loan is not getting automatically restructured and the Reschedule Status is not changing to Pending.
Example to Understand the Issue
-
Let us create an FAMZ loan contract with the following details:
Payment Frequency = Monthly
Interest Posting Frequency = Monthly
Move the system date by a few days ahead.
Make a payment for the contract with the Spread Manually Flag set to true such that the entire amount must go towards the principal component.
-
On saving this payment transaction, the LPT is cleared.
Note:The Reschedule Threshold Crossed is set to false.
The Reschedule Status on loan must change to Pending, but it is not changing to Pending. And hence, the subsequent restructuring of the loan is also not triggered.
Resolution
This issue is now fixed.
As part of the fix, the system now restricts the Manual Payment for FAMZ loans if the loan is not in Active Good Standing status.
If the loan is in Active Good Standing, only then the principal payment is allowed through the manual spread.
12.1.7 The Maturity Date is reflecting an incorrect value on the Reschedule OLT after an excess payment reschedules the loan (Jira ID: PDRFF-1891/ND-6455/ND-6490/ND-6491/ND-6492)
Issue Description
When an excess payment is made such that the loan is automatically rescheduled, the Maturity Date field reflects an incorrect value on the OLT that is of the Transaction Type, Reschedule.
Example to Understand the Issue
-
Let us create an FAMZ loan contract with the following details:
Contract Start Date = January 1, 2013
Payment Frequency = Monthly
Interest Posting Frequency = Monthly
Default Interest Rate = 10%
Reschedule Option on Excess Payment = Keep Same Payment Amount
Excess Threshold % for Reschedule = 0.00
Terms = 10
Time Counting Method = Month And Days
Loan Amount = $10,000
Let us approve and disburse the loan contract.
-
Now let us go to the first bill date February 1, 2013.
The system generates the following:
Bill 1 of $1046.4
IPT 1 of $83.33
Now let us create an LPT of $1,046.4 for the first bill.
-
Let us go to February 15, 2013, and make a payment (LPT) of $2,000, which is higher than the bill amount.
This updates the following:Interest Accrued = $35.14
Interest Paid = $83.33
Reschedule Status = Pending
-
Let us go to the next day, which is February 16, 2013, to run the SOD/EOD jobs for rescheduling. (Ensure that the LoanRescheduleDynamicJob or LoanRescheduleJob as part of the SOD/EOD Job is trigger the automatic reschedule.)
This updates the following:
Reschedule Status = Success
Reschedule transaction (OLT of the Transaction Type, Reschedule) gets created with the Maturity Date as blank, which is incorrect.
The Maturity Date must reflect the latest maturity date, which is September 1, 2013.
The Maturity Date is updating to null (or is blank) because when the system finds the value of the Reschedule Option On Excess Payment field selected as Keep Same Payment Amount, it does not update the Maturity Date to a new date internally and hence displays as blank on the OLT due to rescheduling.
Resolution
This issue is now fixed, and the Maturity Date field on the rescheduling transaction (OLT) is reflecting the correct value.
12.1.8 Amortization Schedule are not set back to the previous schedule after the payment is reversed (Jira ID: ICAR-55/PDRFF-2055/ND-6518)
Issue Description
In an FAMZ contract the Amortization Schedules are not set back to the previous schedules after the payment is reversed. This is because the system is allowing you to manually change the Reschedule Threshold Crossed on the LPT to false, which is an incorrect behavior.
Example to understand the issue
-
Let us create an FAMZ contract with the following details:
Time Counting Method = Month and Days
Default Interest Rate = 10
Is Interest Posting = true
Interest Posting Frequency = Monthly
Excess Threshold % for Reschedule = 0
Reschedule Option on Excess Payment = Keep Same Payment Amount
Contract Start Date = March 1, 2022
Loan Amount = 10,000
Term = 10
Interest Rate Change Method = Change Payment Amount
Payment Frequency = Monthly
Payment Start Date = February 3, 2022
Let us approve and disburse the loan contract.
Let us create an LPT with Transaction Amount = $200. (Reschedule Threshold Crossed on the LPT is true.)
-
Let us try to update Reschedule Threshold Crossed to false and save it.
The system must not allow you to change the value of this flag, but the system allows you to change this flag.
Let us go to the next day and reverse the LPT created.
The Amortization Schedules are not reverting back to the previous schedules as the Reschedule Threshold Crossed flag is set to true.
Resolution
This issue is now fixed. The system now restricts the manual changing of the Reschedule Threshold Crossed flag to false and it remains true when tried to change to false. Thus, the LPT reversal now leads to AMZ schedules reverting back to previous schedules as expected.
12.1.9 The Interest Remaining field is getting incorrectly calculated when the Interest Period Calculation is set to Include Start Date (Jira ID: ND-6386/ND-6445/ND-6446/ND-6447)
Issue Description
In an FAMZ contract with Interest Period Calculation set as Include Start Date , the Interest Remaining field is getting incorrectly calculated.
Example to understand the issue
-
Let us create an FAMZ contract with the following details:
Contract Start Date = January 1, 2013
Loan Amount = $10,000
FIT = True
Interest Rate = 5%
Term = 10
Interest Period Calculation = Include Start Date
Is Interest Posting = True
Payment Frequency = Monthly
Accrual Start Basis = Disbursal Date
Interest Rate Change Method = Change Payment Amount
Interest Posting Frequency = Monthly
Payment Start Date = February 2, 2013
-
Let us go to February 2, 2013, approve and disburse the loan contract.
The Interest Remaining must be = $1.39
However, Interest Remaining is getting calculated as twice the expected value = $2.78 (= 2 * 1.39.)
This is because when the Interest Period Calculation = Include Start Date, the system updates the Interest Remaining twice on disbursal in an FAMZ loan contract.
Resolution
This issue is now fixed, and the Interest Remaining value is getting calculated correctly.
12.1.10 Mismatch in interest values in the contract and accrual entries (Jira ID: PDRFF-1903/ND-6507/ND-6538/ND-6539/ND-6540)
Issue Description
In Flexible AMZ loans, when a payment is reversed, the values of the interest fields and accrual entries are not in sync with each other and with the interest values in the repayment schedule.
Example to Understand the Issue
-
Let us create an FAMZ loan contract with the following details:
Contract Start Date = June 18, 2022
Loan Amount = $10,000
Interest Rate = 6%
Term = 3
Is Interest Posting = true
Payment Frequency = Daily
Interest Posting Frequency = Daily
Payment Start Date = June 19, 2022
Time Counting Method = Actual Days
Accrual Start Basis = Disbursal Date
Payment Application Mode = Current Dues
Payment Application Order = Date
Accrual Based Accounting = true
Accrual Entry Frequency = Daily
FIT = True
Draw Billing Method = Interest Only
Interest Rate Change Method = Keep Same Payment Amount
Let us approve and disburse the loan.
-
Let us perform the actions on dates as described in the following table:
Current System Date Actions Results June 19, 2022 Run the Accrual Entry Job.
Make a payment of the bill amount of $3,334.43.
Interest Paid = 10,000 * 6/100 * 1/365 = 1.64. June 20, 2022 Run the Accrual Entry Job.
Make a payment of the bill amount of $3,334.43.
Interest Paid = 10,000 * 6/100 * 1/365 = 1.64.
June 21, 2022 (This is the Maturity Date as Term = 3.) Run the Accrual Entry Job.
Interest Accrued= 10,000 * 6/100 * 1/365 = 1.64.
Next Accrual Entry Date must be December 31, 3000.
June 22, 2022 Reverse the latest LPT, and check the interest fields updated. Next Accrual Entry Date must be December 31, 3000.
-
We can observe that accrual entries are created for 3 terms.
On the same date later Run the Accrual Entry Job. Expected behavior: The expected values must be as follows:
Next Accrual Entry Date = December 31, 3000.
Accrual Amount Accounted For = 3.29 (no change)
Interest Accrued = 0.55
Interest Remaining = 1.65
Interest Paid = 1.64
Next Accrual Entry Date = December 31, 3000 (no change)
Thus, Sum of interest field values on the CL Contract (Sum of Interest Remaining, Interest Paid, and Interest Accrued) must be equal to Accrual Amount Accounted For (Sum of accrual amount of all accrual entries).
Observed actual behavior: There is a mismatch observed between the interest on the contract and that of the accrual entries. The sum of the interest fields at the contract level differ from the sum of interest amounts in accrual entries and they both differ from the sum of the interests in the contract's repayment schedule.
Thus,
Sum of interest field values on the CL Contract (Sum of Interest Remaining, Interest Paid, and Interest Accrued) is not equal to Accrual Amount Accounted For (Sum of accrual amount of all accrual entries) that is also not equal to sum of interests as per repayment schedule.
Resolution
This issue is fixed. Now the sum of interest field values on the CL Contract (Sum of Interest Remaining, Interest Paid, and Interest Accrued) is equal to Accrual Amount Accounted For (Sum of accrual amount of all accrual entries), and they are also equal to the sum of interests in the repayment schedule.
12.1.11 Interest Remaining is getting updating incorrectly when a Loan Payoff transaction is reversed (Jira ID: ND- 4460)
Issue Description
When a payoff transaction is reversed in an FAMZ loan contract, Interest Accrued and Interest Remaining are getting incorrectly updated. This issue is caused by improper consideration of the loan balance during the reversal process.
Example to Understand the Issue
-
Let us create an FAMZ contract with the following details:
Contract Start Date = January 1, 2013
Loan Amount = $10,000
Interest Rate = 10%
Term = 10
Is Interest Posting = True
Payment Frequency = Monthly
Interest Posting Frequency = Monthly
Disbursal Date = February 1, 2013
Payment Start Date = March 1, 2013
Let us go to February 1, 2013, and approve and disburse this contract.
Move a few days ahead so that the interest gets accrued. Let us say we have moved to February 25, 2013.
This updates the Interest Accrued to $66.67.-
Make a Loan Payoff by creating a payoff transaction of $10066.67 and clear it.
Note:This issue can be replicated with a normal LPT as well.
The Interest Accrued of $66.67 is paid and hence Interest Accrued must be 0 and Interest Paid must be $66.67.
-
Reverse the payoff and verify Interest Accrued and Interest Remaining field values.
Expected behavior: After reversing the payoff, the Interest Remaining must reflect the correct amount based on the reversal and the Interest Accrued must get back to the previous state as follows:Interest Paid = 0
Interest Accrued = $66.67
Interest Remaining = 0
Observed behavior: After reversing the payoff, the Interest Accrued and the Interest Remaining are reflecting incorrect values because the system was considering the Loan Balance incorrectly during the reversal process.
Resolution
The code has been modified to correctly consider the Loan Balance when reversing a Loan Payoff transaction on FAMZ loans. This ensures that the Interest Remaining and Interest Accrued are updated accurately after the reversal.
12.1.12 Installment payment is not satisfying the bill and moving the interest to Excess (Jira ID: PDRFF-692/ND-5289)
Issue Description
When an Installment Payment is made between the Due Generation Date and the Due Date in a loan with Pre-bill days defined, the bill is not getting satisfied completely. Only the principal component of the bill is getting satisfied, and the interest component amount is getting moved to Excess. However, the system is marking the bill as paid. And an extra IPT of the type of Prepayment is also getting created in the system.
Example to Understand the Issue
-
Let us create a Flexible AMZ contract with the following details:
Contract Start Date = August 29, 2021
Pre Bill Days = 5
Payment Start Date = September 29, 2021
Next Due Generation Date = September 24, 2021
-
Let us move to the end of day of September 24, 2021 (You can move the EOD batch to September 24, 2021 to do this.)
The bill gets generated.
-
Let us create a payment transaction with Installment Payment flag set to true and the Installment Date as September 29, 2021, and clear that payment.
This amount is satisfying the principal part of the bill only and not the interest part, but the bill is still getting marked as satisfied and the interest component is getting considered as an Excess amount within the loan.
Resolution
This issue is fixed. The Installment Payment is now appropriately fulfilling the bill, and the system is correctly marking the existing IPT as closed and paid.
12.1.13 The system is clearing the Excess LPT amount incorrectly without comparing it with the Excess amount available on the contract (Jira ID: ND-6180)
Issue Description
When an Excess amount is already available on an FAMZ loan contract, the Loan Payment Transaction is getting incorrectly cleared without comparing the values correctly.
Example to Understand the Issue
Let us try to understand this issue with the help of an example.
-
Transaction Approval Configuration > Payments = true
-
Let us perform the actions on dates as described in the following table:
Current System Date Actions Results March 21, 2013 Create an LPT-1 of amount $100.
The Excess field on the loan contract gets updated to $100 as there is no bill generated yet. On the same date later Create an additional LPT-2 of amount $100. The Excess field on the contract is updated to $200.
On the same date later Create one more LPT-3 with Payment Mode = Excess in an uncleared state.
Note:Transaction Amount will be non-editable for this.
Note:The payment will be cleared only when it is manually cleared if it is approved as per the configuration set in Transaction Approval Configuration.
On the same date later Reverse LPT-2 of $100. Excess field on the contract is updated to $100.
On the same date later Now mark the Excess LPT-3 as cleared. The Excess LPT-3 gets cleared and the total Excess on the loan becomes $300, which is incorrect.
The system must reject this action of clearing this LPT-3.
Expected behavior:
The system must check and compare the excess amounts before clearing. Before clearing the Excess LPT-3, the system must check the Excess amount present on the loan and compare it with the Excess LPT-3 to be cleared. If it's less than the Excess LPT-3 amount then the Excess LPT-3 must not be cleared and the system must reject the LPT-3 in order to avoid blocking the next LPTs to be cleared.
Also, after the LPT-2 reversal, the system must check and must reject any uncleared Excess LPTs present on the loan if the Excess LPT amount is greater than the actual Excess amount on the loan after the reversal action.
Resolution
This issue is fixed.
Now, while clearing the Excess LPT, the system compares the clearing Transaction Amount with the Excess amount present on the contract. If the clearing Transaction Amount is more than the Excess amount, the system displays the following error message:
Error:Rolling back the batch. Message - You cannot process this transaction. The Transaction Amount is greater than the available Excess Amount in the Contract. - Cause null-104.
Also, the system will not allow to create any new LPT, say LPT-4, in cleared state if the Excess LPT-3 is still not cleared, and will display the following error message:
Cannot clear transaction as there are previous uncleared transactions. Please clear or reject those transactions before clearing this payment.
Only after clearing or rejecting the Excess LPT-3, the system will allow to clear any additional new LPTs such as LPT-4.
12.1.14 Excess field is not getting updated after the reversal of the Excess LPT created by the ExcessForAmzLoansJob (Jira ID: ND-3212/ND-6462)
Issue Description
When an excess payment is made in an FAMZ loan contract, an LPT gets created of that excess amount and the Excess field on the loan contract gets updated with the excess amount. This excess amount satisfies the bill in the next cycle creating an Excess LPT of that excess amount and updating the Excess field on the loan contract to zero. After that, if the Excess LPT is reversed, the Excess field is not getting updated with the original excess amount.
This is because, internally, the Excess field is getting marked as zero before the creation of a snapshot while processing the Excess LPT.
Excess field must get marked as zero after the creation snapshot while processing the Excess LPT.
Snapshots are fields that stores different field values temporarily for internal calculation purposes.
Example to Understand the Issue
-
Let us create a Flexible AMZ contract with the following details:
Loan Amount = $10,000
Terms = 3
Rate = 10%
Time Counting Method = Month & Days
Payment Frequency = Monthly
Interest Posting Frequency = Monthly
Contract Start Date = January 1, 2022
Let us approve and disburse this contract.
-
Let us perform the actions on dates as described in the following table:
Current System Date Actions Results February 1, 2022 (billing date) Make a payment of the bill generated.
Bill is satisifed. On the same date later February 1, 2022 Then make an additional payment of $500. LPT of $500 gets created and as the bill is already satisfied, this amount goes toward the Excess.
The Excess field on the contract is updated to $500.
March 1, 2022 (next billing date) None ExcessForAmzBasedLoansJob job runs as part of SOD.
Excess LPT gets created of $500 and satisfies the bill.
Excess field on the contract is updated to 0.
On the same date later Reverse the Excess LPT created on March 1. The amount in the Excess field on the contract must be reversed back to $500, but the issue is that it is not getting reversed and the value of the Excess field is remaining as zero.
Resolution
This issue is fixed. The internal code is modified such that the Excess field is now getting updated correctly after the reversal of the Excess LPT created by the ExcessForAmzLoansJob.
12.1.15 Rescheduling by adding or updating a Flexible Repayment Plan is failing with an error message (Jira ID: PDRFF-1973/ND-6476)
Issue Description
When an FAMZ loan contract is rescheduled to add or updated a Flexible Repayment Plan, the system is throwing the following exception:
"Error:
CL010101: Unexpected Exception SObject row was retrieved via SOQL without querying the requested field: loan_Loan_Accountc.loanRevolving_c at line 139"
Example to Understand the Issue
-
Let us create a Flexible AMZ contract with the following details:
Billing Method = Declining balance
Payment Frequency = Monthly
Time Counting Method = Month and Days
Accrual Start Basis = Contract Dates
Payment Application Mode = Current Dues
Payment Application Order = Date
Default Term = 12
Interest Type = Fixed
Interest Rate Change Method = Change Payment Amount
Default Interest Rate = 10%
Repayment Procedure = EMI
Is Interest Posting Enabled = true
Interest Posting Frequency = Monthly
Pre Bill Days = 5
Excess Threshold % for Reschedule = 5.00
Reschedule Option on Excess Payment = Keep Same Payment Amount
Loan Amount = 10,000
Payment Start Date = February 2, 2013
Accrual Start Date =January 2, 2013
-
Let us add a Flexible Repayment Plan with the following details:
Sequence Payment Type Payment Amount Number of Payments Payment Start Date 1 Equal Monthly Installments $900 3 February 2, 2013 2 Equal Monthly Installments $879.16 3 May 2, 2013 This updates the amortization schedule in the following way:
The first three terms display an amount of $900.
The next three terms display an amount of $879.16.
The other six terms display an amount of $868.07.
The last schedule display the balance as zero.
Let us approve and disburse this contract.
-
Then, on the same day, let's reschedule the loan contract by updating the values as follows:
Transaction Date = February 1, 2013
Interest Only Period = 0
Repayment Start Date = February 2, 2013
Payment Frequency = Monthly
Maintain Delinquency = true
-
Let us edit the first row of the Flexible Repayment Plan as follows and try to save this Rescheduling:
Sequence Payment Type Payment Amount Number of Payments Payment Start Date 1 Equal Monthly Installments $1,000 3 (non-editable) February 2, 2013 (non-editable) -
The system is not able to reschedule and displays an error message as follows:
"Error:CL010101: Unexpected Exception SObject row was retrieved via SOQL without querying the requested field: loan_Loan_Accountc.loanRevolving_c at line 139"
Instead, the system must update the amortization schedule with the following values:The first three terms with an amount of $1,000.
The next three terms with an amount of $879.16.
The remaining terms with amount of $814.86.
Thus, the old schedule must get archived, and the new must be created.
Resolution
This issue is fixed. The code has been modified such that the system is now able to successfully reschedule the loan by updating the Flexible Repayment Plan.
12.1.16 Interest Remaining is getting updated incorrectly when Interest Period Calculation is set to Include Start Date (Jira ID: ND-6474/ND-6510/ND-6511)
Issue Description
In an FAMZ loan contract, if the Interest Period Calculation is set to Include Start Date of the calculation period, the Interest Remaining is getting calculated incorrectly and LAD (Last Accrual Date) is getting updated to a date before the Contract Start Date.
Example to Understand the Issue
-
Let us create a Flexible AMZ contract with the following details:
Interest Rate = 10%
Time Counting Method = Month and Days
Is IPT Enabled = true
Interest Posting Frequency = Single-Payment Frequency
Interest Period Calculation = Include Start Date
FIT = true
Loan Amount = $10,000
Term = 1
Contract Start Date = September 22, 2013
First Payment Date = October 22, 2013
Let us approve and disburse this contract.
-
Let us move two days ahead to September 24, 2013.
Expected behavior: The various fields on the loan contract must reflect the following values:
LAD = September 22, 2013.
Interest Remaining = $2.78.
This is one day's interest = 10,000 * 10/100 * 1/360 = 2.78 as the interest calculation includes the start date of the calculation period.
Observed behavior: But the observed behavior is as follows:
LAD = September 21, 2013.
Interest Remaining = 0.
This same issue has been observed with a contract with 10 terms too.
Resolution
This issue is fixed. The code has been modified such that the system is now updating and calculating the Interest Remaining and the LAD correctly when the Interest Period Calculation is set to Include Start Date in an FAMZ loan contract.
12.1.17 Multiple excess LPTs are getting created every day due to older uncleared payment transactions (Jira ID: ND-5270)
Issue Description
In an FAMZ loan contract, excess payments are getting created every day as there is some amount remaining in the Excess field because there is a payment transaction with a Transaction Date prior to the excess payments that are uncleared.
Note that the excess LPTs are created when there is some amount remaining in the Excess field and there is an unpaid bill in the system. And the ExcessForAMZbasedLoans job runs everyday to create the excess LPTs.
The issue is that in a Flexible AMZ loan contract, if the sum of the uncleared LPTs and the excess amount is less than the due amount, then the system is creating an excess LPT every day when the job runs until the sum of the uncleared LPTs and the repetitive excess LPTs is greater than or equal to the due amount. Thus, the system keeps creating excess LPTs everyday due to earlier uncleared payment transactions.
Example to Understand the Issue
-
Let’s assume the following FAMZ contract is created:
Current System Date = June 18
Pre Bill Days = 5
First Payment Date = July 18
Next Due Generation Date = July 13
Current System Date | Actions | Results |
---|---|---|
June 18 | None | Due Amount of $91.69 created. |
July 13 (Due Generation Date) | None | Bill gets generated. |
July 14 | Ad hoc payment of $10 made. | Excess of $10 created in the system. |
Same date later | Payment (LPT) of $41.72 made. | LPT of $41.72 not cleared. |
July 18 | None |
Excess LPT of $10 created. Because the sum is not less than the due amount. This means: $41.72 < $91.69. |
July 19 | None |
Excess LPT of $10 created. Because the sum is not less than due amount. This means: ($41.72 + $10) < $91.69. |
Same date later | LPT updated to $71.71. | None |
July 20 | None |
No excess LPT created as sum is not less than due amount. This means: ($71.71 + $20) > $91.69. |
Same date later | LPT updated to $61.71. | None |
July 21 | None |
Excess LPT is created of the difference between due amount and sum of excess LPTs and payments, which is $9.97. This means: $91.69 - ($61.71 + $20). |
Resolution
To resolve this issue, before creating an excess LPT, the system must check the earlier uncleared excess LPTs. It must create a new excess LPT only if the excess amount present in the contract (in the Excess field of the contract) is more than the total amount in all earlier uncleared excess LPTs.
For example, if the total amount in all earlier uncleared excess LPTs is $10 and if the excess amount is $15, then the system must create an excess LPT of only $5.
This issue is now resolved as the system does not create new excess LPTs if it exceeds the excess amount present in the contract in the Excess field.
12.1.18 If a backdated payment is attempted and the payment exceeds the threshold percentage, the system is not displaying an appropriate message (Jira ID: ND-6493)
Issue Description
If a back dated payment is attempted in an FAMZ loan contract and the payment exceeds the Excess Threshold % for Reschedule, the system is not displaying an appropriate message.
Example to Understand the Issue
-
Let us create a Flexible AMZ contract with the following details:
Billing Method = Declining Balance
Payment Frequency = Monthly
Time Counting Method = Month and Days
Accrual Start Basis = Contract Dates
Payment Application Mode = Current Dues
Payment Application Order = Date
Default Term = 12
Interest Type = Fixed
Interest Rate Change Method = Change Payment Amount
Default Interest Rate = 10%
Repayment Procedure = EMI
Is Interest Posting = true
Interest Posting Frequency = Monthly
Pre Bill Days = 5
Excess Threshold % for Reschedule = 5.00
Reschedule Option on Excess Payment = Keep Same Payment Amount
Loan Amount = $10,000
Current System Date = January 1, 2013
Payment Start Date = February 1, 2013
Accrual Start Basis = January 1, 2013
Let us approve and disburse this contract.
An AMZ schedule gets created with an EMI amount of $879.16.-
Let us move to the fourth bill date of May 1, 2013.
The various parameters on a loan contract get updated as follows:LAD = May 1, 2013
Interest Posted = 0.00
Interest Remaining = $293.32
Interest Accrued = 0.00
Principal/Advance Remaining = $10,000
Four bills get generated with an amount of $879.16 each(All bills are primary)
-
Following five IPTs get created:
Four IPTs in the Closed status
One IPT in the Open status with due date of June 1, 2013.
-
Now let us create a back dated LPT with the following details:
Transaction Date = March 1, 2013.
Transaction Amount = $4,000 (This must cross the Excess Threshold % for Reschedule of 5% as defined earlier.)
Expected behavior: The system must not allow to create backdated LPT crossing the Excess Threshold % for Reschedule and while saving the LPT, the system must display an appropriate error message.
Observed behavior: While trying to save such a backdated LPT, the system is not displaying an appropriate message to say that such a backdated LPT cannot be created as it is crossing the Excess Threshold % for Reschedule.
Resolution
This issue is fixed.
The system now is not allowing to create a backdated LPT crossing the Excess Threshold % for Reschedule and while saving such an LPT, the system is displaying the following error message:
"Excess Backdated Payments are not allowed for flexi-Amz Loans."
12.1.19 During LPT clearing, the payment distribution is considering Interest Remaining instead of Interest Posted (Jira ID: ICAR-122/PDRFF-2022/ND-6496)
Issue Description
In an FAMZ loan contract, when a payment transaction (LPT) is created, during its clearing, if the Interest Remaining is less than the Interest Posted amount, the system only considers the Interest Remaining amount for the interest part within the LPT, even though the Interest Posted amount is more.
Resolution
This issue is fixed. The Payment Spread of the LPT is now considering the posted unpaid amount instead of the Interest Remaining amount.
13. Change Record
S.No | Change Date | Description of Change |
---|---|---|
1. | April 28, 2023 | Published the Release Notes for August'23 General Availability release. |
2. | June 5, 2023 |
Published the release notes for: Q2 Loan Servicing 4.2008.14 |