Alternative Reference Rates
Overview
From the Winter'22 release, in addition to Fixed and Floating Interest Types, Q2 Loan Servicing supports Alternative Reference Rates (ARR) as an Interest Type. An Alternative Reference Rate is used to calculate the interest amount from an external source depending on the ARR Calculation Type you select. An ARR Calculation Type can either be one of the following:
For more information on Interest Types, see this guide's Key Concepts of a CL Contract section.
For additional information on ARR, see the More Information section.
ARR Calculation Type: External Interest Calculator
When you select Alternative Reference Rates as an Interest Type for your loan with the External Interest Calculator as the ARR Calculation Type, the system gets an external Interest Rate by calling an external calculator through an API. The interest rate and amount calculated by the external calculator are then stored within the Q2 Loan Servicing system. The calls are made on LAD events, billing, and payoff creations. The rates for different periods between each third-party call are saved as All In Rates within the system.
The third-party API call is made through the Q2 Integrations Framework.
When is a third-party API call made to fetch the interest?
When you select Alternative Reference Rates as an Interest Type for your loan, the system gets an external Interest Rate by either calling an external calculator through an API or specifying an interest amount manually.
When the API calls an external calculator, the interest rate calculated by the external calculator is then stored as Interest Rate when a contract is created and stored as All In Rate object when LAD is changed, and the interest amount calculated by the external calculator is stored in Interest Remaining within the Q2 Loan Servicing system.
As the interest rate is decided by an external system and can vary just like the floating rate index, the system needs to capture the interest every time. To achieve this, Q2 Loan Servicing captures the external interest rate and interest amount every time an LAD is changed, billing is processed, or a payoff quote is created, and not every day or at any other time.
Thus, a call to the third-party API to get the Interest Rate and the interest amount is made only for the following:
When a contract is first created.
When an LAD is changed.
When billing is to be processed.
When a Payoff Quote is to be created.
When the system calls the third party, it gets the interest rate from the third party, and it updates the Interest Remaining field. Usually, in loan contracts without ARR where the third party is not called, when there is an LAD change, the system makes a call to the internal calculator, gets the interest amount, and stamps it on the contract. In the say way, for loan contracts with ARR, instead of calling the local calculator, the system calls a third-party calculator, gets the value, and stamps it on the loan contract. Values such as the Interest Accrued and the payoff amount till now are typically updated daily in the non-ARR-configured contracts, but when the contract is created for ARR, then as the third party cannot be called every day, these values remain as zero for an ARR-configured contract.
The third-party API call limit is four API calls for a contract in an accrual cycle. So for a contract with 12 terms, the API calls for 100 contracts can go up to 5000. These numbers are linear in nature as the terms and number of contracts count go up.
All In Rates
The rates for different periods between each third-party call are saved as All In Rates within the system.
Whenever there is an LAD change, the interest is calculated on a certain interest rate value. For example, if the contract is created on January 15 and IPT is generated on February 1 (IPT changes the LAD), then, interest is calculated for 15 days, which is provided by the third-party calculator. There could be many such periods and the system would not know the rate used for different periods. Thus, the rate for each period is captured as an All In Rate with a From Date and a To Date captured for that period. The following image depicts the All In Rates captured:
Any All In Rate corresponding to an LAD event reversal is marked as Discarded.
Integration Configuration
The third-party API call is made through the Q2 Integrations Framework. The third-party has a certain API, and there is a certain API configuration for it. There can be multiple third parties, such as ICE and more. Q2 Loan Servicing has made such an integration configurable using the Q2 Integration Framework.
For more information on configuring the integration, see the Servicing Configuration > Integration Configurations section of the Q2 Loan Servicing Administration Guide.
ARR Calculation Type: Manual Interest Input
With the Winter'22 patch release, Q2 Loan Servicing gives you the option to specify an external interest amount manually by specifying a bill amount. You can do this with the help of a UI or an API.
With the help of the UI, to be able to manually specify an interest amount to the system, you have to create a manual OLT where you have to specify a bill amount and this bill amount would be taken as the Interest Posted amount for an Interest Only loan in an ARR-enabled loan contract.
An ARR-enabled loan is an Interest Only loan so the bill amount is nothing but the interest amount for the cycle.
Specify an interest manually on the UI
Steps
Go to the loan contract for which you want to specify the interest manually.
-
Go to Loan Quick Menu > Loan Actions > Manual Billing as highlighted in the following image:
-
On the Manual Billing page, specify the Bill Amount as highlighted in the following image:
-
Click Save.This creates an OLT of the type of Manual Bill within the system as highlighted in the following image:
Thus, Manual Billing creates an OLT of the type of Manual Bill.
Steps performed by the system internally
When you create a contract of the ARR Calculation Type, Manual Interest Input, initially while you are creating the contract, the system updates the Interest Rate field on the contract as per what is defined in the Lending Product.
-
Before the system processes the billing (in other words, before the billing job runs), when you then create a manual OLT of the type Manual Bill, and then after that, when the billing job runs, it picks up this manual OLT and creates a bill of the specified Bill Amount.
Note:The billing job referred to here is ARRBillingDynamicJob.
Manual OLT needs to be created before the Next Due Generation Date. If you do not do that, then the system runs the normal billing job and creates the normal Interest Posted amount as per the schedules.
If you create the manual OLT after the billing job runs in SOD, then as the job has already run, then the bill has also already been created for the normal interest rate. Then this manual OLT will be considered for the next cycle when the job runs.
As the loan already has some interest created within, the system internally calculates the interest rate for that specific loan.
The system then updates the value of the Interest Remaining as the amount specified in the Bill Amount in the Manual Billing.
The system also updates the LAD and the Last Transaction Date as Manual Bill.
-
If the IPT job runs on the same date when its frequency is the same (it runs after the billing job), and if the Bill Amount specified is the same as the internal interest calculated, it takes the Interest Remaining amount and posts that amount.
Note:The IPT job referred to here is the ARRInterestPostingDynamicJob.
-
If this manually specified Bill Amount is not the same as the interest amount calculated by the system internally, then the system adjusts the difference between the two and stores it in a field called Interest Adjusted Amt. Thus, the system then calculates the following:
Interest Adjusted Amt = Bill Amount (as per what was specified in the Manual Billing) - interest amount that was calculated internally.
-
This Interest Adjusted Amt then gets adjusted in the Interest Posted amount to make the Interest Posted amount the same as the Bill Amount for that cycle as the loan is an Interest Only loan in an ARR-enabled loan.
For example, let us say, an ARR-enabled loan has an interest rate of 10%, and say the bill generated is $1,000 as Interest Posted is $1,000 in an Interest Only loan. Now, if you create a manual OLT with a Bill Amount of $1,100, then when the billing job runs, the difference of $100 is displayed on the OLT page in the Interest Adjusted Amt field.
After the billing job runs, when the IPT job runs, the Interest Posted amount of the IPT will be the same as the custom Billing Amount.
For example, after the billing job runs and when the IPT job runs, as $1,000 is the original Interest Posted amount and $100 is the Interest Adjusted Amt, the system internally adds the Interest Adjusted Amt to the total interest calculated for that cycle (that is $1,000) and the system displays the Interest Posted amount of the IPT as $1,100. In cases where the custom Bill amount of the OLT is $900, the Interest Adjusted Amt will be a negative amount of -100, and the Interest Posted amount of the IPT will be $900.
Reverse a manually created OLT on the UI
Steps
Go to the loan contract for which you want to reverse the manually created OLT.
Go to Transactions > Other(s).
Click the OLT that you want to reverse.
-
On the Other Loan Transaction page, click the drop-down arrow, and from the drop-down menu list, select Reverse Manual Bill as highlighted in the following image:
-
Click Confirm.
This reverses the manually created OLT.
How does the system behave when Manual Billing is done for the last bill in an Interest Only ARR-enabled loan?
In an Interest Only loan, the last bill will always be the sum of the principal amount and the interest amount. But the Manual Billing will only be of interest amount. So, internally, when the manual bill is getting generated, the system will add the principal amount to the interest amount to get the final bill amount. But if you do not create a manual OLT before the job runs, then the Bill Amount of the bill generated by the system will be calculated as follows:
Bill Amount = Total Payoff Amount - unpaid due amount that is already billed.
How does the system behave in cases when backdated actions are made after the manual OLT creation?
Let us you have created a manual OLT but have not cleared it. Then after the creation of OLT, say there is backdated payment. Now, if you want to change the amount of this OLT, you must reject it and recreate the OLT.
If any backdated actions are changing the balances, the system does not reject or reverse this OLT.
Can you customize the creation of the bill from the manual OLT?
Yes, you can customize the creation of the bill if you create a custom flag for it in the OLT. This custom flag must have the following API name: Cleared__c.
Sometimes, you may create an OLT manually with some Bill Amount, but it may require approval for the bill to be created and cleared for that Bill Amount. In such cases, you can make use of this custom flag to approve or not approve the creation of the bill with that Bill Amount.
The custom flag will indicate whether or not the system must create a bill for that OLT.
The custom flag that you create can have any label name, but the API name must be Cleared__c.
Usually, on the Due Generation date, the billing job picks up the OLT and generates a bill. However, if the value of the custom flag is set to false, then the system waits till the due date for the billing job to create a bill. If you set its value to true before the due date, the system will create a bill with the Bill Amount for the manual OLT and clear it. But, even on the due date, if you do not set its value to true, then the system rejects this manual OLT by setting the Rejected flag of the OLT to true and creates a bill for the internally calculated interest amount.
However, if the custom flag does not exist, then by default, the billing job picks the OLT and creates a bill of the Bill Amount, and clears the bill.
What happens when you reverse a manual OLT?
When you select a manually created OLT for reversal, and if that manual OLT was not approved (the custom flag was set to false) for creating the bill and hence was marked as rejected, then nothing will be picked up to reverse because it was not cleared at all.
When you select a manually created OLT for reversal, and if the custom clearing flag is true, then that means that the bill was approved, or if there is no custom clearing flag at all, then that means no approval was required for that bill to be created. In such cases, the system reverses this OLT and updates the loan to the state that was before the billing job was run. The system then reverses all the IPTs created after this bill's due date, including the IPT that is created on the due date too, and that too will be marked as reverse (if the IPT was created on the due date). After that, the Next Interest Posting Date, Next Due Date, and more will be updated on the loan, and the bill becomes non-primary or is discarded by setting the Primary flag of the bill to false.
Then you can create a manual OLT again or when the job runs next, the system will create the bill with the internally calculated interest.
Specify an interest manually with the help of an API
You can use the following API to create a manual bill where the bill amount would be the Interest Remaining amount in the loan:
createBill(): This API is used to create the bill manually.
You can also reverse this manually created bill transaction (OLT) with the help of the following API:
reverseManualBill(): This API is used to reverse the manually created bill.
For more information on these APIs, see the Global Abstract Classes > AbstractLoanActions > createBill and reverseManualBill sections of the Q2 Loan Servicing Global Methods guide.
Apply Alternative Reference Rates to a loan
Prerequisites
-
Integration Configuration is created if the interest is to be calculated by an external calculator.
Note:For more information on configuring the integration, see the Servicing Configuration > Integration Configurations section of the Q2 Loan Servicing Administration Guide.
Steps
To apply Alternative Reference Rates to a loan:
Create a Reference Rate Index
Log in to your Salesforce account.
Go to (App Launcher), and in the Search apps and items... box, search for Q2 Loan Servicing and click it.
Go to Servicing Configuration > Reference Rate Index.
-
In the New Reference Rate Index window, provide the details as explained in the following table, and then click Save.
Field Action and Description Reference Rate Index Name Specify a Reference Rate Index Name. For example, specify SONIA. Look Back Days Specify the number of working days to look back to get the interest rate to be applied today. Rounding Precision Specify the number of decimal places to which the interest rate should be rounded up.
Create a Lending Product with the Alternative Reference Rate configuration
-
Create a simple Loan Product as explained in the Create a Simple Loan Product section of this guide. While creating, ensure that the following details are provided to create a lending product with an Alternative Reference Rate configuration:
-
Interest Type: Select Alternative Reference Rate.
-
Reference Rate Index: Select the Reference Rate Index created in the preceding section. For example, SONIA.
If it is not created, click New Reference Rate Index as highlighted in the following image and then follow the steps as provided in the preceding section:
-
The Actual Interest Only Payments flag must be set to true.
Note:This flag is set to true by default during the creation of the Lending Product.
-
After the Lending Product is created, click Edit Additional Parameters.
-
In the Additional Parameters, do the following as highlighted:
Set the Skip Amortization Schedule Generation flag to true.
-
Select the ARR Calculation Type as either one of the following:
Note:You must select one of the two options. You cannot select None.
-
External Interest Calculator: This will help the system to make an API call to get the external interest rates.
Note:For more information on this, see the preceding ARR Calculation Type: External Interest Calculator section.
-
Manual Interest Input: To be able to manually specify an interest amount to the system, you have to first specify a bill amount that would be taken as the Interest Posted amount for an Interest Only loan in an ARR-enabled loan product. Selecting Manual Interest Input as an ARR Calculation Type gives you the ability to select the Manual Billing option from the Loan Actions of the Loan Quick Menu. When you select Manual Billing, you can then specify a custom Bill Amount that would become the Interest Posted amount for your loan.
Note:For more information on this, see the preceding ARR Calculation Type: Manual Interest Input section.
-
This configures the Lending Product for Alternative Reference Rates.
Create a contract from the preceding Lending Product
Steps
-
While creating a contract, select the lending product that has the Alternative Reference Rate configured.
The Interest Type will automatically be selected as the Alternative Reference Rate and the Reference Rate Type will automatically be selected as per what was created for the lending product. Both the Interest Type and the Reference Rate Index cannot be changed while creating a contract. The Reference Rate Index field will only be used if the Interest Type is selected as Alternative Reference Rate. The Interest Rate will also be automatically updated from the external calculator.
Ensure the following while creating an ARR-configured contract:
-
The Actual Interest Only Payments flag is set to True in the contract to use the Alternative Reference Rates.
Note:This flag is set to True by default during the creation of the Lending Product.
- In the Additional Parameters section, the Skip Amortization Schedule Generation flag is set to True.
-
Schedule Generation
Schedules are not needed for the ARR-configured contracts, and hence the Skip Amortization Schedule flag in the Additional Parameters of the Lending Product is recommended to be set to True.
Scope of support in an ARR-configured contract
Alternative Reference Rates are only supported in Interest Only Simple Loans. For contracts with Alternative Reference Rate as Interest Type, all the payments should be Interest Only except for the balloon payment.
Future Dated Payoff Quote is not supported for ARR-configured loans.
The system does not support non-IPT loans for ARR and displays an error message indicating that ARR cannot be used for non-IPT loans
When the ARR Calculation Type is External Interest Calculator, the system does not support if the Pre-bill days specified are greater than the look-back days and displays an error message indicating that Pre bill days cannot be greater than look-back days.
The system does not support the Salesforce approval process for ARR-configured contracts for both payments and disbursements.
ARR-specific jobs and corresponding DAG
ARR (Alternative Reference Rates) is a new feature released in the Winter'22 release.
Following are the jobs added to support the ARR functionality:
ARRBillingDynamicJob
ARRInterestPostingDynamicJob
ARRPaymentTransactionCreationDynamicJob
ARRLoanClosureDynamicJob
When you upgrade to the Winter'22 release, these ARR jobs must be included in the SOD/EOD DAG. The DAG framework, named Default Start of Day Dynamic Jobs With Alternative Reference Rates, is created once you upgrade to Winter'22. It includes the Alternative Reference Rates (ARR) jobs. You must add this DAG framework to the SOD/EOD DAG to add the ARR jobs to the SOD/EOD DAG.
For more information on the upgrade steps to add the new DAG framework to the SOD/EOD DAG, see the Q2 Loan Servicing(CL Loan) and Marketplace Upgrade Steps > Summer'22 (3.9001) to Winter'22 (4.1012) section of the Q2 Product Upgrade Guide.
Global methods that you can use
You can also use the following APIs for your custom code to use certain ARR functionalities:
clearDisbursmentTransaction(): This API is created to support the custom approval process, as the Salesforce approval process will not work for ARR-configured contracts.
createBill(): This API is used to create the bill manually.
reverseManualBill(): This API is used to reverse the manually created bill.
For more information on the ARR-related global APIs, see the Change Record > Winter'22 Change Record and Change Record > Winter'22 Patch Change Record sections of the Q2 Loan Servicing Global Methods guide.
External customizations
If there are any external customizations or customizations outside the Q2 Loan Servicing product that are planned for the ARR-configured contracts, then the following must be taken care of:
- Direct inserts for objects, such as LPT and Disbursement Transaction.
- LAD events outside the Q2 Loan Servicing products.
More on ARR
Alternative Reference Rates (ARR) are nothing but risk-free interest rates. Risk-free interest rates mean that the risk is so low that it is as good as negligible. ARRs were introduced by Risk Free Rate Working Group (RFRWG) to replace LIBOR due to the LIBOR scandal. The risk-free interest rate also referred to as the risk-free rate of return, is a theoretical interest rate of an investment that carries zero risk. In actual terms, the risk-free interest rate is assumed to be equal to the interest rate paid on a three-month government Treasury bill, which is considered to be one of the safest investments that it’s possible to make. Technically, the risk-free interest rate is purely theoretical, as all investments have some type of risk attached to them. Having said that, although it is possible for the government to default on its securities, the likelihood of this happening is enormously low.
The Alternative Reference Rates Committee (ARRC) is a group of private-sector financial institutions that have been working with government agencies since 2014 to help the United States transition from the London Interbank Offered Rate (LIBOR) benchmark to the secured overnight financingrate (SOFR) benchmark.
The LIBOR scandal involved the manipulation of interest rates by more than a dozen major banks across the world to raise or lower the reported London Interbank Offered Rate and increase their traders' profits in the derivatives market.
The interest amount of an ARR can be calculated in the following two ways:
Interest Amount Calculation for Direct Deal Contracts: Direct Deal Contracts are contracts where a third party provides the interest amount directly with the help of integration. This is done using the Q2 Integration Framework between the Loan Servicing and the third party.
Interest Amount Calculation for Agented Deal Contracts: Agented Deal Contracts are contracts where an agent provides the interest amount to be billed.