Cross Currency Swaps (CCS) Best Practices

Cross 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.

Cross Currency Swaps (CCS, XCCY), also known as Currency Swaps or FX Swaps, allow one party to make periodic fixed or floating interest payments in one currency in exchange for fixed or floating interest payments in another currency from a counterparty. Unlike Interest Rate Swaps (IRS), it is common to exchange two fixed rates. They can also include a cash exchange of notional at the beginning and end of the contract. This document covers the full lifecycle including Eagle Accounting, Data Management, and Performance.

Support for Amortizing Notional Swaps was added in V17 R2.30. For more information, see Amortizing Notional Swaps Processing Notes.

Support for Mark-to-Market (MTM) CCS, also known as resettable CCS, was added in V17 R2.52. For more information, see Mark-to-Market Currency Swaps 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 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 Reference Data Center (RDC) or Issue Viewer. 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 in release prior to V17 R2.50. Prices can be add at the leg level instead starting in V17 R.50. Ensure prices are not loaded to both the contract and legs. Contract-level 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. Leg-level prices can be par-zero or par-100 as long as it is consistent between the legs.

Security Data

Currency Swaps can be set up and maintained in RDC or Issue Viewer. 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 to 1.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 functionality

      • Notional changes are processed as corporate actions

    • NA (Non Amortizing): same as null

  • Initial (8554) & Final Exchange of Principal (8555): determine 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 or No

    • 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 trade 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 R2

  • 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

  • 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

  • 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 (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

Beginning in V17 R2.49, there are two methods available for booking Currency Swap trades:

  • Multi-Event: this was the only structure available prior to V17 R2.49

  • Single-Event: this was introduced in R2.49 for consistency with other multi-leg swap trading in Eagle Accounting

    • Entering trades based on a total settlement amount requires Single-Event

    • 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 Single-Event 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 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 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.

Multi-Event

Trade information is entered on the contract and 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

  • Notional Principal Value (40): enter value specified in contract; this will be used for valuation

  • Price (45): 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

  • 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, defaults to pay leg notional

      • Previously named Paying Leg Initial Cash Amount

    • Initial Cash Payment (366): cash being paid at contract initiation, defaults to receive leg notional

      • Previously named Receiving Leg Initial Cash Amount 

    • Final Cash Payment (8317): cash being paid at contract termination, typically equal to pay leg notional

      • Previously named Paying Leg Forward Units

    • Final Cash Receipt (8318): cash being received at contract termination, typically equal to receive leg notional

      • 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: CAD

Receive Leg: USD

Transaction

Pay Leg: CAD

Receive Leg: USD

Open

Receipt of Pay Leg Notional in CAD

Disbursement of Receive Leg Notional in USD

Daily Accrual

Accrue Payable on CAD Notional

Accrue Receivable on USD Notional

Termination or Close

Disbursement of Pay Leg Notional in CAD

Receipt of Receive Leg Notional in USD

Single-Event

  • 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

  • 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

  • Contract Notional (40): notional value for the contract

  • Pay Leg Notional (18600): notional value for the pay leg

    • Locked and defaulted to same value as Contract Notional when Pay Leg Issue Currency (1356) = Contract Issue Currency (85)

  • Rec Leg Notional (18601): notional value for the receive leg

    • Locked and defaulted to same value as Contract Notional when Rec Leg Issue Currency (1357) = Contract Issue Currency

  • 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)

    • Available in V25 R1.1 and above

    • Enter Price: cost (Principal) is calculated as Notional Principal Value * Price * Price Multiplier and Net Amount = Principal + Traded Interest

      • The legs of a CCS have no cost, and the contract has no traded interest

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

      • Leg-level traded interest is converted to the Contract Issue Currency equivalent using the prevailing FX rate

    • 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

  • Price (45): enter par-zero price (around zero) if Enter Price was selected above

    • 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 Local (4404): enter all-inclusive trade proceeds in the Contract Issue Currency, including the effect of traded interest, if Enter Total Settlement Amount was selected above

    • Available in V25 R1.1 and above

  • 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)

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, defaults to pay leg notional

    • Previously named Paying Leg Initial Cash Amount

  • Initial Cash Payment (366): cash being paid at contract initiation, defaults to receive leg notional

    • Previously named Receiving Leg Initial Cash Amount 

  • Final Cash Payment (8317): cash being paid at contract termination, typically equal to pay leg notional

    • Previously named Paying Leg Forward Units

  • Final Cash Receipt (8318): cash being received at contract termination, typically equal to receive leg notional

    • 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: CAD

Receive Leg: USD

Transaction

Pay Leg: CAD

Receive Leg: USD

Open

Receipt of Pay Leg Notional in CAD

Disbursement of Receive Leg Notional in USD

Daily Accrual

Accrue Payable on CAD Notional

Accrue Receivable on USD Notional

Termination or Close

Disbursement of Pay Leg Notional in CAD

Receipt of Receive Leg Notional in USD

For CCS trades where Settlement Currency != Contract Issue Currency, the fields below also become required when Data Entry Method = Enter Total Settlement Amount in V25 R1.1 and above.

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

    • Total Settlement Amount Local is automatically calculated from this amount

  • Xrate Local Settle (66): the FX rate from Asset Currency to Settlement Currency

    • 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 L (47): commission in local currency

    • Other Fee Local (3752): trade fee in local currency

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

      • This is calculated automatically using Xrate Local Settle when Comm Amount L is populated, or it can be entered directly

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

      • This is calculated automatically using Xrate Local Settle when Other Fee Local is populated, or it can be entered directly

    • 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 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 or Close Swap Contract - Single Event. Partial terminations will reduce notional on the legs proportionately to notional closed on the contract. Most 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

  • Notional Exchange (16736)

    • 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

    • Available in V15 R2.11, V17 R2, and above

  • Lot Selection Method (27): CCS can be closed using either FIFO or Identified Lot (IDLOT)

Conversion

The CONVERSION event is supported for Currency Swaps. This uses the core open swap panel rather than the dedicated conversion panel.