Currency Swaps (CCS) Best Practices
Overview
This document applies to all releases of Eagle software V11 and above. Version-dependent functionality is noted with the initial release(s) it became available.
Currency Swaps, also known as Cross Currency Swaps (CCS) and FX Swaps, allow one party to make periodic fixed or floating interest rate payments to a counterparty in one currency in exchange for fixed or floating rate payments in another currency. This document covers the full lifecycle including Eagle Accounting, Data Management, and Performance.
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. The changes in notional may be accompanied by an exchange of cash equal to the notional amounts, similar to the final exchange for a Vanilla CCS. In some cases, known as Rollercoaster Swaps, the notional value can also increase temporarily, before eventually amortizing down to zero.
Example reference data screens, trade screens, and reports are attached:
On this page
Related content
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 Currency Swap 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
Unlike Interest Rate Swaps, both legs of a Currency Swap can have fixed interest rates (if that is the case, skip ahead to the last paragraph of this section). However, at least one leg typically 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 Currency Swap’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 issue date (or previous coupon date if swap is traded off-market)
Interest rates must also be loaded for each reset date (or reset date minus look-back days, which are discussed further in the following section)
Currency Swaps are priced at the contract level in Eagle Accounting. Pricing 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.
New functionality was introduced in V17 R2.31 to convert Currency Swap prices provided at the leg level into a single contract-level price
Refer to Currency (FX) Swaps Price Conversion Processing Notes for details
Security Data
Currency Swaps can be set up and maintained in Issue Viewer, SRM, or RDC. Most data is entered on the contract and propagated to the legs. Fields that define specific accrual conventions must be entered separately on each leg. Eagle Accounting supports all combinations of leg-level attributes including fixed vs. floating rate, floating vs. floating rate, and different day counts, payment frequencies, reset logic, business day conventions, and business calendars
Contract
Issue Name (961)
Primary Asset ID (14) & Type (1432): ensure duplicate IDs are allowed (see the Storage & Configuration section above)
Processing Security Type (3931) =Â
SWCOCR (Currency 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
Currency Swap prices are sometimes supplied having already been multiplied by 0.01
Issue Country (1418)
Asset Currency (85): the trading and pricing currency of the contract
This should match the pay or receive leg, but may be different in rare cases
The Bloomberg field is Valuation Ccy in SWPM
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
Initial (8554) & Final Exchange of Principal (8555): defines whether there is an initial and final exchange of notional
The fields are dependent on each other, so both will be set to either
Yes
orNo
If the contract stipulates an exchange at the beginning or end (not both), this can be accomplished when booking the trade
For Amortizing Notional Swaps,
Yes
will also trigger a cash exchange each time the notional changes
Cleared Security (5027) =
No
If you are currently trading cleared Currency Swaps, please contact Instrument Engineering
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 Accrual Leg)
Asset Currency (85): the pay leg should be populated with the currency of interest payments, while the receive leg is populated with the currency of interest receipts
Coupon (70): enter stated rate for fixed legs, or zero for floating/variable rate legs to indicate that actual rates must be viewed from the VARIABLE_RATE table
Coupon Type (97): typically fixed or floating, variable rate may be required in special cases
Day Count Basis (471): select appropriate day count basis for each leg as specified in the contract
Payment Frequency (472): select appropriate payment frequency for each leg
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 R2Coupon 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
Delay Days (1799): can be used to delay cash settlement for X days past scheduled payment dates
Delay Days Type (5074): whether delay days are measured in business or 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 Calculate Coupon Dates Processing Notes 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 Calculate Coupon Dates Processing Notes if the adjusted date is not available
Floating Rate Fields (if applicable)
First Rate Reset Date (10911): enter the actual first reset date, including any adjustments for weekends/holidays (same as first payment date unless the rate resets more frequently)
Reset Frequency (1788): same as payment frequency unless the rate resets more frequently
Reset Lookback Days (10547): number of days prior to reset date to take new floating rate
Reset Lookback 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 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
)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
Trade Processing
Open (event type: OPENSWAP)
Trades are entered using Book Trade once the entity and reference data have been configured. Enter the appropriate entity, security identifier, and trade (35)/settle dates (37) and click Submit to query for the security. Right-click it and select Open > Open Swap Contract. Most remaining trade information is entered on the legs.
Contract
Traded Interest/Effective Date (2857):Â date to which traded interest is calculated; typically Trade Date or T+1
CCS sometimes have Trade Date = Settlement Date, where Traded Interest/Effective Date needs to be T+1 to calculate correct traded interest and accruals
Accrual Convention Offset Override (1604): can be used to override the entity value of Accrual Convention Offset (12038) if it is set to
Settlement Date + 1
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
Notional Principal Value (40): enter value specified in contract; this will be used for valuation
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
Notional Principal Value (40): if the currency of one leg matches the contract, this will be automatically populated for that leg
Enter the offsetting notional on the other leg
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
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)
Notional Exchange Fields: only visible if Initial & Final Exchange of Principal are set to
Yes
 (refer to the table below for an example of a long trade)Initial Cash Receipt (316): cash being received at contract initiation
Previously named Paying Leg Initial Cash AmountÂ
Initial Cash Payment (366): cash being paid at contract initiation
Previously named Receiving Leg Initial Cash AmountÂ
Final Cash Payment (8317): cash being paid at contract termination
Previously named Paying Leg Forward Units
Final Cash Receipt (8318): cash being received at contract termination
Previously named Receiving Leg Forward Units
Note: if the trade is booked short, the values you would typically enter should be flipped (if Initial Cash Receipt = 10 million and Initial Cash Payment = 9 million when long, Initial Cash Receipt = 9 million and Initial Cash Payment = 10 million when short)
Transaction | Pay Leg: KRW | Receive Leg: USD |
---|---|---|
Open | Pay Notional in USD
| Receive Notional in KRW
|
Daily Accrual | Pay accrual on KRW notional | Receive accrual on USD notional |
Termination | Pay Notional in KRW
| Receive Notional in USD
|
Close (event type: CLOSESWAP)
Book Trade 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. Partial terminations will reduce notional on the legs proportionately to notional closed on the contract. All fields on the close are the same as the open, except for a few mentioned below.
Contract
Lot Selection Method (27):Â CCS can be closed using either FIFO or IDLOT
If Lot Level Dated Date is used to override the initial rate and a
FIFO
close is booked before the next reset, traded interest calculated by Eagle Accounting may be incorrect because it will be based on the SMF attributesIn these cases, traded interest can be entered instead of calculated
Notional Exchange (16736, V15 R2.11 & V17 R2)
Yes: results in a cash exchange proportional to the notional closed out and reduces the final exchange obligations
No: results in no change to the final exchange amounts; this is the default value and is how all closes worked prior to V17 R2
Notional Principal Value (40): enter the notional being closed
Legs
Notional Principal Value (40): this will be automatically calculated from the amount entered on the contract.
Accrual End Date (4412): by default the legs will continue to accrue through Settlement Date - 1 (similar to a bond)
To accrue through Trade Date, populate Accrual End Date with Trade Date + 1
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 change date.
At each scheduled notional change 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.
Set Notional Exchange (16736) = Yes on the close trade to create a cash exchange
Conversion
The CONVERSION
event is supported for Currency Swaps. This uses the core open swap screen, rather than the dedicated conversion screen.
Cancel & Rebook
Faulty Currency Swap transactions must be cancelled using Batch Cancel Trades, with the transaction rebooked using the Book Trade module. Currency Swaps are not supported in the Cancel & Rebook Trade process. Maturities must also be canceled using Batch Cancel Trades.
Accounting
Once a Currency Swap trade is booked it will be picked up in Eagle’s global workflow. Daily accruals and periodic coupons 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. Currency gain/loss is calculated automatically using the market FX rates. These can be scheduled or triggered manually.
Valuation
Currency Swaps are valued using clean unit prices. The notional value of each leg is converted to the fund’s base currency using the best available FX rate. The market value can be positive or negative depending on FX and interest rate movements.
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 prices (excluding accrued interest) must be supplied to avoid double-counting
Eagle Accounting assumes that swaps have the same prices across all accounts, so entity-level price overrides must be used to accommodate different prices
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)
New functionality was introduced in V17 R2.31 to convert Currency Swap prices provided at the leg level into a single contract-level price
Refer to Currency (FX) Swaps Price Conversion Processing Notes for details
Prices should not be entered at leg level with Eagle Accounting. Non-Eagle Accounting clients can enter leg-level prices that net to the swap's total value, but Eagle Accounting is not designed to support this.
Amortizing Notional Swaps (V17 R2.30)
Notional changes (decreases and increases) 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 CCS. If Initial and Final Exchange of Principal are set to Yes
 on the SMF, a cash exchange will occur each time the notional changes.
Sweep Date (1197): date when Eagle Accounting’s global corporate action process will pick up the notional change
Ex Date (65): effective date of the notional change
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
Currency Swaps 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).
The final exchange of notional (indicated on the initial open) is triggered as part of the maturity process and final coupon payments are dropped as part of the accrual process.
Reporting
STAR to PACE (S2P)
Almost all reports in Eagle 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 Currency Swap 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: market value due to price fluctuations
Pay Leg: market value due to period-to-date accrual payable, converted to base using best available FX rate
Receive Leg: market value due to period-to-date accrual receivable, converted to base using best available FX rate
Accounting Reports
Eagle has a core set of accounting reports that can be used to review CCS and other security 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.
CCSs 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 Currency Swaps 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.
Exposure
Exposure reporting and analysis are available in the product suite, but some accounting data must be augmented via Eagle Enrichment. Currently there are no default rules to calculate exposure for Currency Swaps, so Eagle is looking for clients to help define how these rules should be configured to provide the required exposure values. Please contact Instrument Engineering for more information. 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.
CCS prices must be loaded to the contract only. Make sure you set tag 4590 = C
 in your price message.
When processing short trades for CCS with Initial & Final Exchange of Principal = Yes
, you must flip the values for Initial Cash Payment/Receipt and Final Cash Payment/Receipt as shown in the table below.
Trade Direction | Initial Cash Receipt (316) | Initial Cash Payment (366) | Final Cash Payment (8317) | Final Cash Receipt (8318) |
---|---|---|---|---|
Long | 1,000,000 | 1,300,000 | 1,000,000 | 1,300,000 |
Short | 1,300,000 | 1,000,000 | 1,300,000 | 1,000,000 |
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 | Message Center Stream | Sample Files |
---|---|---|
SMF Setup | eagle_default_in_csv_smf | |
Trades (Opens & Closes) | eagle_default_in_csv_trades OR |