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 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 by following the steps here: Allow Duplicate Cross Reference Identifiers Processing Notes.
Refer to Multi-Leg SWAPIDs Processing Notes for information about the unique IDs 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): in addition to the overnight "published index" (set up like any other floating rate index), a secondary "calculation index" must be created to calculate the compounded rate of return. The compounded rate of return is used by Eagle Accounting to calculate accruals, while still allowing the overnight published index rates to be loaded as usual. Refer to LIBOR Replacement & Alternative Reference Rates (ARR) Best Practices for details about processing OIS and other securities linked to RFRs.
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 Time Sensitive 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)
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
- 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 here: Swap Reset Schedule Processing Notes
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 cases- Both legs should be set to
X (Floating Rate)
for Basis Swaps
- Both legs should be set to
- Day Count Basis (471): as specified in contract
- Use
ACT/252
(rather thanBUS/252
) for Brazilian Pre-DI IRS that pay at maturity; additional details in Brazilian Day Counts Processing Notes
- Use
- 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
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
- Populate with
- 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)
orC (Calendar)
days
- Delay Days Type (5074): measure cash settlement delay in
- First (473) & Last Payment Date (474): enter the actual first and last payment dates, including any adjustments for weekends/holidays
- 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; calculation index for OIS
- Refer to LIBOR Replacement & Alternative Reference Rates (ARR) Best Practices for details about processing OIS and other securities linked to RFRs
- 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
- First Rate Reset Date (10911): enter the actual first reset date, including any adjustments for weekends/holidays
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
- Not available for Cleared Security =
Yes
- Not available for Cleared Security =
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 (
transactionevent 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.
Multiple Events
Most trade information is entered on the contract, with the exception of a few accrual-related fields on the legs.
Expand | ||
---|---|---|
| ||
Contract
Legs
|
Single Event
Expand | ||
---|---|---|
| ||
Contract
|
Close (
transaction typeevent: 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
, andLIFO
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
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.
Include Page | ||||
---|---|---|---|---|
|
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 Dirty MV Calculation Example.xlsx 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 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
orIncomplete
to simply store the announcement and not have it process automatically
- Select
- 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
Include Page | ||||
---|---|---|---|---|
|
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
Eagle has a core set of accounting reports that can be used to review IRS information. These are designed to support the daily operational workflow for business users, allowing Grid Reports to be easily exported to Excel and customized to provide additional details as needed. Advanced Reports are intended to be client-facing and do not provide the same level of customization.
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
Include Page | ||||
---|---|---|---|---|
|
Data Management Reporting
Include Page | ||||
---|---|---|---|---|
|
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 Exposure Reporting Best Practices 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.
Transaction Type | CSV Stream | CSV Sample Files | EagleML Stream | EagleML Sample Files |
---|---|---|---|---|
SMF Setup | eagle_default_in_csv_smf | IRS - SMF - Multiple Events.csv Note: these SMF files are identical other than the identifiers. | eagle_ml-2-0_default_in_xml_smf_generic | IRS - SMF - Multiple Events.xml Note: these SMF files are identical other than the identifiers. |
Trades | eagle_default_in_csv_trades OR eagle_default_in_csv_all | IRS - Open - Multiple Events.csv | eagle_ml-2-0_default_in_xml_acct_trades | IRS - Open - Multiple Events.xml |