Position-Based Corporate Actions
This document describes how to apply corporate actions to position-based products.
Quick Reference
You can also use the CORPORATE_ACTION scheduled task. |
1. Generating Automatic Corporate Actions
Select the Generate panel to generate corporate actions: this applies to coupons and redemptions, based on bond product definitions.
Corporate Action window (Generate panel)
Step 1 - Click Add to select the product(s) for which you want to generate corporate actions.
Step 2 - Select the range of dates for which you want to generate the corporate actions.
You can check “Use Ex Date” to select bond cashflows based on the ex date rather than the payment date.
Click Generate CA. The corporate actions related to the selected products and the range of dates is displayed.
You can define the number of decimals of the generated amount in the pricing parameter CA_BOND_ROUNDING.
When creating a CA for which the floating rate is unknown, the system creates a CA with NOT_APPLICABLE status. This applies to the CORPORATE_ACTION scheduled task as well.
If the domain “CAForMatching” contains Value = true, the CA Ex (Effective) date is set based on the Bond Ex-Dividend days.
The status must be defined in the domain “CA.Status” with a comment that starts with “Default”.
For example:
• | Value = NOT_APPLICABLE |
• | Comments = Default not applicable status |
Step 3 - Click Save to save the corporate actions. You can now apply the corporate actions to the positions.
2. Applying Corporate Actions
Each outcome of a corporate action (CA) is applied to the following types of positions:
• | The position computed by the Liquidation engine to update the book’s P&L - A CA trade between the book and the processing org to update the P&L. |
Note that for redemptions, you can elect to generate buy/sell trades rather than corporate action trades. To enable this feature, set the environment property BOND_REDEMPTION_TRADE to true. The system will create Buy/Sell trades with the Processing Org for closing out the original positions. The CA that has created the Buy/Sell trade is kept as a reference in the trade keyword CA_REFERENCE.
For a coupon on an ex-dividend Bond, the "PO" CA INTEREST trade represents the real cash coupon amount receivable on Ex-Dividend Date (matching the Agent Trade). A second "PO" CA INTEREST trade is generated with keyword "CAExDivAdjustedDate" and liquidation type "Realized Ex-Div Adjustment", representing a P&L adjustment trade for the coupon amount receivable as of Coupon End Date (equivalent non-ex-dividend Bond). This second trade does not have any withholding tax adjustment.
• | The inventory position computed by the Inventory engine to represent the actual cashflows - A CA trade between the book and the agent (nostro/custodian) for payment purposes. |
You can configure the system so that Agent trades are aggregated into a specific book. To do so, configure the specific book in the book attribute "CAAdjustBook" of the initial book.
For example, all Agent trades of book "Global" can be stored in book "CABook". Book "Global" should be configured so that book attribute "CAAdjustBook = CABook". "CABook" should also have the book attribute "CAAdjustBook = CABook".
Note that if the trades are not settled, or the settlement has failed, the CA trade is generated between the book and the counterparty, instead of the agent.
You can settle CA claims in a currency different from the bond / equity currency.
– | For dividends, you need to set the settlement currency in the counterparty attribute CADefaultCurrencyDividend. |
– | For coupons, you need to set the settlement currency in the counterparty attribute CADefaultCurrencyInterest. |
The system requires the FX rate between the settlement currency and the default currency on the settlement date.
• | For repos, the actual corporate actions are repaid to the counterparty. So we have a CA trade between the book and the agent, and a CA trade between the book and the counterparty. You need to check “Load OTC Trades" to generate corporate actions on repo trades. |
Note that the "Repo" product type must be selected in the trade filter.
You can settle the counterparty CA with a currency different from the CA currency. You need to set the settlement currency in the trade keyword CAClaimCurrency on the source repo trade, or on the repo legal agreement attribute CAClaimCurrency. The FX rate between the CAClaimCurrency and the CA currency is stored in the trade keyword CAClaimFXRate and is used to calculate the settlement amount.
• | For sec lending trades, the corporate actions are repaid to the counterparty only if the initial trades are settled. We have a CA trade between the book and the counterparty. You need to check "Load OTC Trades" to see those trades. |
Note that the "SecLending" product type must be selected in the trade filter.
• | For security margin calls, the actual corporate actions are repaid to the counterparty as well. So we have a CA trade between the book and the agent, and a CA trade between the book and the counterparty. |
• | For client positions, the client CAs are generated, and you can choose to generate the internal CAs (PO view of the client position) or not, based on the account attribute "CATradeDDAInternal" on the client account. If false (default), the internal CAs are not generated. If true, the internal CAs are generated. |
You can settle the client CAs in a currency different from the bond’s currency.
You need to set the account attribute CADefaultCurrency to the settlement currency, for the Client account where the bond trades are settled.
The system will set the settlement currency of the CA trade to the currency defined in the CADefaultCurrency and compute the settlement amount in settlement currency based on the FX rate on the settlement date.
Select the Apply panel.
Corporate Action Window (Apply panel)
Ⓘ [NOTE: You can click , and choose Configure Columns to configure the
display]
If you add domain value CAApplyPanelDefaults, the pre-existing selection criteria will be cleared.
Step 1 - Enter the Applicable Date - It refers by default to the Ex-Dividend date but you can choose the record date or the payment date instead.
Enter search criteria to select the corporate action, and click Load (CA). You can also click Add to select individual corporate actions.
Step 2 - Enter selection criteria to load the positions.
You can save a template from the Apply menu to save the criteria currently selected as a template. You can then load a template to populate the criteria as needed.
• | Apply to Position - Check to apply the corporate action to positions. Then select the position criteria. |
– | BO Position Type - Select the position type: ACTUAL (at record date) or THEORETICAL (at ex-dividend date). |
– | BO Position Date Type - Select the position date: TRADE or SETTLE. |
– | BO Position Aggregation - Select the position aggregation if any. |
– | BO Position Balance Type - Select the position balance type: "Balance" is the full position, "Balance Trading" is the position without borrowed/lent securities (used in conjunction with "PL Position Repoed"). |
– | PL Position Repoed - Check to split the dividend pass-through between the trading position and the borrowed/lent position. In this case, you need to select the balance type "Balance Trading". |
See Dividend Pass-Through for details.
– | BO Aggregation By SubAccount - Check to apply CA on custody position by sub-account. |
Please refer to Calypso Security Custody documentation for information on custody positions.
• | Processing Org - Select a processing organization as needed. |
• | Product Type - Select a list of product types as needed. |
• | Position Filter - Select a trade filter as needed (note that SQL generated Trade Filters are not supported). |
• | Apply to OTC - Check to apply the corporate action to OTC trades (repo trades, sec lending trades, equity derivatives trades). In that case, the corresponding product types must be selected in the trade filter. |
The "Process Baskets" checkbox is only used in the context of corporate actions on Equity Derivatives with baskets.
See Corporate Actions for OTC Products for details.
• | Apply to Margin Call Position - Check to generate CA claims on margin call positions as needed. |
See CA Trades on Margin Call Positions for details.
Then click Generate Trade to load the trades and positions impacted by the selected CA, and apply the corporate action.
Additional Selection Criteria
You can also choose what types of trades you want to display:
• | Internal (CA trades between the book and the processing org to update the P&L). |
Note that in this case, you can check “Only Position Aggregation” to only generate internal corporate actions for positions with aggregation criteria. It is highly recommended however to generate all CA trades.
• | Claims (CA trades between the book and the counterparty for margin calls, repos, sec lending trades, and unsettled / failed transfers). |
If you do not want the aggregation ID (if any) to be set on trade keyword InventoryAggId for claim trades, you can add Value = true to the domain "CAExcludeAggIdTKWCpty".
No aggregation is currently supported on CA Claims generated from repos, sec lending trades and unsettled / failed transfers.
• | Agent (CA trades between the book and the agent for payment purposes). |
Note that in this case, you can check "Agent Aggregation" to only generate corporate actions for the book that aggregates the Agent trades (book set in book attribute "CAAdjustBook" for the initial book where the trades were stored).
You can customize the roles to which Corporate Actions can be applied using the domain “CAFilterRoleCheckbox”.
It should contain roles for which you want to generate CA trades. In this case, a corresponding checkbox will be added to the CA Apply window.
For example, if you add Broker to that domain, a Broker checkbox is added to the CA Apply window. You can then choose to apply Corporate Actions to brokers.
You can right-click a position and choose the following menu options:
• | Show > Underlying Inventory Position to display the corresponding inventory position computed by the inventory engine. |
• | Show > Underlying PL Position to display the corresponding position computed by the liquidation engine. |
• | Show > Diffs with Existing to show any difference in the case the corporate action were already applied. |
Step 3 - Click Save All to validate the application of the corporate action and save the CA trades.
Note than even if you do not display all the CA trades, the system will create ALL the necessary CA trades when you click Save All (except in the case of internal trades if “Only Position Aggregation” is checked, agent trades if "Agent Aggregation" is checked, and internal trades of client positions if the client account attribute "CATradeDDAInternal" is false).
From the Apply menu, you can save your preferences for the Apply panel to a template, load a template, and set a default template.
Note on Applicable Date
The handling of the Applicable Date can be customized as follows.
If the domain “generateCA.Bond” exists with:
• | Value = CASH.INTEREST.setIsRecordDateInclusive |
• | Comment = true |
The corporate action CASH.INTEREST is generated with record date inclusive, and CA application will record position on record date End Of Day.
If the domain “generateCA.Bond” exists with:
• | Value = AMORTIZATION.AMORTIZATION.setIsRecordDateInclusive |
• | Comment = true |
The corporate action AMORTIZATION.AMORTIZATION is generated with record date inclusive.
The domain name can be one of the following:
• | generateCA.productType.productSubtype |
• | generateCA.productType |
• | generateCA |
The more detailed domain name takes precedence. For example, “generateCA.Bond.Generic” takes precedence over “generateCA.Bond”, which takes precedence over “generateCA”.
If the domain "generateCA.PortfolioSwap" exist with:
• | Value = CASH.DIVIDEND.setIsByTradeDate / Comment = true |
• | Value = TRANSFORMATION.PRICE_CHANGE.setIsByTradeDate / Comment = true |
The corresponding CAs are generated by trade date.
Note on Trade Settle Date
If you want to apply the payment lag (as defined in the Bond Product Definition) to compute the Trade Settle Date on CA Redemption trades, you need to define the following value in domain “CAApply.Bond”.
• | Value = REDEMPTION.SettleDateIncludesCouponPayLag |
• | Comment = true |
In this case, Trade Settle Date = Maturity Date + Payment lag (defined in Bond definition). If the comment is “false”, or the domain value is not set, Trade Settle Date = Maturity Date.
Sample "Internal" Trade for P&L
Sample "Agent" Trade for Payment
P&L Adjustments
PL adjustments can be computed for the REDEMPTION, DRAWING and AMORTIZATION models in case of rounding issues.
The system checks that PO CAs settlement amount = Agent CAs settlement amount + Claim CAs settlement amount. If there is a difference, it is stored in the CAAdjustment book.
CA Stock Claims
The outcomes of generating CA Stock Claims on security finance positions are the following.
Bond CA Events
The bond CA events affecting the security finance positions are:
• | REDEMPTION/PRINCIPAL: A partial return is applied to the underlying security repo trade at payment date. |
• | REDEMPTION/CALL_REDEMPTION: A partial or full return is applied to the underlying security repo trade at payment date. |
• | TRANSFORMATION/ASSIMILATION: A substitution is applied to the underlying security finance trade at payment date. |
• | REDEMPTION/REDEMPTION: The underlying security finance trade is closed. |
In all those scenarios, we have both a CA cash claim materialized by a CA trade, and a CA stock claim materialized by an action on the original security finance trade at CA settlement date.
The CA cash claim represents the cash amount of the amortization, redemption and/or assimilation.
Equity CA Events
For all equity CA events applied to security finance positions, equity synthetic trades are created on the lending positions to update the P&L once the stocks are returned, and on the borrowing positions, additional transfers are created (using transfer attributes ClaimId = CA productid and CAFailedXfer=transfer Id of the original Security borrowing transfer) to update the internal inventory position.
When there are no trading position and the position is only composed of security finance trades, no equity synthetic trade is created as well as no agent CA trade.
When there are trading positions and security finance positions, equity synthetic trades are created for the lending position and not for the borrowing position. Additional transfers are created on any additional sec borrowing.
The PNL position check is made at book level. All actions are triggered at payment date.
The Equity CA events affecting the security finance positions are:
• | ACCRUAL - When applying the ACCRUAL model, we distribute additional securities. For the part of the position that is being collateralized, additional CA trades are created as Security Lendings or Repos to create the new loan exposure brought by the additional securities gained from the CA event. |
Example of DVOP where security lending position is on one book and trading position on another book:
Example of a single book for trading and security lending & borrowing position:
• | TRANSFORMATION/SPLIT - An action on the collateralized trade is triggered by the CA process to update the trade at settlement day, generating transfers to update the inventory. |
Example of Reverse Split where security lending position is on one book and trading position on another book:
• | SPINOFF/SPINOFF - Additional CA trades are created for the new position introduced by the spinoff. |
Example of a spinoff using single book for trading and security lending & borrowing position:
• | ACQUISITION/CASH_OFFER and STOCK_OFFER - The underlying security finance trade is closed and additional CA trades are created for the new position, if any introduced by the CA event. |
Example of a multi book tender offer against cash:
• | MERGER/RIGHT_CALLS - The underlying security finance trade on intermediate NIL paid equities is closed and additional CA trades are created to add securities to the original equity position. |
Example of a single book exercising the rights:
2.1 Corporate Action Trades Modification
When processing the CA, the system loads any existing CA trades in order to see if any amendment or cancellation need to be applied because the position may have changed or the CA details may have been amended. These trades are then reversed, and new trades are generated with the proper information.
This is called the CA matching process.
In order to exclude a CA trade from the CA matching process, you can set the trade keyword CAManualAmend to true.
Allowing Generating Corporate Actions by Balance Type
When environment property CA_DIFFERENT_BALANCE_TYPE = true, the CABalanceType is stored on the trades. When the CA is applied to a different balance type, the existing CA trades are not canceled and new CA trades on the new balance type are created.
2.2 Withholding Tax on Bond Coupons
When you set the environment property SEC_WITHHOLDINGTAX to True, the withholding tax will be automatically withdrawn from the coupons, and reclaim fees will be automatically generated for bonds defined with "Apply Withholding Tax" selected in the Market panel of the Bond Definition window.
See Withholding Tax Generation for details.
2.3 Withholding Tax on Bond and Equity Claim CAs
To apply the withholding tax to Bond and Equity Claim CAs, you need to set environment property SECURITY_TAX_HOLDER_ROLE = true.
The tax rate is selected from the Withholding Tax Configuration, the issuer country is the issuer of securities, but the holder country can be PO country, counterparty country or default.
You can set the holder using the following domains to determine which Tax Rate to use:
• | Domain "Security.WHTPay" for short positions |
Value = CounterParty or ProcessingOrg
Default is no Tax Rate applied if not set.
• | Domain "Security.WHTReceive" for long positions |
Value = CounterParty or ProcessingOrg
Default is ProcessingOrg if not set.
2.4 Withholding Tax on Sec Finance Claim CAs
To apply the withholding tax to Sec Finance Claim CAs, you need to set environment property TAX_HOLDER_ROLE = true.
The tax rate is selected from the Withholding Tax Configuration, the issuer country is the issuer of securities, but the holder country can be PO country, counterparty country or default.
You can set the holder using the following domains to determine which Tax Rate to use:
• | Domain "SecFinance.WHTPay" for long positions |
Value = CounterParty or ProcessingOrg
Default is no Tax Rate applied if not set.
• | Domain "SecFinance.WHTReceive" for short positions |
Value = CounterParty or ProcessingOrg
Default is ProcessingOrg if not set.
2.5 Dividend Pass-through
The dividend pass-through is the generation of the withholding tax on cash dividends (DVCA, SHPR, DVSC, DVSE, DRIP, DVOP).
CA trades on book positions are generated on ex date. When calculating these outcomes, a default pass-through rate is used as follows:
• | Long positions are calculated minus the withholding tax rate that is applicable for the relevant processing org and country in which the security is listed, since we conservatively assume on ex date that the entire long position will be in Custody. |
– | If there is no tax free amount: |
Entitled Position x Amount x (1 - WHT %)
– | If there is a tax free amount: |
Entitled Position x (Amount - Tax Free Amount) x (1-WHT%) + (Entitled Position x Tax Free Amount)
• | Short positions are calculated at 100%, since we conservatively assume on ex date that we may be obligated to pay 100% of the entitlement amount. |
Entitlement dividend becomes: gross/net rate * P&L book position
By default, the position direction (long or short) is determined at book level. It is possible however to net a number of books, and determine the position direction based on the netted position. In this case, the position direction of the netted position will be applied to each individual book, regardless of their individual position direction.
For example, BOOKA is long and BOOKB is short - The netted position BOOKA + BOOKB is long - Then both BOOKA and BOOKB are considered long.
The netting is controlled at the Market Place level.
If the underlying equity country is not defined in domain “CANetDividendRule” and if underlying equity MarketPlace attribute CABookNetting = false (or not configured), and if underlying equity MarketPlace attribute CAApplyNetRate = true and book attribute CAApplyNetRate = true, then all the books falling under this book attribute will be applied the WHT Rate regardless of whether the book position is long/short.
If the underlying equity country is not defined in domain “CANetDividendRule” and if underlying equity MarketPlace attribute CABookNetting = false (or not configured), and if underlying equity MarketPlace attribute CAApplyNetRate = false (or not configured), then we apply default netting behavior which is:
• | If the position is long we apply the WHT rate to the CA event amount to have a net dividend. |
• | If the position is short, no WHT rate is applied and we calculate a gross dividend. |
In order to determine which books you want to net together, set the book attribute CABookNetting to the same value for the books you want to net together.
For example BOOKA / CABookNetting = NET1 and BOOKB / CABookNetting = NET1 ensures that BOOKA and BOOKB will be netted together.
By default, the tax rate is taken from the CA event if set. Otherwise, it is taken from the Withholding Tax Configuration if any.
You can define withholding tax configurations using Configuration > Fees, Haircuts, & Margin Calls > WithHoldingTax Config.
» | Click New to add a new configuration, and enter the details in the Details area. The fields are described below. |
» | Then click Save to save your changes. You can specify multiple rates for the same issuing country using static data filters to determine the context of application of the rates. |
Details
Fields | Description | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Id |
The ID is unique - It is given by the system upon saving. |
||||||||||||||||||||||||
Issuer Country |
Select the country of the bond. |
||||||||||||||||||||||||
Holder Country |
Select the country of residence of the processing org that purchased the bond. |
||||||||||||||||||||||||
WHT Rate |
Enter the withholding tax rate. The withholding tax amount will be withdrawn from the coupon amount when the corporate actions are generated. |
||||||||||||||||||||||||
FTC Rate |
Enter the Foreign Tax Credit that exists between the issuer and Holder country if any. When there is no valid RAS (Relief At Source) document, between the PO and the Tax Authority, you pay the full WHT rate, and may be eligible to reclaim part of the dividend amount. When there is a valid RAS document between the PO and the Tax Authority, you are charged the FTC rate instead of the WHT rate, and therefore, there is no need for a reclaim. When there is no FTC rate, you are charged the full WHT rate. There is no reclaim. This is only used to generate accounting entries for the accounting events FTC and FTC_PROVISION:
The book is CA P&L trade book Attribute FTCP_Book for accounting event FTC_PROVISION and Attribute FTC_Book for accounting event FTC. If these attributes are not configured in the book of the CA P&L trade, then the book is the CA P&L trade book. FTC Recoverable is a percentage set on the PO attribute “FTCRecoverable”. The Tax Authority is set on the PO attribute “TaxAuthority”. You can associate RAS (Relief At Source) legal agreements between the PO and the Tax Authority, and take the RAS legal agreements into account in the withholding tax configuration through the use of static data filters.
|
||||||||||||||||||||||||
Reclaim Rate |
Enter the reclaim rate if applicable. The reclaim fee will be generated on the internal coupon CA for P&L impact, and on the agent coupon CA for payment to the Tax Authority. The Tax Reclaim Date is set by default to the Ex-Date. It can be configured using the domain “TaxReclaimDate”. You can set the value to RecordDate instead. The accounting event RECLAIM_TAX_RD allows recording the tax reclaim on the record date. You can also generate a Tax Reclaim Provision with the accounting event RECLAIM_PROVISION. It is generated when the legal entity attribute PROVISIONABLE is set to Yes on the Tax Authority. RECLAIM_PROVISION = [Entitled Position x (Amount – Tax Free Amount) x (Reclaim Rate) %] x (-1) |
||||||||||||||||||||||||
Static Data Filter |
Select a static data filter if applicable. This is mostly needed if you have multiple rates for the same issuer country, or in the case of FTC rates. You can also use the static data filter to restrict the corporate actions to which the withholding tax is applied. The static data file must be defined with Groups = CA and must contain CA-related attributes, or settlement account attributes. Example:
|
||||||||||||||||||||||||
Effective From Effective To |
Select the start date and the end of the configuration. This applies if the rates change at a certain date. |
||||||||||||||||||||||||
Tax Authority |
Select the legal entity that will receive the reclaim fee if any - This is only used when a Reclaim Rate is set. The Tax Authority is a legal entity of role TaxAuthority. |
||||||||||||||||||||||||
Date Rule |
Select the date rule that determines the payment frequency of the reclaim fee if any - This is only used when a Reclaim Rate is set. |
You can split the dividend pass-through between the trading position and the borrowed/lent position.
When processing cash CA events such as Cash Dividend or Cash Option of a Merger, and the position has been financed by a security lending trade, the CA process creates CA cash claim trades for the settlement amount to be claimed.
When capturing the security finance trade, the "required dividend rate" is populated. This rate is then used to calculate the dividend claim amount by multiplying the settlement amount by the required dividend rate.
The WHT configuration is used to calculate the net dividend settlement amount using the WHT rate set in the Withholding Tax Configuration window.
The WHT rate is not used on the security lending claim settlement amounts.
When applying the CA event, check "PL Position Repoed", and select the balance type "Balance Trading" indicating that CA trades are applied on positions excluding borrowed/lent securities.
The system creates:
• | PL CA trades on trading positions (excluding positions that are borrowed/lent), and applies the WHT rate to calculate the net dividend amount. Those CA trades are created between the trading books and the PO. |
• | PL CA trades on borrowed/lent positions, and applies the required dividend rate to calculate the net claim amount. Those trades are created between the security finance books and the PO. |
Splitting the eligible position into what is held and what has been lent and/or borrowed allows to distribute correctly the PL to the right books.
2.6 Back Office Processing
The CA value should be available in the productType domain.
In order to generate the payment with the Agent (nostro/custodian), you need SDIs (settlement and delivery instructions) between the processing org and the Agent.
The CA payment trade will generate a posting provided an accounting rule is defined on the CST accounting event (triggered by any payment event), and the rule is linked to the book for the CA product.
The CA P&L trade does not generate any transfer, so it does not require any SDI. It will generate a posting provided an accounting rule is defined on the INTEREST accounting event (triggered by LIQUIDATED_POSITION and UNLIQUIDATED_POSITION events), and the rule is linked to the book for the original product (Equity, Bond, etc.). Note that the CA P&L trade is liquidated with the original trade, and that the posting will appear on the original trade.
2.7 Coupon Payments on Repo Collaterals
You can identify a coupon payment made on a repo collateral by using the transfer attribute "UnderlyingSec". The value is "true" if the transfer belongs to a collateral.
2.8 CA Trades on Margin Call Positions
In the CA Application criteria, you can select “Apply to Margin Call Position” to generate CA claims as needed.
INTEREST CAs, PAYDOWN CAs and REDEMPTION CAs
When "Reinvest Coupon" = true on margin call contract, an additional CA trade with role Counterparty is generated.
This new trade contains trade keyword CATradeMC = “Incoming Coupon” and generates a single cash transfer with Xfer Attribute MarginCall= MC Contract.
Direction of cash transfer of additional trade depends on the Collateral owner:
• | Collateral is Received by CP (CP is collateral owner) |
Cash transfer direction = REC
• | Collateral is Received by PO (PO is collateral owner) |
Cash transfer direction = PAY
When "Reinvest Coupon" = false, there is no additional CA trade with role Counterparty.
The following domains may provide flexibility to the process in the future.
[NOTE: These domains cannot currently be modified as they do not support other values. They are described for information purposes only]
- CASubTypeWithoutSecurityFlow: CA subtypes for which no security cashflow is required:
Value = REDEMPTION
Value = DRAWING
- CASubTypeForTransferWithoutMarginCall: CA SubTypes that drive the management of the MarginCall Id transfer attribute:
Value = INTEREST, Comment = UseInventoryAmountSign
Value = REDEMPTION, Comment = UseSubType
Value = DRAWING, Comment = UseSubType
Value = PAYDOWN, Comment = UseSubType
- CACreateMarginCallAdditionalTrade: Conditions to generate a second counterparty trade. Margin call Reinvest Coupon, Reinvest Principal and Reinvest Paydown are the main parameters:
Value = Reinvest Paydown, Comment = isCash=PAYDOWN
Value = Reinvest Coupon, Comment = isCash!=PAYDOWN
Value = Reinvest Principal, Comment = isRedemption
Corporate Actions on Segregated Margin Call Accounts
You can transfer corporate actions generated on a segregated margin call account to another account using the scheduled task CA_TRANSFER_AGENT.
The segregated "from" account needs to have the following account attribute:
XferFromAccount = Yes
The "to" account is configured using the Transfer Agent Config window (menu action refdata.TransferAgentConfigWindow
).
» | Click New to create a new config and enter the fields in the Details panel. Then click Save. |
Select a processing org or ALL.
Select an agent or ALL.
Select a currency or ANY.
Enter the "from" account in the GLAccount Name field.
Enter the "to" account in the Account Name field.
Then run the scheduled task CA_TRANSFER_AGENT to generate Transfer Agent trades between the "from" and "to" accounts.
It only applies to cash corporate actions for which transfer value date = valuation date.
Attributes:
• | CAReference - Enter a CA product ID or all transfers linked to trades with a CAReference are selected. |
• | CA Type - Select CASH, PAYDOWN or REDEMPTION - Values defined in domain “TransferAgent.CAType”. |
• | Transfer Status - Select the transfer status as needed. |
• | Transfer Type - Select the transfer type as needed - Values defined in domain “TransferAgent.TransferType”. |
• | GL Account - Select the segregated account or all accounts with XferFromAccount = Yes are selected. |
The trade keyword CASource and the fields in the "MCC_ADDINFO_CA" domain are propagated to the TransferAgent trades.
Saving Additional Attributes
The Margin Call Contract attributes defined in the domain “MCC_ADDINFO_CA” are saved as trade keywords “MCC_<attribute>” on the CA trades on Margin Call positions.
For example, the Margin Call Contract attribute ACADIA_ID is added to the domain “MCC_ADDINFO_CA”. Upon CA generation, the trade keyword MCC_ACADIA_ID contains the value of MCC attribute ACADIA_ID.
3. Sample CASH / ADJUSTMENT
CASH with adjustment cost in the P&L.
Only the following CA events with the CASH option are concerned by the P&L adjustment cost:
- SOFF (Spinoff)
- CAPG (Capital Gain Distribution)
- DECR (Decrease in value)
There is no specific field to create an adjusted cost in the P&L. It is just an update of the P&L with the price of the cash rate in order to calculate a new average price.
Business Example: Equity.ABC with a position holding = 100,000 shares bought at $2.50 for a settlement cost of $250,000.00. The default option to process is a cash receipt using a rate of $1 per share. At ex-date, the Open position should be updated with the cash rate in order to calculate a new average price of $ 1.50: = (original average price [$2.50] - cash rate [$1.00]) = $1.50 At record date, the CA agent trade between the book and the agent is generated and creates the physical settlement of the cash receipt of $100,000 (no change at this stage). |
Defining CA event CAPG on the underlying equity ACCOR.
Position before applying the CA on equity ACCOR, having a position of 500 shares on book BNP GROUP and 1000 shares on book BNP PARIS.
Applying a CA event CAPG at cash rate = 5 gives us the following CA trades where each original position is sold at the original average price and bought back at the new average price (original average price - cash rate).
The settlement amount is made by the agent on the total position:
4. Sample ACCRUAL / TAX and STOCK_DIV
ACCRUAL with cash movement to represent the tax amount to be paid on the stock dividend.
This model is used for CA events DVSE and DVSC and calculates the tax amount using a tax rate, taken from the CA event if set, or from the Withholding Tax Config otherwise.
The tax amount is represented as a CA_WHT_PNL fee in the P&L CA trade and a CA_WHT_AGENT fee in the Agent CA trade to generate the payment transfer to the Agent.
The tax amount is calculated as follows:
Stock dividend * Par Value * Tax rate (before SR 2024)
Stock dividend * Div Reinvest Price * Tax rate (as of SR 2024)
5. Sample SPINOFF / SPINOFF
SPINOFF with cost adjustment to apply to the securities price.
The field "Adjustment Cost" applies to the "To Security Product".
Only the CA event SOFF (Spinoff) with the options SECU and CASE applies to this model.
Spinoff with a SECU option and several "To Products". Parent security equity.ABC with a position of 100,000 shares at original cost of $2.50 (settlement cost $250,000). Option: SECU. Security component 1 details: spinoff to security equity.XYZ from 1 to 1 with an adjustment cost = 5%. Security component 2 details: spinoff to security equity.DEF from 2 to 1 with an adjustment cost = 15%. In this case, when the Corporate Action is applied to the position, the following CA trades are generated:
P&L effects at ex-date:
Inventory effects at settlement date:
|
Defining the CA event
Applying the CA on a position of 100,000 shares gives us the following CA trades:
6. Sample CASH / DIVIDEND on Security Lending Trade
Applying a corporate action event with a Cash outcome against an open Security Lending trade will generate a Cash claim. The claim is generated as a separate trade under the Counterparty of the Security Lending trade, against the Corporate Action product, with a transfer attached for the cash settlement.
By default, the CA process identifies the Security Lending trades based on their Trade open quantity and select all the Security Lending trades where the settlement date (or trade start date) is on or before record date and where the end date is after ex-date (in order to exclude all the matured trades).
Then the CA process checks every Security Lending trade transfers to determine the cash claim eligibility based on the transfer value date and the record date and selects as eligible every transfers settled on or before record date.
6.1 Trading Country Setup
On the Equity Definition window, you can set the trading country to indicate where the registry/depository is located.
You can set the following attributes on the Country Definition for the selected trading country to apply different eligibility rules:
• | AutoCompensation = true or false |
• | ReverseMarketClaim = true or false |
• | CATradeBasis - true or false |
The eligibility rules are described below.
6.2 Eligibility Rules
Several rules based on market practices apply for generating a cash claim.
Default Eligibility Rule
By default, any Security Lending contract that is settled or unsettled on or before the Record date of a CA event and has an open quantity on Record date is eligible for the CA entitlement. This generates a CA cash claim trade in the CA process.
When the Inventory Position type is ACTUAL, only the SETTLED transfers are eligible to a claim.
When the Inventory Position type is THEORETICAL, all transfers except the CANCELED ones are eligible to a claim.
The counterparty claims are generated from Security Lending trades. The column "Trade_keyword.CAFailedTransfer" identifies the transfer ID of the Security Lending leg that created the claim.
Ex/Cum Rule
All Security Lending trades and transfers tagged with the trade keyword CATradeBasis indicate whether the trades are traded on a Cum/Ex basis - The trade keyword CATradeBasis is set using the SWIFT ex/cum codification populated into the MT540-MT543 messages, under the Trade Transaction Condition Indicator (field :22F::TTCO//4!c).
The values for the trade keyword CATradeBasis should be defined in the domain "keyword.CATradeBasis".
• | CBNS - Cum Bonus - Trade was executed cum bonus. |
• | CDIV - Cum Dividend - Trade was executed cum dividend. |
• | CRTS - Cum Rights - Trade was executed cum rights. |
• | XBNS - Ex Bonus - Trade was executed ex bonus. |
• | XDIV - Ex Dividend - Trade was executed ex dividend. |
• | XRTS - Ex Rights - Trade was executed ex rights. |
• | SPCU - Special Cum - Trade was executed with a special cum condition. |
• | SPEX - Special Ex - Trade was executed with a special ex condition. |
For trades captured after CA event ex date and settled before record date:
• | If trade keyword CATradeBasis = XDIV, the ACTUAL/SETTLE position on record date excludes these trades from the agent position (calculating a cum position). |
• | If trade keyword CATradeBasis = <empty>, the ACTUAL/SETTLE position on record date creates claims with counterparty because the agent includes these trades in its position. |
However, if country attribute.CATradeBasis = true, then ACTUAL/SETTLE position on record date should exclude these trades from the agent position (calculating a cum position), behaving as if trade keyword CATradeBasis = XDIV.
The country attribute is derived from the equity country of trading.
These trades, when they are flagged as cum or ex need to be either included (cum values) or excluded (ex values) in the corporate action outcomes as counterparty claims.
The claims are created directly with the counterparty against the adjustment book set for the book used in the Security Lending trade. If no adjustment book is set, the book used to create the counterparty claims will be the Security Lending book.
For open Security Lending trades where some partial returns have been made, the system will calculate a claim of the cumulative remaining amount.
When the Inventory Position type is ACTUAL, only the SETTLED transfers are eligible to a claim.
When the Inventory Position type is THEORETICAL, all transfers except the CANCELED ones are eligible to a claim.
You can use the transfer workflow action UPDATE_XFER_ATTR to update CATradeBasis information using the CATradeBasisOverride attribute.
When you apply this action, it brings up the Update Transfer Attributes window, which allows modifying transfer attributes.
Editable attributes have to be defined in domain "XferAttributes.UPDATE_XFER_ATTR.Editable" (CATradeBasisOverride). Non Editable attributes that you want to display have to be defined in domain "XferAttributes.UPDATE_XFER_ATTR.Visible" (CATradeBasis).
Auto-Compensation Rule
This rule applies to certain countries - It is based on country attribute AutoCompensation = true.
The auto compensation process is driven by the fact that the trade was executed prior to the ex-date of the CA event and that the delayed settlement after record date appears like a "fail". So the market attempts to correct itself.
The sequence of events is as follows for a Security Lending trade:
• | Trade executed prior to ex date i.e. 'cum' with a settlement date after record date |
• | At record date the PO agent position still holds the stock so the Register credits the agent, and the agent credits the PO account (entitlement part of Agent CA trade) |
• | At Settlement date, the stock is transferred to the borrower. The Register recognizes that the trade deal was 'cum' so corrects the dividend payments by debiting the PO agent account to pay the counterparty |
• | CA claim with the PO Agent to PAY the dividend payment to offset the standard Agent trade on record date |
• | CA claim with the counterparty to RECEIVE the value of the dividend it received by the Register |
Reverse Market Rule
This rule applies to certain countries - It is based on country attribute ReverseMarketClaim = true.
The reverse market process is driven by the fact that the trade was executed after ex-date of the CA event and the settlement before record date. The market is attempting to 'correct' the dividend flow and in the context of a Security Lending trade this results in the beneficial owner actually receiving the dividend through the Agent rather than needing to get it back from the counterparty.
The sequence of events is as follows for a Security Lending trade:
• | Trade executed after ex date i.e. 'ex' with a settlement date before record date (trade is SETTLED) |
• | At record date the counterparty holds the stock so the Register credits their agent (Counterparty claim generated part of the default claim generation) |
• | The register recognizes that the trade deal was 'ex' so corrects the dividend payments by debiting the counterparty account to pay the PO agent - CA Claim with the counterparty to PAY the dividend entitlement in order to offset the entitlement amount included in the standard claim |
• | The PO agent credits PO account with the dividend - CA Claim with the Agent to RECEIVE the value of the dividend |
7. Sample Cash Claim
From the Calypso Navigator, navigate to Processing > Accounting Operations > Corporate Action Trade to enter cash claims by linking the trade to an existing CA product.
Enter the following fields:
• | Cpty |
• | Book |
• | Trade date |
• | Settle date |
• | Direction of the claim (Pay/rec) |
• | Type - Select the CA product to which you want to attach a claim |
• | Quantity and CA Unit Amount |
Only cash claims can be captured. To capture stock claims, you should enter equity trades.
Saving the trade automatically populates the following trade keywords:
• | CAReference = CA product Id |
• | CAManualAmend = Yes in order to let the CA process know that this is a manual CA trade and that it should not be amended during the CA Apply process |
8. Failed Claims Eligibility Rules
Default Rule
The default rule of claim generation applies to all equity trades whose transfers Trade date < Ex date and transfer settle date < Record date but are still considered unsettled at Record date (transfer status not SETTLED).
In that case, a claim is generated with the counterparty.
Example: Equity ULRC.PA (ULRIC DE VARENS) - Country of Trading FRANCE - Auto-Compensation = true
Trade Id | Transfer Id | Book | Trade Date | Settle Date | Quantity | Price | CA Ex Date | CA Record Date | Transfer Status |
8501 | 38001 | EBU | 24/10/2012 | 29/10/2012 | 100 | 48,00€ | 9/11/2012 | 13/11/2012 | SETTLED |
8503 | 38002 | EBU | 24/10/2012 | 29/10/2012 | 100 | 48,70€ | 9/11/2012 | 13/11/2012 | SETTLED |
8601 | 38501 | EBU_LongBook | 5/11/2012 | 12/11/2012 | 2,000 | 44,00€ | 9/11/2012 | 13/11/2012 | VERIFIED |
8603 | 38502 | EBU_LongBook | 2/11/2012 | 16/11/2012 | 4,000 | 39,00€ | 9/11/2012 | 13/11/2012 | VERIFIED |
8604 | 38503 | EBU_LongBook | 5/11/2012 | 12/11/2012 | 1,000 | 47,00€ | 9/11/2012 | 13/11/2012 | SETTLED |
8605 | 38504 | EBU_LongBook | 5/11/2012 | 16/11/2012 | 3,000 | 45,00€ | 9/11/2012 | 13/11/2012 | VERIFIED |
When applying a Cash Dividend (3€) on the position, you obtain the following failed claims:
Auto-Compensation Rule by Country
The Failed Claims generation reflects market practices, applying the Auto-Compensation rule.
Where a market equity trade is traded before Ex Date but is scheduled to settle after Record Date, in an Auto Compensation market, the corporate action entitlement is automatically paid by the Agent on the date that the market trade settles.
While these trades are not technically market failed claims, because they are traded 'cum' and have not settled by Record Date they do need to create CA Claim trades.
This rule applies to certain countries - It is based on country attribute AutoCompensation = true.
This eligibility market rule applies to all equity trades whose transfers Trade date < Ex date and transfer settle date > Record date. Any CA entitlement is then auto-compensated by the registry/depository once the trade settles. Settlement date of the Claim is the underlying trade settlement date.
In the above markets, for equity trades where transfer trade date < Ex date, even if the transfer Settlement date > Record date, a cash claim needs to be generated with the agent only, since the corporate action entitlement is automatically paid by the Agent on the date that the market trade settles.
Auto-Compensation Rule by Agent and Product Type
This feature can be activated using the environment property AUTO_COMPENSATION_MODEL = CSDBased.
In this case, auto-compensation is defined based on auto-compensation rules defined in the Auto Compensation Config window (menu item refdata.AutoCompensationConfigWindow
).
For each agent and product type, you can select the auto-compensation rule:
• | NoAutoCompensation - There is no auto compensation. |
• | GroupedPositionClaim - All the eligible positions for an account are grouped into a single CAAdjustBook trade if claim settle date <= CA pay date, or a CAAdjustBook trade per settle date if claim settle date > CA pay date. |
• | PositionClaimByClaim - The eligible positions for an account are not grouped - Each eligible position generates a CAAdjust book trade. |
• | GroupedAtPrincipalAgent - All the eligible positions are grouped by principal agent. When selected, the principal agent must be defined in the Principal Agent Config window (menu item refdata.PrincipalAgentConfigWindow). See below. |
GroupedAtPrincipalAgent
When the Sender is a Principal Agent, it is used to index the incoming MT566 messages.
9. Sample Bond Assimilation
To transfer the position of a bond to a new bond, you can use the Assimilation corporate action.
Follow the steps below.
Step 1 - In the original bond, select the Special panel and specify the assimilation information: Enter the assimilation date and select the new bond.
Step 2 - Run the scheduled task CORPORATE_ACTION to create the ASSIMILATION corporate action and apply it to the original bond.
Execute the scheduled task on the assimilation date.
A TRANSFORMATION / ASSIMILATION corporate action is created and applied to the original bond.
Two trades are generated: one to close out the position on the original bond, and one to create the position on the new bond.