Interest Rate Swaps (IRS) Best Practices

Overview

This document applies to all releases of Eagle software V11 and above and covers the full lifecycle including Accounting, Data Management, and Performance. Version-dependent functionality is noted with the initial release(s) it became available.

Interest Rate Swaps (IRSs) allow one party to make periodic floating rate interest payments to a counterparty in exchange for fixed rate payments (or floating rate payments based on a different underlying index, called Basis Swaps). Eagle Accounting supports both bilateral and cleared IRSs in V12.1.2 and above, with this document focusing on bilateral contracts. Refer to Cleared Swaps Best Practices for more information on processing cleared IRSs.

Support for Overnight Index Swap (OIS) accruals was added in V17 R2. The overnight index rates - US Fed Funds, EONIA (EUR), SONIA (GBP) - used for OIS accruals are based on an average of overnight unsecured lending between banks and are considered less risky than the standard interbank offer rates like LIBOR. They are often referred to as alternative reference rates (ARRs) or risk-free rates (RFRs). The rate typically refixes daily and is used to calculate a compounded rate of return. Support is available for both bilateral and cleared OIS.

Support for Amortizing Notional Swaps was added in V17 R2.30. These are swaps where the notional value decrease periodically throughout the life the contract. In some cases, known as Rollercoaster Swaps, the notional value can also increase temporarily, before eventually amortizing down to zero.

Support for bilateral Non-Deliverable Swaps (NDS) was added in V17 R2.41. These swaps are held and valued in a local non-deliverable currency, but all cash flows settle in a deliverable currency. Certain currencies are classified as non-deliverable because offshore trading is restricted, typically due to regulatory restrictions or other barriers. NDS are typically traded to gain exposure to Emerging Markets. Upfront and unwind proceeds can be processed in the applicable settlement currency through the Single Event trade panel (see the Trade Processing section for details). Periodic coupon payments are supported by configuring the Dual Currency functionality: Dual Currency Securities Processing Notes. Cleared NDS with variation margin processing turned on in Eagle Accounting should be modeled using the Clearing Broker FX Rates functionality: Clearing Broker FX Rates Processing Notes.

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 https://eagledocs.atlassian.net/wiki/spaces/IE/pages/1658978942 for additional information.

Reference Data

Storage & Configuration

Eagle models IRS 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 https://eagledocs.atlassian.net/wiki/spaces/IE/pages/1658978784.

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

At least one leg of an IRS always floats against an underlying interest rate index. Each index must be set up as an Index security using Issue Viewer, Security Reference Manager (SRM), or Reference Data Center (RDC). Other than identifiers, the only information that has to be entered is the currency.

Once the index has been setup, floating rates can be loaded using Add Variable Rate. Eagle Accounting will automatically pull the appropriate rates into the accrual process based on the floating 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 back to Dated Date (or previous coupon date if swap is traded off-cycle) and each subsequent coupon date minus Reset Look-Back Days

OIS (V17 R2): refer to LIBOR Replacement & Alternative Reference Rates (ARR) Best Practices for details about processing OIS and other securities linked to ARRs.

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 on coupon and non-coupon dates. Refer to https://eagledocs.atlassian.net/wiki/spaces/IE/pages/1658978531 for details about modeling spread changes during the life of swap.

Pricing in Eagle is done on a par-zero basis (prices around zero), so par-based prices (around 100) will have to be adjusted to generate the appropriate valuations. Refer to CDS & IRS Vendor Pricing Best Practices for details about adjusting par-based prices.

Security Data

IRSs can be set up and maintained in Issue Viewer, SRM, 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. Eagle Accounting supports all combinations of leg-level attributes including fixed vs. floating rate, floating vs. floating (Basis Swap), and different day counts, payment frequencies, reset logic, business calendars, etc.

Contract

  • Issue Name (961)

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

  • Processing Security Type (3931) = SWCOIR (Interest Rate Swap Contract)

  • Price Multiplier (18): the default of 0.01 will be correct in most cases, but may need to be changed to 1.00 (IRS prices are sometimes supplied having already been multiplied by 0.01)

  • Issue Country (1418)

  • Asset Currency (85)

    • NDS: set to the local non-deliverable currency (V17 R2.41+)

  • Settlement Currency (63)

    • NDS: set to the deliverable currency for trade proceeds, such as USD, EUR, GBP, etc. (V17 R2.41+)

  • Income Currency (1186)

    • NDS (optional): set to the deliverable currency, set Dual Currency Indicator (11802) = Yes, and populate additional fields as described in Dual Currency Securities Processing Notes to settle coupons in the deliverable currency

  • Notional Reset Type (4409, V17 R2.30+): defines whether this is an Amortizing Notional Swap

    • A (Amortizing Notional): enables Amortizing Notional Swap functionality

      • Notional changes are processed as corporate actions

    • NA (Non Amortizing): same as null

  • Cleared Security (5027) = No

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

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

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

  • Generate Swap Reset Schedule (2299, V17) = No 

Legs

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

  • Coupon (70): enter stated rate for fixed leg and zero for floating/variable rate legs to indicate that actual rates must be viewed from VARIABLE_RATE table

  • Coupon Type (97): typically F (Fixed Rate) or X (Floating Rate), although I (Variable Rate) may be required in special cases

    • Both legs should be set to X (Floating Rate) for Basis Swaps

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

  • Payment Frequency (472): as specified in contract

    • Typically MAT (At Maturity) for OIS

  • 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

    • Populate with NONE if Payment Frequency = MAT (At Maturity)

    • The following fields are conditionally required if Business Day Convention != NULL or NONE

      • Coupon Day of Month (10551): day of the month that payments are scheduled to be made, which will be automatically adjusted based on the Business Day Convention

      • Business Calendar (1480): as specified in the contract; a composite calendar (including dates from two different calendars) may need to be setup in some cases

  • 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): can be used to delay cash settlement for X days past scheduled payment dates

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

  • First Payment Date (473): enter the actual first payment date, including any adjustment for weekends/holidays based on the Business Day Convention

  • Last Payment Date (474): enter the actual last payment date, including any adjustment for weekends/holidays based on the Business Day Convention

  • Floating Rate Fields

    • First Rate Reset Date (10911): enter the actual first reset date, including any adjustments for weekends/holidays

      • This should be the same as First Payment Date unless the rate resets more frequently

      • Enter Dated Date or Dated Date + 1 business day for OIS

      • If Reset Frequency != 1_D (Daily), setting First Rate Reset Date = Dated Date will trigger a "no variable rate" error when you attempt to book a trade

    • Reset Frequency (1788): same as Payment Frequency unless the rate resets more frequently; 1_D (Daily) for OIS

    • Reset Look-Back Days (10547): number of days prior to reset date to take new floating rate

    • Reset Look-Back Days Type (5075): whether reset look-back days are measured in business or 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 will be used in lieu of the main Business Calendar when applying the Reset Look-Back Days for fixing dates

    • Underlying Security (1347): select appropriate floating rate index security

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

Trade Processing

Beginning in V17 R2.27, there are two methods available for booking IRS trades:

  • Multiple Events: this was the only method available prior to V17 R2.27

  • Single Event: this was introduced in R2.27 to allow IRS to use additional lot selection methods beyond FIFO, LIFO, and IDLOT

    • NDS functionality requires the Single Event method

    • Not available for Cleared Security = Yes

There are no differences in security setup or the resulting positions. You will still end up with separate positions for the contract and each leg. The difference when using the Single Event method is that all data is entered on the contract and the leg transactions are spawned in the engine. The same applies to transactions entered via Message Center. 

Open (event type: OPENSWAP)

Trades are entered using the Book Trade module once the entity and reference data have been configured. Enter the appropriate entity, security identifier, and trade (35)/settle (37) dates and click Submit to query for the security. Right-click it and select Open > Open Swap Contract or Open Swap Contract - Single Event.

If Accrual Convention Offset (12038) is set to Settlement Date + 1 on the entity, Accrual Convention Offset Override (1604) can be used to override the entity value and fall back to standard accrual processing for the resulting position.

Multiple Events

Most trade information is entered on the contract, with the exception of a few accrual-related fields on the legs.

Contract

  • Traded Interest/Effective Date (2857): date to which traded interest is calculated; typically Trade Date or T+1

    • IRS sometimes have Trade Date = Settlement Date, where Traded Interest/Effective Date needs to be T+1 to calculate correct traded interest and accruals

  • Select Values to be Calculated by STAR (7000)

    • Traded Interest: Eagle Accounting will calculate and create cash records for traded interest (only applicable for off-market trades)

    • Calculate None: traded interest can be entered manually

  • Data Entry Method (10485): select Enter Price to supply a clean unit price or Enter Total Settlement Amount to supply the all-inclusive trade proceeds (both can be positive or negative)

    • Enter Price: for the contract and each leg, cost (Principal) is calculated as Notional Principal Value * Price * Price Multiplier and Net Amount = Principal + Traded Interest

      • The legs of an IRS have no cost

    • Enter Total Settlement Amount: cost (Principal) is calculated as Total Settlement Amount - Traded Interest and Net Amount = Total Settlement Amount

    • Depending on the type of trade (open or close) and sign of the Price or Total Settlement Amount, Eagle Accounting will post either a premium payment or premium receipt

      • Open @ Positive Price/Amount ---> Premium Payment

      • Open @ Negative Price/Amount ---> Premium Receipt

      • Close @ Positive Price/Amount ---> Premium Receipt

      • Close @ Negative Price/Amount ---> Premium Payment

  • Notional Principal Value (40): enter value specified in contract

  • Price (45, if applicable): enter par-zero price (around zero)

    • Par-100 prices (around 100) must be converted to par-zero in order to have Eagle Accounting calculate the correct cost and cash

  • Total Settlement Amount (4404, if applicable): enter all-inclusive trade proceeds, including the effect of traded interest

  • Broker (88)

  • Counterparty (1144, optional): the counterparty can be selected from a list of all Issuers that have been tagged as counterparties (see Setting Up Legal Entities Best Practices for more information)

Legs

  • Lot Level Dated Date (4411, optional): for swaps traded in multiple lots, this field specifies the date from which traded interest will be calculated for each lot (the contract's dated date if null)

    • To have Eagle Accounting calculate zero traded interest, set this field equal to Traded Interest/Effective Date

  • First Period Coupon Rate (1360, floating rate legs only, optional): for swaps traded in multiple lots, this field can be used to override the floating rate for the first accrual period (Eagle Accounting will start using the floating rate index after the first reset is processed)

Single Event

Contract

  • Traded Interest/Effective Date (2857): date to which traded interest is calculated; typically Trade Date or T+1

    • IRS sometimes have Trade Date = Settlement Date, where Traded Interest/Effective Date needs to be T+1 to calculate correct traded interest and accruals

  • Select Values to be Calculated by STAR (7000)

    • Traded Interest: Eagle Accounting will calculate and create cash records for traded interest (only applicable for off-market trades)

    • Calculate None: traded interest can be entered manually

  • Data Entry Method (10485): select Enter Price to supply a clean unit price or Enter Total Settlement Amount to supply the all-inclusive trade proceeds (both can be positive or negative)

    • Enter Price: for the contract and each leg, cost (Principal) is calculated as Notional Principal Value * Price * Price Multiplier and Net Amount = Principal + Traded Interest

      • The legs of an IRS have no cost

    • Enter Total Settlement Amount: cost (Principal) is calculated as Total Settlement Amount - Traded Interest and Net Amount = Total Settlement Amount

    • Depending on the type of trade (open or close) and sign of the Price or Total Settlement Amount, Eagle Accounting will post either a premium payment or premium receipt

      • Open @ Positive Price/Amount ---> Premium Payment

      • Open @ Negative Price/Amount ---> Premium Receipt

      • Close @ Positive Price/Amount ---> Premium Receipt

      • Close @ Negative Price/Amount ---> Premium Payment

  • Notional Principal Value (40): enter value specified in contract

  • Price (45, if applicable): enter par-zero price (around zero)

    • Par-100 prices (around 100) must be converted to par-zero in order to have Eagle Accounting calculate the correct cost and cash

  • Total Settlement Amount (4404, if applicable): enter all-inclusive trade proceeds, including the effect of traded interest

  • Pay Traded Interest (17937): pay leg traded interest

  • Rec Traded Interest (17938): receive leg traded interest

  • Broker (88)

  • Counterparty (1144, optional): the counterparty can be selected from a list of all Issuers that have been tagged as counterparties (see https://eagledocs.atlassian.net/wiki/spaces/IE/pages/1658978889 for more information)

For NDS (where Settlement Currency != Asset Currency), the fields below also become required when Data Entry Method = Enter Total Settlement Amount (V17 R2.41+).

  • Total Settlement Amount Settle (18397): deliverable settlement amount

  • Xrate Local Settle (66): you can optionally override the value pulled from the entity’s FX Source (1344)

  • Conditionally shown when Commission and Fee Settle Separately (12860) = Yes

    • Comm Amount S (17989): commission in deliverable currency

    • Other Fee S (17988): trade fee in deliverable currency

    • Commission Settlement Date (11579)

    • Other Fee Settlement Date (9357)

      • If the same date is used for Commission Settlement Date and Other Fee Settlement Date, the amounts are netted to a single cash record, otherwise separate records are created

Close (event: CLOSESWAP)

The Book Trade module should also be used to process both full and partial terminations. Enter the same identifiers as the open to query for the security. Right-click it and select Close > Close Swap Contract or Open Swap Contract - Single Event. Like the open, most information is entered on the contract when using Multiple Events. Almost all fields on the close are the same as the open.

  • Accrual End Date (4412): defaults to Settlement Date, which results in Traded Interest through Settlement Date - 1 (similar to a bond)

    • To calculate through Trade Date (typical for IRS), populate with T+1

  • Lot Selection Method (27): defines the order in which lots are relieved

    • Inherited from the entity, but can be overridden

    • Closes must be processed using Identified Lot (IDLOT) in versions prior to V12.1.5.18, V13.1.2.15, and V15 R2

    • The Multiple Events method only supports Identified Lot (IDLOT), FIFO, and LIFO closes in the versions listed above and all subsequent releases

    • The Single Events method supports any available Lot Selection Method (27) in V17 R2.27 and above except Modified FIFO (MFIFO), Best Tax (BTAX), Tax Advantage (TXADV), and Tax Efficiency (TXEFF)

Amortizing Notional Swaps (Pre-V17 R2.30)

In versions prior to V17 R2.30, a workflow can be implemented that produces the expected results. This involves booking a close (or open) for each scheduled notional amortization date. At each scheduled notional decrease date, enter a close trade at the same price as the open for the difference between remaining notional for the current period and remaining notional for the next period.

Conversion

The CONVERSION event is supported for IRS. This uses the core open swap screen, rather than the dedicated conversion screen.

Cancel & Rebook

Faulty IRS transactions must be cancelled using Batch Cancel Trades, with the transaction rebooked using the Book Trade module. IRSs are not supported in the Cancel & Rebook Trade process. Maturities must also be canceled using Batch Cancel Trades.

Accounting

Once an IRS trade is booked it will be picked up in Eagle’s global workflow. Daily accruals (whether positive, negative, or zero) and periodic resets are generated as part of the earnings process, Accounting valuation is calculated when posting unrealized gain/loss, and Data Management valuation is calculated in STAR to PACE. These can be scheduled or triggered manually.

Valuation

Eagle Accounting values IRSs using clean unit prices on a par-zero basis (around zero rather than around 100). There is also functionality to take in a clean or dirty market values and convert it to a clean unit price.

  • If the use of dirty prices is required, the legs should be setup to not accrue

    • This can be done by entering fixed rate coupons of zero, which also suppresses cash payments.

Eagle Accounting assumes that swaps have the same prices across all accounts. If this is not the case, entity-level price overrides can be used to accommodate different prices.

Clean Prices

Prices are entered at the contract level using Add Issue Price. The market value formula is:

  • Market Value = Notional Amount * Price * Price Multiplier * Quantity Scale

    • Clean par-zero prices must be supplied to avoid double-counting accrued interest and overstating the market value

Prices should never be entered at leg level when Eagle Accounting is used. Non-Eagle Accounting clients have the option of entering leg-level prices only, that net to the total value of the swap. This should only be done if necessary to accommodate other systems.

Clean or Dirty Market Values

Some swaps are priced using clean or dirty market values, more often the latter. Accounting has a process to “clean up” these market values and convert them to clean unit prices. Refer to  for detailed formulas.

Note: this process can only be used when each CDS is only held in a single fund, which is typical for market value-priced swaps.

Market values are entered using Insert/Update Price Exchange.

  • Price Date (1109)

  • Original Price (893): Clean Market Value or Dirty Market Value

  • Price Type Code (1843): select Clean Market Value or Dirty Market Value based on available data

  • Units (40): enter the notional of the IRS, which must match the notional of the position in Eagle Accounting (the process will error out if there is a mismatch in notional)

Once the market value is entered use Global Process Center > Calculate Clean Unit Price to trigger the calculation. This can be done for a particular swap or all swaps for a specified date, or scheduled as part of the daily workflow. There are two flags that must be set before triggering the process:

  • Reprice Flag (1844): Yes updates the existing clean price for the selected Source, No leaves the existing price in the database

  • Pricing Center Flag (1257): Yes inserts/updates the clean unit price in the price exchange table used by Pricing Center and the price table, No inserts/updates it in the price table only

Amortizing Notional Swaps (V17 R2.30)

Changes in notional are processed as corporate actions. The announcements are added at the contract level and applied proportionately to both legs. To create one, open Reference Data Center > Corporate Actions > Announcements > Create Amortizing Notional or Issue Viewer > Corporate Action Announcements > Amortizing Notional and query for your IRS.

  • Sweep Date (1197): date when Eagle Accounting’s global corporate action process will pick up the change in notional

  • Ex Date (65): effective date of the change in notional

  • Corporate Action Status (54): select Released to initiate the change in notional when the global corporate action process runs for the Sweep Date

    • Select Pending or Incomplete to simply store the announcement and not have it process automatically

  • Prior Notional Amount (1725): from the previous period

  • Current Notional Amount (1712): from the new period

  • Percent Change In Notional Amount (1001): calculated automatically as (Current Notional Amount - Prior Notional Amount) / Prior Notional Amount * 100 

    • This rate is applied proportionately to both legs

  • Corporate Action Type (1728) = Amortizing Notional

The global corporate action process will be scheduled to run in production similar to other global events, but it can also be triggered manually via Accounting Center > Processing and Exceptions > Global Processes > Corporate Actions > Amortize Notional.

Accruing on Negative Interest Rates

Mature/Expire

IRSs will be picked up by Eagle Accounting’s core maturity process. This will be scheduled in production environments, but can be triggered manually via Accounting Center > Processing and Exceptions > Global Processes > Expirations & Maturities > Run Mature Process (V17) or Global Process Center > Expirations > Mature (prior to V17).

There is no cash component to the IRS maturity event itself because swaps have a Maturity Price of zero and final coupon payments are dropped as part of the accrual process.

Reporting

STAR to PACE (S2P)

Almost all reports in Eagle Accounting leverage data from Data Management, which is populated by the S2P process. This will be scheduled as part of the daily workflow, but can also be triggered manually as described in the Accounting section.

The S2P process creates three rows for each IRS in the POSITION, POSITION_DETAIL, TRADE, and CASH_ACTIVITY tables. The MARKET_VALUE_INCOME column for each row captures a portion of the total market value.

  • Contract Position: market value due to price fluctuations

  • Pay Leg Position: market value due to period-to-date accruals payable

  • Receive Leg Position: market value due to period-to-date accruals receivable

Accounting Reports

IRSs are displayed as three separate rows. The contract and legs are intended to be displayed together, but may be broken into different areas depending on the report's groupings (long/short, for example).

Insurance Reporting

Data Management Reporting

Performance

The performance toolkit calculates market value-based performance for IRSs at the contract (price changes) and leg (accruals paid/received) levels using data supplied by the S2P process. However, this can be misleading because swaps use notional values and typically start with a market value of zero. Exposure-based analyses, which can be implemented using Eagle Enrichment, calculate more meaningful returns. The documentation and .egl files are linked below. Additional details are available in https://eagledocs.atlassian.net/wiki/spaces/IE/pages/1658978513 and Manage Eagle Enrichment.

Automation

Refer to Multi-Leg Swap Automation Processing Notes for general information about multi-leg security setup and trade processing via Message Center.

Additional notes for IRS:

  • When booking trades, Data Entry Method (10485) should be populated for the contract and legs

  • For valuation, prices must be loaded to the contract only by setting tag 4590 = C in your price message

Sample messages for the standard interfaces are listed below. The second row of each CSV message contains the tag names; this is for informational purposes only and should be deleted before the message is loaded.

Transaction Type

CSV Stream

CSV Sample Files

EagleML Stream

EagleML Sample Files

Transaction Type

CSV Stream

CSV Sample Files

EagleML Stream

EagleML Sample Files

SMF Setup

eagle_default_in_csv_smf

Note: these SMF files are identical other than the identifiers.

eagle_ml-2-0_default_in_xml_smf_generic

Note: these SMF files are identical other than the identifiers.

Trades

eagle_default_in_csv_trades OR
eagle_default_in_csv_all




eagle_ml-2-0_default_in_xml_acct_trades