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.
On this page
Related content
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 to1.00
(IRS prices are sometimes supplied having already been multiplied by0.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 functionalityNotional changes are processed as corporate actions
NA (Non Amortizing)
: same as null
Cleared Security (5027) =
No
Refer to Cleared Swaps Best Practices for information on processing cleared IRSs
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
A Swap Reset Schedule is only required to support automated corporate action processing for Total Return Swaps
Additional information about Swap Reset Schedules is available in https://eagledocs.atlassian.net/wiki/spaces/IE/pages/9671999489
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)
orX (Floating Rate)
, althoughI (Variable Rate)
may be required in special casesBoth legs should be set to
X (Floating Rate)
for Basis Swaps
Day Count Basis (471): as specified in contract
Use
ACT/252
(rather thanBUS/252
) for Brazilian Pre-DI IRS that pay at maturity; refer to https://eagledocs.atlassian.net/wiki/spaces/IE/pages/1658978760 for additional information
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 R2Populate with
NONE
if Payment Frequency =MAT (At Maturity)
The following fields are conditionally required if Business Day Convention !=
NULL
orNONE
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 nullDelay 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)
orC (Calendar)
days
First Payment Date (473): enter the actual first payment date, including any adjustment for weekends/holidays based on the Business Day Convention
Refer to https://eagledocs.atlassian.net/wiki/spaces/IE/pages/9633693781 if the adjusted date is not available
Last Payment Date (474): enter the actual last payment date, including any adjustment for weekends/holidays based on the Business Day Convention
Refer to https://eagledocs.atlassian.net/wiki/spaces/IE/pages/9633693781 if the adjusted date is not available
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 OISReset 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
Refer to LIBOR Replacement & Alternative Reference Rates (ARR) Best Practices for details about processing OIS and other securities linked to ARRs
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 https://eagledocs.atlassian.net/wiki/spaces/IE/pages/1658978531 for details about modeling spread changes during the life of swap
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.
Single Event
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 R2The Multiple Events method only supports
Identified Lot (IDLOT)
,FIFO
, andLIFO
closes in the versions listed above and all subsequent releasesThe 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)
, andTax 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
orDirty Market Value
Price Type Code (1843): select
Clean Market Value
orDirty Market Value
based on available dataUnits (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 databasePricing 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 DateSelect
Pending
orIncomplete
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 |
---|---|---|---|---|
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_ml-2-0_default_in_xml_acct_trades |