In this section, we will running through how to build and amend structures with our Structuring Tool. In the Starting a Structure section, we saw how we can start a structure using the below.
- Create a new structure
- Load a previous deal structure from a template
- Load from OM (Offering Memorandum)
Now in this section, we will be creating Waterfall Components, Priority of Payments, and Triggers in a deal. A reminder is that you can save any of your progress as long as the Securitization Properties have been filled out with the Save Template button.
Waterfall Components
Whether you are creating a new structure or leveraging a prior deal framework, we can create and/or amend the following variables in a structure:
Tranches
- Size
- Tranche Type
- Day Count and Accrual Period
- Coupon
- Maturity Date
Fees
- Fee Basis Type (fixed dollar, collateral balance, per loan)
- Dollar Amount or Minimum
- Frequency
- Cumulative or Non-Cumulative
Accounts (Reserve, Prefunding, Revolving and Payment Account)
- Starting Amount
- Minimum Amount
- Minimum Type Basis (fixed dollar, collateral balance, note balance)
Users do have ability to have one remittance account (Payment Account) or separate it into two remittance accounts (principal and interest) with the Initialize Payment Account(s) +
Button.
Note: Using either one will wipe out all existing principal/interest/payment remittance accounts.
Priority of Payments
The purple addition sign allows for users to add different features for Payment Rules, Conditions, and Calculations.
Payment Rules
Users can define and edit the exact priority of payments of a waterfall with the different Waterfall Components that we have built or loaded from a template/OM.
Whether you like to have every payment rule separate or consolidate them together, you have the ability to do what you want. Users can define:
- Where the payment is coming from - collection account vs. reserve account
- To what tranches/fees/accounts
- Style - pro rata vs. sequential
- Up to Amount - limiting for payment schedules or credit enhancement guidelines
- Conditions - enabling triggers or change in structures
Calculations
Users can build calculations that can be referenced in Conditions (triggers) that are used in the Priority of Payments Rules to define structural changes.
Some formula guidelines to abide by are:
Components from Waterfall Components, and by adding a dot (.) after the closing bracket it will show the attributes you can use (auto complete) and can confirm with the tab key:
Tranche: you need to select a tranche by using square bracket
tranche[A]
Then after dot you can use attributes.
tranche[A].balance
Account : you need to select a account by using square bracket
account[RESERVE]
Then after dot you can use attributes.
account[RESERVE].startingBalance
Collateral: most of time use
collateral[ALL]
Then after dot you can use attributes.
collateral[ALL].endingBalance
Interest rates
sofr.90d.compounded
cmt.1y
Basic Math Operators
+
,-
,*
,/
,%
>
,>=
,<
,<=
,=
!
,&&
,||
Time Series Operators:
SUM: summing up entire history:
sum(collateral[ALL].delinquent / collateral[ALL].endingBalance)
Moving Average:
moving_avg(collateral[ALL].delinquent, 3)
Schedule:
[2023-01-01:0.02; 2023-06-01:0.03; 2024-01-01:0.05]
So floating Rate will look like:
sofr + [2023-01-01:0.012;2024-01-01:0.015]
Some reasons why you cannot save or the editor is showing invalid (most error messages will be displayed)
- Formula uses undefined componenets/functions/operators
- Formula is not resulting a number or boolean
- Usage of undefined calculation
- Cross reference (calculation A uses B and Calculation B uses A)
The video below showcases an Overcollateralization Calculation example:
Conditions
These are the triggers that can change the structure if referenced in the Priority of Payment Rules. Users can reference specific calculations we have defined in the Calculation by using @ symbol. They also have access to pre-defined variables like YSOC, CNL, and NET_WAC.
Time series operators (below) are powerful in this subsection as certain triggers may ramp up over time or have static values.
Schedule: [2023-01-01:0.02; 2023-06-01:0.03; 2024-01-01:0.05]
This functionality can be seen in the video below: