Total Return Swaps (TRS) Best Practices

Total Return Swaps (TRS) Best Practices

Overview

This document applies to all releases of Eagle software V12 and above. Version-dependent functionality is noted with the initial release(s) it became available.

Total Return Swaps (TRS) allow one party to make periodic interest payments (finance leg) to a counterparty in exchange for the return (return leg) on an underlying index, individual equity, debt, or custom basket of securities. TRS on Single-Name Fixed Income (SNFI)/Single-Name Debt include the coupon from the underlying bond in the return payment. Eagle supports end-to-end processing of both resetting and constant notional TRS. This document covers the full lifecycle including Eagle Accounting, Data Management, and Performance.

Example reference data screens, trade screens, and reports are attached:

Entity Setup

Before any trades can be booked, the target entity must be set up appropriately. Refer to Swaps Entity Setup Processing Notes for details.

Reference Data

Storage & Configuration

Eagle models TRS security master files (SMFs) as three rows in Data Management, each with its own Security Alias (10), linked by a common Primary Asset ID (14). Eagle Accounting must be set up to allow duplicate IDs for swaps by following the steps in Allow Duplicate Cross Reference Identifiers Processing Notes.

Refer to Multi-Leg SWAPIDs Processing Notes for information about the unique SWAPID identifiers that are automatically created for the contract and each leg of a multi-leg swap.

Market Data

Return leg payments are derived from an underlying index, equity, or basket, which can be linked by entering its ID in the Underlying Information section during SMF setup. The price/level of the underlying must be directly populated on the return leg. There is functionality available in Pricing Center to automatically pull the price of the underlying up to the return leg as described in TRS Price from Underlying Processing Notes.

In some cases, such as long-date contracts, there may be a need to apply a discount factor to the valuation derived purely from the underlying. Eagle supports this via the Price Conversion functionality. See TRS Price Conversion Processing Notes for more information. When using this functionality, the calculated price is used for both valuation and resets. If you need to use different prices for valuation and resets, see the Separate Valuation & Reset Prices section below.

The finance leg of a TRS generally floats against an underlying interest rate index. Each index must be set up as an Index security using Issue Viewer or Reference Data Center (RDC). Other than identifiers, the only information that must be entered is currency. Once the index has been set up, floating rates can be loaded using Add Variable Rate. Eagle Accounting will automatically pull the appropriate rates into the accrual process based on the finance leg's First Rate Reset Date (10911), Reset Frequency (1788), and Reset Look-Back Days (10547).

  • Interest rates must be loaded to the underlying index at least back to Dated Date (or previous reset date if swap is traded off-cycle) and each subsequent reset date minus Reset Look-Back Days

  • Ensure rates are loaded to the same Source (3301) as your entity's Variable Rate Source (3301)

Spread Changes (V17 R2)

Some TRS contracts include terms specifying that the floating rate spread changes periodically throughout the life of the deal. Eagle supports this with Time Sensitive functionality, which was expanded to include swaps in V17 R2. Spread changes are supported both on coupon and non-coupon dates. Refer to Time Sensitive Processing Notes for details about modeling spread changes during the life of swap.

Separate Valuation & Reset Prices (V17 R2.49)

In some cases, there is a requirement to fair value TRS or include another form of discounting in the valuation. However, these discounted prices cannot be used for resets because they would result in incorrect calculations for the finance leg notional. Prior to V17 R2.49, the only way to support this is to use close and open trades in lieu of resets because it allows you to explicitly set the “reset” price used for the trades. Beginning in V17 R2.49 you can specify a different source to be used for TRS resets. Refer to TRS Separate Reset & Valuation Prices Processing Notes for full configuration details.

TRS Reset Schedules

TRS typically reset on a predetermined schedule of dates. Setting up the SMF correctly in Eagle is critical to ensuring that resets are processed on the appropriate dates.

Decoupling

In V17 R2.22 an alternate method of setting up TRS return legs was added, called Decoupling. This is recommended for all newly established TRS positions and can be used alongside the legacy method. It affects TRS where the schedule is dictated by valuation dates and there is a delay between each valuation date and payment date. There are two main benefits of Decoupling:

  1. Resets are processed on valuation date to lock in gain/loss, while still accruing on the correct finance leg notional through payment date

  2. Trades between valuation/reset date and payment date are processed correctly

In prior versions, Coupon Delay Days (4908) would be used on the return leg, which effectively shifts the reset process and realized gain/loss from valuation date to payment date. To invoke Decoupling, leave Coupon Delay Days as null or 0 on the return leg and use Delay Days (1799) instead. There are no changes to the finance leg (it will continue to use Coupon Delay Days). Delay Days on the return leg should typically match Coupon Delay Days on the finance leg. An example is provided below.

When Decoupling is used, Last Payment/Valuation Date (474) on the return leg must be set to the final valuation date from the reset schedule. Before Decoupling, it could be either the penultimate or final date. Either date can still be used on the finance leg.

Example

Valuation and payment dates are calculated automatically based on the SMF attributes. The example above would be set up as follows. Empty cells indicate null or N/A values.

Field

Return Leg Value - Decoupling

Return Leg Value - Legacy

Finance Leg Value

Field

Return Leg Value - Decoupling

Return Leg Value - Legacy

Finance Leg Value

Delay Days

3

 

 

Delay Days Type

B

 

 

Lag/Coupon Delay Days

 

3

3

Lag/Coupon Delay Days Type

 

B

B

Reset Calc Price

Reset Day

Prior Business Day

 

Preceding Business Days

 

3

 

First Payment/Valuation Date

1/5/2012

1/5/2012

1/5/2012

Last Payment/Valuation Date

10/5/2012

7/5/2012

7/5/2012

First Rate Reset Date

 

 

1/5/2012

Reset Lookback Days

 

 

2

Reset Lookback Days Type

 

 

B

Manual Scheduling

Eagle Accounting also supports loading Swap Reset Schedule data directly. Refer to TRS Swap Reset Schedule Upload Processing Notes for details.

Unscheduled/Ad Hoc Resets

Some TRS can have unscheduled/ad hoc resets when predefined exposure levels are breached, among other reasons. In these cases the schedule for both legs must be edited to add the new reset date. Follow the steps in Swap Unscheduled/Ad Hoc Resets Processing Notes to edit the current period and add a new period.

Security Data

TRS can be set up and maintained using Issue Viewer or RDC. Most data is entered on the contract and propagated to the legs. Specific reset and accrual conventions are entered separately on each leg.

Contract

  • Issue Name (961)

  • Primary Asset ID (14) & Type (1432): ensure duplicate IDs are allowed (see Storage & Configuration section above)

  • Processing Security Type (3931) = SWCOTR (Total Return Swap Contract)

  • Price Multiplier (18): can be 0.01 or 1.00 as the contract is not used for valuation

    • When using RDC, enter the value required for the return leg because it will propagate down

  • Issue Country (1418)

  • Asset Currency (85)

  • Notional Reset Type (4409): select Recalc Notional (R) for floating notional or Constant Notional (C) for fixed notional

    • V17 R2: Recalc Notional - Forward (RF) and Constant Notional - Forward (CF) were added to support forward-starting TRS where the number of shares or total notional is known at trade time, but the price is not

      • These elections allow a trade to be booked without providing a price

      • When the price is locked in, an initial "cashless" reset (only locks in the price/cost) is triggered using the normal process

  • Issue Date (68): first trade date of the swap

  • Dated Date (1183): date accruals start, "Effective Date" in ISDA contracts

    • For TRS on SNFI, this can be set to Dated Date of the the underlying bond

  • Maturity Date (38): date swap expires, "Expiration Date" or "Termination Date" in ISDA contracts

    • Must be a valid business day

    • If the final accrual period extends past the stated Expiration/Termination Date, Maturity Date must be pushed out to accommodate the extra day(s)

  • Maturity Delay Days (3997): delays core maturity process X days to allow a close transaction to be entered in lieu of maturity (during this period valuations will still be calculated if the security is priced); the maturity process will trigger as normal after this delay

    • Using this field does not affect the actual Maturity Date stored in Eagle on the cost object, in the position table, etc. because the maturity process checks for Maturity Delay Days on the fly

    • Must be populated on the contract and legs for SMFs created via Message Center

  • Maturity Delay Days Type (3998): measure the maturity delay in B (Business) or C (Calendar) days

    • Note: you must have a business calendar populated in Calendar Name (1941) on your entity to use B (Business) days

    • Must be populated on the contract and legs for SMFs created via Message Center

Return Leg

  • Processing Security Type (3931)

    • SWLXEQ (Swap Leg Total Rate Return on Equity): for index, equity, or basket underlyings

    • SWLEDB (Swap Leg Total Rate Return on Fixed Income): for an SNFI underlying where the return leg drops coupons following the schedule of the underlying bond

  • Price Multiplier (18): 1.00 for equity, index, or basket underlyings, or 0.01 for SWLEDB

    • Entered on return leg in Issue Viewer

  • Reset Price Timing/Calc Price (3314): defines whether the price used in the reset process is taken as of payment date, or X number of days prior to payment date

    • Typically Reset Day if Lag/Coupon Delay Days = NULL/0 or Prior Business Day if Lag/Coupon Delay Days > 0

    • Set to Reset Day when using Decoupling

    • Prior Business Days/Preceding Business Day (10548): number of days prior to reset date to pull the reset price

      • Typically set to same value as Lag/Coupon Delay Days to use the price from valuation date

      • A value of 0 has the same effect as setting Reset Price Timing/Calc Price = Reset Day

  • Payment Frequency (472): select appropriate reset frequency

  • Business Day Convention (1536): typically Modified Following, which is ADJMBC (Modified Following - Adjusted) in V15 R2 and above, ADJMBC (Modified Business Day - Adjusted) below V15 R2

    • Coupon Day of Month (10551): required if Business Day Convention != NULL/None (NONE)

      • Enter the regular valuation day of month

      • Allows for valuation dates that are out of sync with the true first valuation date

      • Example: if the first valuation date were the 11th due to a holiday, but all other valuation dates were the 10th, the 10 would be entered and used to project future valuation dates

  • Business Calendar (1480): as specified in the contract; a composite calendar (including dates from two different calendars) may need to be set up if multiple business calendars are observed

    • This is required even if Business Day Convention is set to NULL/None (NONE)

  • Day of Month Override (1533): set to WDC (Week Day of First Coupon) for swaps using the International Monetary Market (IMM) calendar, otherwise leave null

  • Delay Days (1799): number of days between reset date and payment date (reset date is the same as valuation date when using Decoupling)

    • 2 and 3 are most common when using Decoupling, null or 0 when using the original method

    • Allows the final payment to occur after Maturity Date

    • Delay Days Type (5074): measure cash settlement delay in B (Business) or C (Calendar) days

  • Lag/Coupon Delay Days (4908): number of days between valuation (pricing) date and reset date (when cost and notional change)

    • Typically null or 0 when using Decoupling, 2 or 3 when using the original method

    • Each reset date is projected as valuation date + X days

    • Lag/Coupon Delay Days Type (3999): measure delay between valuation date and reset date in B (Business) or C (Calendar) days; typically B (Business) days

  • Dated Date (1183): date accruals start, "Effective Date" in ISDA contracts

    • For TRS on SNFI, this should be set to Dated Date of the the underlying bond

  • First Payment/Valuation Date (473): enter the first valuation date (1/5/12 from attached example)

    • Lag/Coupon Delay Days will be added to this to determine the first reset date

    • Refer to Calculate Coupon Dates Processing Notes if the adjusted date is not available

    • SWLEDB: enter the underlying bond's next coupon date after Dated Date of the TRS (V17 R2.43+)

  • Last Payment/Valuation Date (474): enter the valuation date associated with the last reset prior to termination

    • Lag/Coupon Delay Days will be added to this to determine the last reset date

    • Refer to Calculate Coupon Dates Processing Notes if the adjusted date is not available

    • Must be set to the final valuation date (not penultimate) when using Decoupling

    • SWLEDB: enter the underlying bond's last coupon date prior to Maturity Date of the TRS (V17 R2.43+)

  • Final Valuation Date (1369): required when using Decoupling and for Bullet Swaps where there is a single reset at maturity

  • Generate Swap Reset Schedule (2299, V17): a Swap Reset Schedule is critical for automated corporate action processing (see the Corporate Actions section for details)

    • Yes: schedule is generated automatically when security is added or changed

      • A schedule is required to process return leg resets starting in V17 R2.43

        • In earlier releases a schedule is only required for automated corporate action processing and this field can be set to No for any TRS that are ineligible for corporate actions

      • If dates in the SMF-level Business Calendar are modified after the schedule is generated, it will need to be regenerated for the changes to take effect

        • We recommend regenerating schedules annually and/or whenever a security's Business Calendar is updated, unless the schedule has been customized

    • No: schedule is not generated when security is added or changed

      • This is the default for Processing Security Type = SWLEDB (Swap Leg Total Rate Return on Fixed Income) starting in V17 R2.43 because additional dates must be provided when generating the schedule

    • Additional information about Swap Reset Schedules is available in Swap Reset Schedule Processing Notes

  • Underlying Security (1347): mainly for reporting purposes as Eagle Accounting does not automatically retrieve the underlying's prices for trading and valuation

Finance Leg

  • Processing Security Type (3931) = SWLEAC (Swap Leg Interest Accrual)

  • Coupon (70): enter zero for floating (or variable) rate to indicate that rates must be viewed from underlying index, or enter stated fixed rate if applicable

  • Coupon Type (97): typically X (Floating Rate) or F (Fixed Rate)

  • Day Count Basis (471): as specified in contract

  • Payment Frequency (472): as specified in contract

  • Business Day Convention (1536), Coupon Day of Month (10551), & Business Calendar (1480): same values as return leg

  • Delay Days (1799) & Type (5074): number of days to delay coupon cash settlement after reset date

    • Typically zero for finance leg

  • Lag/Coupon Delay Days (4908): number of days between valuation (pricing) date and coupon date (when interest is paid)

    • Typically same value as Delay Days on the return leg when using Decoupling, or Coupon Delay Days when using the original method

    • Each coupon date is projected as valuation date + X days

    • Applies to floating rate resets (the first one occurs on First Rate Reset Date + X days)

    • Cannot be used to extend the final coupon period past Maturity Date (it must be adjusted in order to extend the final coupon period)

    • Lag/Coupon Delay Days Type (3999): measure delay between valuation date and coupon date in B (Business) or C (Calendar) days; typically B (Business) days

  • Dated Date (1183): for TRS on SNFI, this can be set to Dated Date of the the underlying bond

  • First (473) & Last Payment/Valuation Date (474): same dates as return leg

  • Floating Rate Fields

    • First Rate Reset Date (10911): same as First Payment/Valuation Date in most cases

      • This is used with Lag/Coupon Delay Days and Reset Look-Back Days to calculate fixing dates

      • Example (attached): enter 1/5/12 for First Rate Reset Date because First Payment/Valuation Date = 1/5/12

      • For cases where First Payment/Valuation Date is prior to Dated Date, which can occur when using Lag/Coupon Delay Days, First Rate Reset Date should be set to the actual first payment date

        • Example: if Dated Date = 12/11/2025, First Payment/Valuation Date = 12/10/2025, and Lag/Coupon Delay Days = 2, then First Rate Reset Date should be set to 12/12/2025

        • This configuration is restricted in the core product and requires a local panel overlay to allow it

    • Reset Frequency (1788): same as Payment Frequency

    • Reset Look-Back Days (10547): number of days prior to each reset date (or Dated Date for the initial period) to grab the new floating rate

      • For the first reset date from attached example (1/10/12), a value of 2 will take the rate from 1/6/12 (fixing date)

      • Reset Look-Back Days Type (5075): measure look-back in B (Business) or C (Calendar) days

    • Fixing Date Business Center (16407, V15 R2.18): select calendar used for floating rate resets, which may be different than the calendar used for payment dates

      • This calendar is used in lieu of the main Business Calendar when applying Reset Look-Back Days for fixing dates

    • Underlying Security (1347): floating rates will be automatically retrieved from this underlying index

    • Spread/Index Offset (215): spread above or below the floating rate, entered in basis points (0.55% = 55)

      • When a floating rate (0.25%) plus negative spread (-55 bps) goes negative (effective rate = -0.3%), accruals and coupons are posted in the appropriate direction

      • Refer to Time Sensitive Processing Notes for details about modeling spread changes during the life of swap

Commodity Swap Accrual Conventions (V17 R2)

Most commodity TRS use standard interest accrual conventions (simple average or compound average in arrears). However, some bespoke contracts stipulate unique accrual conventions. The functionality described below should only be used in these rare cases. One example is the 91-Day Treasury Bill rate.

  • This is calculated as the 3-month US Treasury high-discount auction rate converted from a discount to a daily compounded basis

  • To calculate accruals correctly one day's worth of return needs to be applied to the finance leg notional and compounded daily during the period

  • Compounding only occurs on the floating rate portion of the accrual and does not include the fee (spread); this is known as Compounding with Simple Spread (non-ISDA) and can be accomplished with the following settings

    • Underlying Security (1347): select index security loaded with 3-month US Treasury high-discount auction rates

    • Compounding Indicator (11875) = Yes