Termination
Break Clauses
You can terminate trades with or without break clauses. Break clauses can be defined at the trade level using the "product" menu item “Cash Settle Info”.
See Cash Settlement for details.
Note that the definition and review of break clauses is for information purposes only. They do not control when a trade can actually be terminated. The termination process is manual in any case.
Termination Window
The Termination window allows terminating a trade fully or partially. When terminating a trade, you can specify the reason of the termination: assignment, novation, etc.
From a trade window, choose Back Office > Terminate to terminate a trade.
Bulk Termination
You can also terminate trades in bulk using Trade Lifecycle > Termination > Terminate.
See Bulk Termination Report for details.
Contents
- Generating a Termination Confirmation
1. Setup Requirements
Workflow
Make sure that the transition VERIFIED - TERMINATE - TERMINATED is configured in the trade workflow with Create Task checked. TERMINATE is the default action but you can configure the action of your choice.
Possible termination actions must be defined in the domain "tradeTerminationAction".
Ⓘ [NOTE: You can only terminate a trade in VERIFIED status (out-of-the-box)]
Also, the rule CheckValidAction should be added to the domain "mandatoryTradeRule" so that the TERMINATE action cannot be applied manually but from the Termination window only.
Environment Properties
The following environment properties impact the behavior of the Termination window.
• | ALLOW_CHANGE_ON_TERMINATION - The default is “true” to save any changes to the trade along with a termination. If false, the system checks for any change in the trade fields before displaying the Termination window, and removes the changes. So that changes made to the trade prior to termination are not saved along. |
• | TERM_FEE_CALC_INFO - Set to "true" to display details about the termination fee calculation in the Fee Description field. |
• | TRADE_TRANSFER_RESET_REFS_WHEN_NOT_AUTO_FEED - See Partial Termination below for details. |
Domain Values
A number of domains control the behavior of the Termination process. If these domains are not available, you can add them to the domain "domainName".
• | Default fee type - The default fee type to be computed for the Termination window can be set in domain "defaultTerminationFeeType". Note that by default, the fee type TERMINATION_FEE is specified in domain "defaultTerminationFeeType". |
You can define the default fee type for partial terminations in domain "defaultPartialTerminationFeeType".
You can define the default fee type for full terminations in domain "defaultFullTerminationFeeType".
The default pricer measure associated with a fee type can be set in the Comment field (for example ACCRUAL_BO) for these domains.
If a withholding tax is defined on the selected fee types, it will be computed upon termination as well.
Refer to Fee Definition documentation for setup details.
If there is a termination fee on the trade, we remove all interest flows having payment date after termination effective date.
• | Partial termination fee propagation - In case of a partial termination, the fee types that you want to propagate to the new trade must be added to the domain "propagateFees". The fee amounts for those fee types will be propagated to the new trade based on the partial termination percentage. |
You can also be specific for each termination reason, by creating the domain "propagateFees.<termination reason>", like for example "propagetFees.Novation". If such a domain exists for a given termination reason, it will override the domain "propagateFees".
For the product types in domain "propagateFeesWithoutAccruals", accruals are not computed on propagated fees for product types.
• | Keeping fees - If you want to keep transfers for upfront fees that have not yet been paid, you can add them to the domain "keepUpFrontFeeType" – This will apply to all product types. If you want to keep different types of fees based on the product type, you can create the domains "keepUpFrontFeeType.<product type>" as needed. For example, you can keep UPFRONT_FEE for CDS Indices only by adding UPFRONT_FEE to "keepUpFrontFeeType.CDSIndex". |
• | Termination reason - You can add termination reasons to the domain "keyword.terminationReason". |
You can also define termination reasons by product type by creating domains in the form "keyword.TerminationReason.<ProductType>", for example "keyword.TerminationReason.Swap", and set the termination reasons there.
For a given product type, if a specific domain by product type exists, it will be used to display the available termination reasons, otherwise, the default domain will be used.
• | Termination fee date - The termination fee date is defaulted to the termination trade date + "offset" specified in the Fee Definition. It is rolled using the FOLLOWING date roll convention, if it falls on a non-business day. |
It is also possible to define a date lag and date roll at the Fee Grid level by product type to determine the fee date. The fee TERMINATION_FEE should be set with Calculator = FeeGrid. In the Fee Grid window, you can define fee grids by product type with Calculator = "None", and set the date lag and date roll as needed. If this is set, it will be used by default, and the offset specified in the Fee Definition will be ignored.
You can also default the termination fee date using the currency / currency pair spot days:
– | Define the domain "TermDays.<product type>" or "TermDays.<product family>" – For example "TermDays.FXOption". |
– | Set the value to "Fee:CurrencySpotDays". |
• | Effective date - The effective date defaults to Trade Date + number of days specified in the domain "TermDays.<product type>" or "TermDays.<product family>". For example, if you define the domain "TermDays.Swap", and set the value to 2, the effective date will default to trade date + 2 days. |
If the number of days is typed as nCal (for example 2Cal) then it means n CALENDAR days, otherwise it means n BUSINESS days relative to trade holidays.
You can also set the value to "Fee:CurrencySpotDays" in that domain to set the number of days as follows:
– | For single currency trades, the number of days are the spot days of the Currency Definition. |
– | For FX trades and FX Option trades, the number of days are the spot days of the Currency Pair Definition. |
• | Early termination of repo trades with interim cashflows - Applies to the repo trade sub-types Standard, Triparty, RSL, and Pool, with periodic payments (Cash.Frequency not set to ZC), whether customized or not. |
When an early termination is processed, a SPECIFIC FIRST date is set equal to the first cashflow end date to keep all past cashflows unchanged. To enable this process, you must add the following values to the "EventTypeActionEventAttributes" domain:
– | EndStubDate |
– | StartStubDate |
– | StubRule |
• | You can set default values by product type for the following fields: Include Fee, Pay Intervening Flows, FFCP Option, Principal Exchange in the domain ”Termination.<productType>” in the form: |
– | Value = TerminationIncludeFee, TerminationPayIntFlow, TerminationFullFirstCalculationPeriod, or TerminationPrincipalExchange |
– | Comment = Default value: true or false |
Example: domain “Termination.FXOption”:
– | Value = TerminationIncludeFee |
– | Comment = true |
As a result, the Include Fee checkbox will be checked by default for FX Options in the Termination window.
• | Termination of open repos - By default, the callable date is not used in the matching of the canceled transfer (this way, no new transfer is created even if there is a mismatch of the callable date). If you want to use the callable date in the matching of the canceled transfer, you need to add Value = true to the domain "SecFinance.ForceCallableDateXferMatchingOnStartDate". |
2. Terminating a Trade
Enter the fields as applicable and click Calculate for computing the trade value at the time of the termination and associated fees. The fields are described below.
The fields may differ depending on the type of trade being terminated.
Sample swap termination
Then click Apply.
The trade is changed to status TERMINATED.
The following trade keywords are populated, depending on the type of termination.
If the trade contains fees for which the fee type is defined in domain "keepUpFrontFeeType", the product's maturity date is set to the maximum value "End Date" of all the fee flows - This maturity date is also set in the FinalMatDate trade keyword (if there are no upfront fees, FinalMatDate = TerminationDate).
The following keywords are also populated in case of novation:
• | LastNovationTD = Termination Trade Date |
• | LastNovationDate = Termination Effective Date |
2.1 Fields Details
Fields |
Description |
||||||
Termination Trade Date Time |
The default termination date is the current date. Modify as applicable. Ⓘ [NOTE: You cannot terminate a trade after its end date] |
||||||
Effective Date |
Value date of the termination. |
||||||
Termination Reason |
Select the reason of the termination. Assigned You will be prompted to select an assignee and an assignor. BookTransfer You will be prompted to select a destination book. Ⓘ [NOTE: Book transfer is only supported for Equity/Rate and Equity/Equity leg choices for Equity Linked Swap trades.] Ⓘ [NOTE: The fee type currently defaults to which specified in domain "defaultTerminationFeeType" (likely TERMINATION_FEE) - You need to manually change it to PL_TRANSFER] NotionalIncrease Enter the % of notional to increase or the amount of notional to increase. When the notional is increased, the original trade is canceled / terminated and a new trade is created with the new notional. Novation You will be prompted to select a transferor (the party that terminates the trade) and a transferee (the new party). If the transfer role is CounterParty, the trade with the counterparty is terminated, and a new trade is created between the processing org and the selected transferee. There is no fee by default. If the transfer role is ProcessingOrg, the trade with the processing organization is terminated. There is a new trade between the counterparty and the selected transferee but this trade is not reflected in Calypso. The fee’s payer / receiver is the transferee. Prepayment Only applies to Advance trades. Reset Only applies to Brazilian Reset Swap trades. After manually terminating the trade, the system creates a termination fee based on mark to market of the existing trade then creates a new trade identical to the first, which can be altered as necessary. The Start Date for the new trade is generated to equal the Reset Date. |
||||||
Partial |
Check the "Partial" checkbox to perform a partial termination as applicable. You will be prompted to enter a partial notional as shown below.
Ⓘ [NOTE: Partial termination is not available if the cashflows have been customized] |
||||||
Termination Action |
Select the termination action. |
||||||
Include Fee |
Check the "Include Fee" checkbox to specify fees, and insert and remove fees as applicable.
Select a fee type, a fee date, a fee direction, a fee currency, and a fee recipient. Select a pricer measure for computing the fee. It will be calculated when you click Calculate. You can also directly enter a fee amount.
|
||||||
Pay Intervening Flows |
Check the "Pay Intervening Flows" checkbox to calculate the termination fee without including the cashflows between the termination trade date and the termination effective date. Intervening flows will be paid separately from the termination fee. Also, the transfers corresponding to the intervening flows will not be canceled. Otherwise, the termination fee will include the cashflows between the termination trade date and the termination effective date. |
||||||
FFCP Option |
Full First Calculation Period. Used in the case of partial termination to determine the Xfer Trade Date and Pmt Begin Date on the first cashflow of the new trade. “FFCP Option” Checked On the new trade, cashflows accrue from the last applicable Period End Date (usually same as Payment Date) for each party under the old trade; if the first Period End Date has not yet occurred for a party, cashflows accrue from the Effective Date of the old trade. The new Xfer trade date is set to the old trade date. Example – Partial Termination on 05/23/2007.
Xfer Trade Date and Pmt Begin Date are unchanged on the first cashflow of the new trade. “FFCP Option” Unchecked On the new trade, cashflows accrue from the effective termination date. Example – Partial Termination on 05/23/2007.
Xfer Trade Date and Pmt Begin Date are set to the termination effective date on the first cashflow of the new trade. |
||||||
Pricer Measure (Fee calculation) |
Select the pricer measures you want to compute for fee calculation. Their values are displayed when you click Calculate. |
||||||
Interest Clean-up |
This only applies to Swap, Cap/Floor and Structured Flows trades (it does not apply to SwapCrossCurrency and SwapNonDeliverable trades). For swaps it is unchecked by default. For other types of trades, it keeps the last setting. Check to perform interest cleanup upon termination. When you click Calculate, the accrual pricer measures are computed and their value is displayed.
It generates a transfer to payout the accrued interest as of the termination effective date. |
||||||
Exchange Principal |
This only applies when there is a principal exchange on the trade. If trade keyword TerminationPrincipalExchange = Y, this checkbox appears checked. See "Principal Exchange" below for details. |
||||||
NPV Include Cost |
This only applies to Cash trades. Check or clear to override the pricing parameter NPV_INCLUDE_COST for the termination. For reference, NPV_INCLUDE_COST can be set to True to subtract the initial settlement amount from the NPV, or false otherwise. |
||||||
Override Final Interest |
This only applies to the termination of repos and security lending trades. You can override the amount of repo interest or security lending interest in that field.
|
||||||
SNAC |
This only applies to the termination of standard fixed coupon Credit Default Swaps. Enter a spread in basis points or fee percentage for computing the fee.
|
||||||
Use flat prices Explode fees |
This only applies to the termination of Performance Swaps. Check the "Use flat prices" checkbox to use flat prices for computing the fee. The flat prices are populated from the quote set, but you can enter the closing price (i.e. the price at which the trade is to be terminated) of the underlying assets and FX rates as needed. You can check "Explode fees" to break the termination fee into individual components of the trade. If you explode the fee, the following fee types are created. Otherwise, a single fee contains the total fee amount.
Ⓘ |
Specific Panel
Fields |
Description |
Interest Clean-up |
This only applies to Swap, Cap/Floor and Structured Flows trades (it does not apply to SwapCrossCurrency and SwapNonDeliverable trades). For swaps it is unchecked by default. For other types of trades, it keeps the last setting. Check to perform interest cleanup upon termination. When you click Calculate, the accrual pricer measures are computed and their value is displayed.
It generates a transfer to payout the accrued interest as of the termination effective date.
|
Apply Pmt Lag on Interest Clean-Up: |
This field will provide users with the ability to use Pmt Lag of the swap leg to be applied on Pmt Dt of Interest Clean-up cashflow. It will only have an impact when Interest Clean-up is checked (i.e. set to TRUE). It is supported only for Swaps and Cancellable Swaps (excluding SwapCrossCurrency and SwapNonDeliverable as Interest Clean-up isn't supported for these products) . When the trade is terminated with Interest Clean-up set to true and the flag (on Pmt Lag) is checked, Pmt Date of interest clean up transfer = Termination Effective + Pmt Lag of the Swap Leg. The transfer settles on this Pmt Date. When the trade is terminated with Interest Clean-up set to true and the flag (on Pmt Lag) is un-checked, Pmt Date of interest clean up transfer = Termination Effective or Delivery Date. The transfer settles on this Pmt Date.
Default value of this flag in Swap Termination Window is as below:
Ⓘ NOTE: The flag can be manually checked or unchecked by users according to their requirements. To summarize, If trade cashflows use a Pmt Lag, the same lag will now by default get applied to the settle date of Interest Clean Up transfers created from swap terminations. If the Interest Clean Up transfer should be paid on the termination effective date, users must now set the flag to false.
|
Apply Term. Pmt Lag On |
This only applies to Structured Flows trades in case of full termination. Select the cashflows where the termination payment lag applies: Interest, Principal, Both, None or not set. Default is not set, which means that no lag applied to Principal and lag applied to Interest. |
2.2 Process Details
Compounding Trades
When doing a partial termination on a compounding trade, the PRINCIPAL transfer takes into account the part of interest that is not capitalized.
On the new trade, you can adjust the initial compounding notional as needed using Swap > Compounding Adjustments.
» | Enter the compounding notional and click Apply. |
Cash Trades
For Simple MM and Cash trades, the system also generates an INTEREST flow that computes the interest up to the termination date. For B2B trades, the termination fee is not needed anymore – You can uncheck the “Include Fee” checkbox.
The behavior of "Pay Intervening Flows" is the following:
Pay Intervening Flows = True:
• | Interests between termination trade date and termination effective date are paid/received as normal transfers at the date at which they are supposed to be paid/received. They stay at their current status (e.g. VERIFIED). |
• | Future interests (after termination effective date) are discounted and included in TERMINATION_FEE. |
• | Future principals or the sum of future principals in case of amortization (after termination effective date) are not discounted but included in a unique transfer paid/received on the termination effective date. |
Pay Intervening Flows = False:
• | Interests between termination trade date and termination effective date are discounted and included in TERMINATION_FEE. The intervening flows are CANCELED. |
• | Future interests (after the termination effective date) are discounted and included in TERMINATION_FEE. |
• | Future principals or the sum of future principals in case of amortization (after termination effective date) are discounted and included in TERMINATION_FEE. |
Partial Termination
For a partial termination, the trade is changed to status TERMINATED. A new trade is created for the remaining notional. In the Cashflows panel of the new trade, you only see the cashflows where Pmt End Date > Termination Date – To see all cashflows, choose Cashflows > Show Consolidated CashFlows.
For a partial novation, the trade is changed to status TERMINATED. Two new trades are created: one with the original counterparty for the remaining notional, and one with the new counterparty for the novated notional.
All transfers that were already generated with a previous settlement date will be canceled and replaced by a new transfer using the new settlement date according to the transfer workflow.
Ⓘ [NOTE: Intervening flows are not canceled if the “Pay Intervening Flows” checkbox is checked - In this case, intervening flows are paid separately (intervening flows are cashflows between the termination trade date and the termination effective date)]
When a trade with an internal / external reference is partially terminated, the internal / external reference is set on the trade resulting from the partial termination, except in the following circumstances:
• | Internal Reference |
When AUTO_FEED_INTERNAL_REF = True, if the termination type is set in domain “autoFeedInternalRefTerminationType”, the new trades resulting from a partial termination will have a new internal reference. Otherwise, they will have the internal reference of the parent trades.
• | External Reference |
When AUTO_FEED_EXTERNAL_REF = True, if the termination type is set in domain “autoFeedExternalRefTerminationType”, the new trades resulting from a partial termination will have a new external reference. Otherwise, they will have the external reference of the parent trades.
Ⓘ [NOTE: “Novation” is added to both domains by default - You should add "PartialNovation" to these domains as well]
• | If AUTO_FEED_EXTERNAL_REF = False or AUTO_FEED_INTERNAL_REF = False, and TRADE_TRANSFER_RESET_REFS_WHEN_NOT_AUTO_FEED = True, the fields external reference / internal reference respectively are reset (blank) upon Termination. |
Paying Termination Fee on Next Interest Payment Date
To support this functionality, you can net together transfers coming from more than two trades.
By default, when you perform a partial termination, the system will net together the terminated trade and the new trade using the netting type RollOver. If you perform several successive partial terminations in the same interest calculation period (and interest is paid on next payment date), you can net all the fees together using netting type RollOverTerm.
Setup requirements:
• | Set the environment property AUTO_FEED_INTERNAL_REF to true. Thus the system will store the trade ID of the parent in the InternalReference field of the child trade. This ID will be propagated to all child trades in case of successive partial terminations. |
• | Define netting type RollOverTerm with the same netting keys as RollOver, and the netting key InternalReference (if it is not available for selection, add it to domain "XferAttributes"). |
This netting type will allow the system to net all transfers coming from the same parent trade if they fall on the same day.
Example:
• | Partially terminate a trade on 09/03/2009 and interest is paid on next payment date 10/15/2009 |
– | Trade 1: TERMINATION_FEE = 250 AUD with VD=10/15/2009 |
– | Trade 2: Interest Transfer = 2500 AUD with VD=10/15/2009 |
• | Now partially terminate Trade 2 on 09/15/2009 and interest is paid on next payment date 10/15/2009 |
– | Trade 1: TERMINATION_FEE = 250 AUD with VD=10/15/2009 |
– | Trade 2: TERMINATION_FEE = 1000 AUD with VD=10/15/2009 |
– | Trade 3: Interest Transfer = 600 AUD with VD=10/15/2009 |
The new netting type RollOverTerm will net these three transfers.
Fee Propagation
The Fee Type is in domain "propagateFees", or "propagateFees.<termination_reason>".
TerminationDate = Termination Effective Date.
Intervening Flows = All the Fees with Fee Date after TerminationTradeDate and less or equal than TerminationDate.
TerminationTradeDate < Intervening Flows <= TerminationDate.
Int. Flows = Y, means that the Fees included in the Intervening Flows will be paid on the original Trade.
Int. Flows = N, means that the Fees included in the Intervening Flows will not be paid on the original Trade (they will be canceled).
Amortizing Fees = Fees with End Date different than Start Date. Here we consider fees with Fee End Date > than TerminationDate.
Fees | Intervening Flows | Original Trade | New Trade |
---|---|---|---|
Non-Amortizing Fees |
Y |
All the Fees except the Fees after Termination Date stay on the Original Trade and are not canceled. Only the Fees with Fee Date after Termination Date are canceled. |
Only the Fee after Termination Date are propagated and a Transfer is generated for this Fee. Fee Amount = Original Fee Amount - % of Partial Termination. |
Non-Amortizing Fees |
N |
All the Transfers for Fees are canceled except the Fees with Fee Date before or equal to TerminationTradeDate. All the Transfers for Fees corresponding to Int. Flows are canceled. |
Only the Fee with Fee Date after Termination Date are propagated and a Transfer is generated only for this Fee. Fee Amount = Original Fee Amount - % of Partial termination. |
Amortizing Fees |
Y |
All the Transfers for Amortizing Fees (except the Fees with Fee Date after Termination Date) stay on the Original Trade and are not canceled. Only the Transfer for Fees with Fee Date after Term. Date are canceled. |
All Amortizing Fees are propagated. The Amount of these Fees (except the Fees with Fee Date After TerminationDate) = Original Amount – Accrual -% of Partial Termination. The Amount of the Fees with Fee Date After or equal to TerminationDate = Original Amount – % of Partial Termination. A Transfer is generated only for Fees with Fee Date after TerminationDate. Note that for all propagated Fees, with "Fee Date" equal Termination Trade Date or Termination Effective Date or between these 2 Termination Dates: a Known Date is added on these Fees on newly generated Trade. Known Date = TerminationTradeDate - 1. This has been done in order to do not have any consequence on Pricing of New Trade and on Transfer generation. (The Fees are propagated for Amortization need, but no Transfers are generated for them - as they have already been paid on Original Trade). |
Amortizing Fees |
N |
All the Transfers for Amortizing Fees are canceled except the Fees with Fee Date before or equal to TerminationTradeDate. All the Fees corresponding to Int. Flows and the Fees with Fee date greater then TerminationDate are canceled. |
All Amortizing Fees are propagated. The Amount of these Fees (except the Fees with Fee Date After TerminationDate) = Original Amount – Accrual -% of Partial Termination. The Amount of the Fees with Fee Date After or equal to TerminationDate = Original Amount – % of Partial Termination. A Transfer is generated only for Fees with Fee Date after TerminationDate. Note that for all propagated Fees, with "Fee Date" equal Termination Trade Date or Termination Effective Date or between these 2 Termination Dates: a Known Date is added on these Fees on newly generated Trade. Known Date = TerminationTradeDate - 1. This has been done in order to do not have any consequence on Pricing of New Trade and on Transfer generation. (The Fees are propagated for Amortization need, but no Transfers are generated for them - as they have already been paid on Original Trade). |
Principal Exchange
Use Cases | Original Trade | New Trade |
---|---|---|
Full Termination Principal Exchange = Y Pay Int Flows = Y |
Any intervening INTEREST, PRINCIPAL, PRINCIPAL_ADJ transfers for current period are not canceled. All future PRINCIPAL transfers are canceled. A new PRINCIPAL transfer is created using the Termination Effective Date and the sum of all future PRINCIPAL transfers. A new TERMINATION_FEE transfer is created using the Termination Effective Date. If Termination Effective Date > Today, NPV for trade includes PV Disc for current period + sum of all future PRINCIPAL amounts + termination fee discounted by the current period's discount factor. It is zero otherwise. Cashflow panel shows PV Disc amount for current period if payment falls within intervening period |
N/A |
Full Termination Principal Exchange = N Pay Int Flows = N |
All future INTEREST, PRINCIPAL, PRINCIPAL_ADJ transfers are canceled. A new TERMINATION_FEE transfer is created using the Termination Effective Date. If Termination Effective Date > today, NPV on trade includes termination fee discounted by the current period's discount factor. It is zero otherwise. Cashflow panel shows zero amounts in PV Disc column. |
N/A |
Full Termination Principal Exchange = N Pay Int Flows = Y |
Any intervening INTEREST, PRINCIPAL, PRINCIPAL_ADJ transfers for current period are not canceled. All future PRINCIPAL transfers are canceled. A new TERMINATION_FEE transfer is created using the Termination Effective Date. If Termination Effective Date > today, NPV for trade is the PV Disc for current period + termination fee discounted by the current period's discount factor. It is zero otherwise. Cashflow panel shows PV Disc amount for current period if payment falls within intervening period. |
N/A |
Full Termination Principal Exchange = Y Pay Int Flows = N |
All future INTEREST, PRINCIPAL, PRINCIPAL_ADJ transfers are canceled. A new PRINCIPAL transfer is created using the Termination Effective Date and the sum of all future PRINCIPAL transfers. A new TERMINATION_FEE transfer is created using the Termination Effective Date. If Termination Effective Date > today, NPV for trade includes sum of all future PRINCIPAL amounts + termination fee discounted by the current period's discount factor. It is zero otherwise. Cashflow panel shows zero amounts in PV Disc column. |
N/A |
Partial Termination Principal Exchange = Y Pay Int Flows = Y |
Any intervening INTEREST, PRINCIPAL, PRINCIPAL_ADJ transfers for current period are not canceled. All future PRINCIPAL transfers are canceled. A new PRINCIPAL transfer is created using the Termination Effective Date and the sum of all future PRINCIPAL transfers. A new TERMINATION_FEE transfer is created using the Termination Effective Date. If Termination Effective Date > today, NPV for trade includes PV Disc for current period + sum of all future PRINCIPAL amounts + termination fee discounted by the current period's discount factor. It is zero otherwise. Cashflow panel shows PV Disc amount for current period if payment falls within intervening period |
If the original trade includes "Initial" exchange, the flag remains checked on new trade. Initial PRINCIPAL transfers for the adjusted notional amount are created for the Termination Effective Date. Other INTEREST, PRINCIPAL, PRINCIPAL_ADJ transfers and cashflows are created as needed. |
Partial Termination Principal Exchange = N Pay Int Flows = N |
All future INTEREST, PRINCIPAL, PRINCIPAL_ADJ transfers are canceled. A new TERMINATION_FEE transfer is created using the Termination Effective Date. If Termination Effective Date > today, NPV on trade includes termination fee discounted by the current period's discount factor. It is zero otherwise. Cashflow panel shows zero amounts in PV Disc column. |
If the original trade includes "Initial" exchange, the flag is UNCHECKED on new trade. Initial PRINCIPAL transfers for the adjusted notional amount are NOT created for the Termination Effective Date. Other future INTEREST, PRINCIPAL, PRINCIPAL_ADJ transfers and cashflows are created as needed. |
Partial Termination Principal Exchange = N Pay Int Flows = Y |
Any intervening INTEREST, PRINCIPAL, PRINCIPAL_ADJ transfers for current period are not canceled. All future PRINCIPAL transfers are canceled. A new TERMINATION_FEE transfer is created using the Termination Effective Date. If Termination Effective Date > today, NPV for trade is the PV Disc for current period + termination fee discounted by the current period's discount factor. It is zero otherwise. Cashflow panel shows PV Disc amount for current period if payment falls within intervening period |
If the original trade includes "Initial" exchange, the flag is UNCHECKED on new trade. Initial PRINCIPAL transfers for the adjusted notional amount are NOT created for the Termination Effective Date. Other future INTEREST, PRINCIPAL, PRINCIPAL_ADJ transfers and cashflows are created as needed. |
Partial Termination Principal Exchange = Y Pay Int Flows = N |
All future INTEREST, PRINCIPAL, PRINCIPAL_ADJ transfers are canceled. A new PRINCIPAL transfer is created using the Termination Effective Date and the sum of all future PRINCIPAL transfers. A new TERMINATION_FEE transfer is created using the Termination Effective Date. If Termination Effective Date > today, NPV for trade includes sum of all future PRINCIPAL amounts + termination fee discounted by the current period's discount factor. It is zero otherwise. Cashflow panel shows zero amounts in PV Disc column. |
If the original trade includes "Initial" exchange, the flag remains checked on new trade. Initial PRINCIPAL transfers for the adjusted notional amount are created. Other INTEREST, PRINCIPAL, PRINCIPAL_ADJ transfers and cashflows are created as needed. |
Equity Swap Trades
Explode Fees
When terminating Equity Swap Trades, you can check "Explode Fees" to break the termination fee into individual components of the trade.
» | You can enter the closing price (i.e. the price at which the trade is to be terminated) of the underlying assets, or each component of the basket for an underlying basket. |
» | You can also enter the amount of the penalty fee (if applicable) in the “Penalty Fee” field. |
» | Then click Calc to compute the fees, and click Apply to terminate the trade. |
The fees will appear in the Fees panel of the trade, and transfers will be generated for each fee.
If you explode the fee, the following fee types are created. Otherwise, a single fee contains the total fee amount.
• | DIV-TERM - This represents dividend fees that have been entered on the trade. |
The calculation is: Sum (Dividend Amount per Equity Share) * No. of Equity Shares * Retrocession Rate %
• | CAPITALGAIN-TERM - This represents the “capital gain” or “capital loss” associated with the termination of the trade. It is often referred to as a “performance fee” when related to bond trades. |
The calculation is: (Closing Price – Start Price) * Quantity * Price change %
• | INTEREST-TERM - This represents the accrual calculation from the last reset date to the date of termination. It can be referred to as a “financing fee”. |
The Interest-Term fee is computed differently depending on whether the Funding Leg is compounding or not.
– | When Funding Leg is compounding: the Interest-Term fee is computed by the pricer and therefore matches the ACCRUAL pricer measure in trade results. In this case, the trade's Val Date and the Effective Date in the Termination Window should be the same. |
– | When Funding Leg is not compounding: the Interest-Term fee is computed using the following formula: |
(Current Notional) * Current Rate * (No. of Days from current Pmt Begin Date inclusive to Termination Effective Date exclusive).
The Rate Index quote is picked from the quote set based on the following rules:
– | When the reset date comes before the Termination Trade Date (Reset Timing on the Funding Leg set to BEG_PER), the quote is based on the reset date and the Interest-Term fee matches the trade's ACCRUAL pricer measure in results. |
– | When the reset date comes after the Termination Trade Date (Reset Timing on the Funding Leg set to END_PER), the quote is based on the Effective Date in the Termination Window and the Interest-Term fee will not match the trade's ACCRUAL pricer measure in results. |
• | PENALTY_FEE - This represents penalty charges that might be applied to a trade. |
No calculation is required for this fee because the system just displays the amount input by the user.
Partial Termination
On partial termination by notional increase, the original trade is terminated and the new trade is created with the new increased quantity. The price on the new ELS trade is taken from the termination window and the notional on the new ELS trade is computed as new quantity * new price.
When FFCP is checked, the initial price of the child trade is the termination price as this is the fixing price while applying partial termination.
When FFCP is unchecked, you can modify the price using the Fixing field as needed. In this case, you will be prompted to confirm the new price.
For a notional-based equity swap, when FFCP is unchecked, you can check Incremental Price:
• | If Incremental Price is unchecked, the price entered is the Wt. average price for entire Quantity/Notional. |
• | If Incremental Price is checked the system calculates the Wt. average price from "Pay Proj. Start Price" of parent trade and price entered. |
Partial Termination on Payment End Date
When Termination Trade Date = Payment End Date of a performance cashflow, you can choose to do the fixing before or after the termination using the checkbox “Before Fixing Term”.
If “Before Fixing Term” is not checked, fixing is considered done and the performance cashflow is fully retained on the parent trade.
If “Before Fixing Term” is checked, fixing is considered not done. Fees are calculated on the parent trade for the terminated portion and the existing fixing transfer is canceled if any. A performance cashflow is created on the child trade for the remaining portion and fixing is done on the child trade.
The checkbox is false by default. You can set it true by default by adding Value = true to the domain “ELSTerminationBeforeFixing”.
Partial Termination Scenarios
Scenario | Pay Int Flows | FFCP | Before Fixing Term | Result | Fees and Transfers |
---|---|---|---|---|---|
Termination between the start and end dates of a cashflow. Payment Begin Date < Termination Trade Date < Termination Effective date < Payment End Date |
True / False |
True |
N/A |
Parent Trade is Terminated. Child Trade created with remaining quantity. Payment Begin and End date of first cashflow on child trade matches with the cashflow date of parent trade in which trade was terminated. Start Price for the first cashflow of child trade is equal to last reset price. |
Fees Capital Gain for terminated quantity on Parent trade calculated at Termination price. Interest Term for terminated quantity on Parent Trade. Transfers Capital Gain and Interest Term transfers on Parent. Price Change and Interest transfers for remaining quantity on child. |
Termination between the start and end dates of a cashflow. Payment Begin Date < Termination Trade Date < Termination Effective date < Payment End Date |
True / False |
False |
N/A |
Parent Trade is Terminated. Child Trade created with remaining quantity. Payment Begin date of first cashflow on child trade matches with the termination trade date. Start Price for the first cashflow of child trade is equal to fixing price provided on termination window. |
Fees Capital Gain for 100% quantity on Parent trade calculated at Termination price. Interest Term for 100% quantity on Parent Trade. Transfers Capital Gain and Interest Term transfers on Parent. Price Change and Interest transfers for remaining quantity on child. |
Termination on fixing date of a cashflow. Termination Trade Date = Fixing Date < Termination Effective date = Payment Date |
True |
True |
False |
Parent Trade is Terminated. Child Trade created with remaining quantity. Payment Begin and End date of first cashflow on child trade matches with the next cashflow date of parent trade in which trade was terminated. Start Price for the first cashflow of child trade is equal to reset price. |
Fees Fees Computed is Zero. Transfers Price Change transfers on Parent trade for 100% quantity calculated at termination price. Interest Transfers on Parent trade. |
Termination on fixing date of a cashflow. Termination Trade Date = Fixing Date < Termination Effective date = Payment Date |
False |
True |
False |
Parent Trade is Terminated. Child Trade created with remaining quantity. Payment Begin and End date of first cashflow on child trade matches with the next cashflow date of parent trade in which trade was terminated. Start Price for the first cashflow of child trade is equal to reset price. |
Fees Capital Gain for 100% quantity on Parent trade calculated at Termination price. Interest Term for 100% quantity on Parent Trade. Transfers Capital Gain and Interest Term transfers on Parent. |
Termination on fixing date of a cashflow. Termination Trade Date = Fixing Date < Termination Effective date = Payment Date |
True |
False |
False |
Parent Trade is Terminated. Child Trade created with remaining quantity Payment Begin and End date of first cashflow on child trade matches with the next cashflow date of parent trade in which trade was terminated. Start Price for the first cashflow of child trade is equal to fixing price provided on termination window. |
Fees Fees Computed is Zero. Transfers Price Change transfers on Parent trade for 100% quantity calculated at termination price. Interest Transfers on Parent trade. |
Termination on fixing date of a cashflow. Termination Trade Date = Fixing Date < Termination Effective date = Payment Date |
False |
False |
False |
Parent Trade is Terminated. Child Trade created with remaining quantity. Payment Begin and End date of first cashflow on child trade matches with the next cashflow date of parent trade in which trade was terminated. Start Price for the first cashflow of child trade is equal to fixing price provided on termination window. |
Fees Capital Gain for 100% quantity on Parent trade calculated at Termination price. Interest Term for 100% quantity on Parent Trade. Transfers Capital Gain and Interest Term transfers on Parent. |
Termination on fixing date of a cashflow. Termination Trade Date = Fixing Date < Termination Effective date = Payment Date |
True / False | True | True |
Parent Trade is Terminated. Child Trade created with remaining quantity Payment Begin and End date of first cashflow on child trade matches with the cashflow date of parent trade in which trade was terminated. Start Price for the first cashflow of child trade is equal to last reset price. Price Fixing considers the child trade for fixing. If Fixing was available and trade is terminated by checking before fixing termination then child trade is created with same fixing price. In such scenario child trade will not be considered for fixing. |
Fees Capital Gain for terminated quantity on Parent trade calculated at Termination price. Interest Term for terminated quantity on Parent Trade. Transfers Capital Gain and Interest Term transfers on Parent. Price Change and Interest Transfers created if any on Parent for terminated cashflow are canceled. Price Change and Interest transfers for remaining quantity on child. |
Impact on Dividends on applying partial termination:
• | Termination Trade Date < Dividend Payment Date <= Termination Effective Date. |
For Pay Intervening Flows = True, Div-Term is not calculated and 100% Dividend is paid on Parent.
For Pay Intervening Flows = False, Div-Term is calculated for 100% quantity and paid on Parent.
• | Termination Trade Date < Termination Effective Date < Dividend Payment Date. |
Div-Term is calculated for terminated quantity. For remaining quantity, Dividend is paid on Child.
• | Termination on fixing date of a cashflow with Before Fixing Termination set to True |
Dividend Transfer on parent is canceled.
Div-Term is Calculated for the terminated quantity on Parent Trade.
On Child trade dividend for remaining quantity is paid.
3. Generating a Termination Confirmation
In order to generate a termination confirmation, you need to setup a message configuration for the event TERMINTATED_TRADE. Make sure to use a specific message type like TERMCONF otherwise the initial confirmation of the trade will be canceled.
4. Rejecting a Termination
You can reject a termination by applying the action REJECT (or the action of your choice) on a terminated trade for a full termination, or on a verified trade for a partial termination.
The workflow setup is as follows:
• | TERMINATED - REJECT - VERIFIED (Create Task checked, Reject rule) |
• | VERIFIED - REJECT - VERIFIED (Create Task checked, Reject rule) |
The action REJECT (or the action of your choice) must be specified in the domain "TradeRejectAction".
The Reject rule publishes a PSEventProcessTrade that can be captured by the Message Engine to generate the termination confirmation with sub action CANCEL (if the termination confirmation has been sent).
MMLinked Rule
When this rule is set in the workflow on the REJECT action, the AMEND action is applied by default to the associated routed trades. Therefore, it needs to be configured in the workflow.
For example:
TERMINATED - AMEND - VERIFIED
If you want to apply the REJECT action to the associated routed trades instead of the AMEND action, you need to add it to the domain "FXLinked.PropagateAction".
Retract vs Reject
The workflow rule Retract can be used instead of the workflow rule Reject to go back to a previous status. The difference is that it can go back to more than one status codes at once.
For example, you have the transitions VERIFIED – TERMINATE - PENDINGTERM and PENDINGTERM – AUTHORIZE – TERMINATED.
If you want to go back from TERMINATED to VERIFIED using the Reject rule, you need to have the transitions TERMINATED – REJECT – PENDINGTERM with the Reject rule to undo the AUTHORIZE action, and PENDINGTERM – REJECT – VERIFIED with the Reject rule to undo the TERMINATE action.
When using the Retract rule, you can have one transition only: TERMINATED – REJECT – VERIFIED with the Retract rule, and it will undo the AUTHORIZE action AND the TERMINATE action.