Equity - Equity Swap (Price Return Index)

Equity - Equity Swap Documentation

Overview

The equity swap mappers are implemented as a hierarchy, with a common base class and specialized implementations for different types of equity swaps.

  • AbstractEquitySwapCDMMapper: Base class for all equity swap mappers
  • EquityIndexSwapCDMMapper: Maps equity index swaps (Price Return Index)
  • EquityPortfolioSwapCDMMapper: Maps equity portfolio swaps

An equity swap is a derivative contract where two parties exchange cash flows, with one leg typically linked to the performance of a stock, basket of stocks, or equity index, and the other leg typically linked to an interest rate. These mappers process equity swap FpML documents and transform them into CDM format.

Key ISDA CDM Structures

The following key ISDA CDM structures are important for this mapper:

  1. Trade - The top-level container for trade information

    • Contains trade date, identifiers, parties, and tradable product
  2. TradeIdentifier - Identifies the trade uniquely

    • Contains issuer, assigned identifier, and identifier type
  3. TradableProduct - Represents the tradable product in the trade

    • Contains product, trade lots, and counterparty information
  4. ContractualProduct - Describes the contractual aspects of the product

    • Contains product taxonomy and economic terms
  5. ProductTaxonomy - Classifies the product

    • For equity swaps, includes CFI code and ISDA product taxonomy
  6. PerformancePayout - Represents the equity-linked leg

    • Contains underlier, valuation dates, and return terms
  7. InterestRatePayout - Represents the interest rate leg

    • Contains day count fraction, rate specification, and payment terms
  8. Underlier - Defines the equity instrument being referenced

    • Can be a single security, basket, or index
  9. PriceQuantity - Contains pricing and notional amount details

    • For equity swaps, includes equity price and notional amount
  10. ReturnTerms - Specifies the type of return calculation

    • Defines whether the return is price return, total return, etc.

FpML to CDM Mapping

Main Mapping Structures

FpML Element/StructureCDM Class/StructureContext
<trade>TradeTop-level trade container
<tradeHeader>Fields in TradeContains trade date and identifiers
<tradeDate>FieldWithMetaDate in TradeTrade execution date
<partyTradeIdentifier>TradeIdentifier list in TradeTrade identifiers
<equitySwap> or <returnSwap>TradableProduct with payoutsEquity swap-specific information
<party>Party list in TradeParty information
<productType>ProductTaxonomy listProduct classification
<equityLeg> or <returnLeg>PerformancePayoutEquity leg details
<interestLeg>InterestRatePayoutInterest rate leg details

Detailed Element Mapping

FpML ElementCDM FieldParent CDM ClassType
<tradeDate>tradeDate.valueTradeDate
<partyTradeIdentifier>/<issuer>tradeIdentifier[].issuer.valueTradeString
<partyTradeIdentifier>/<tradeId>tradeIdentifier[].assignedIdentifier[].identifier.valueTradeString
<party>/<partyId>party[].partyId[].identifier.valueTradeString
<party>/<partyName>party[].name.valueTradeString
<party>/<businessUnit>/<name>party[].businessUnit[].nameTradeString
<productType>productTaxonomy[].value.name.valueContractualProductString
<primaryAssetClass>productTaxonomy[].primaryAssetClass.valueContractualProductAssetClassEnum
<equityLeg>/<notionalAmount>priceQuantity[].quantity[].value.valueTradeLotBigDecimal
<equityLeg>/<currency>priceQuantity[].quantity[].value.unit.currency.valueTradeLotString
<payerPartyReference>payerReceiver.payerPayoutCounterpartyRoleEnum
<receiverPartyReference>payerReceiver.receiverPayoutCounterpartyRoleEnum
<underlyer>/<basket>/<basketConstituent>/<index>underlier.basket.basketConstituent[].indexPerformancePayoutIndex
<return>/<returnType>returnTerms.priceReturnTerms.returnTypePerformancePayoutString
<settlementType>settlementTerms.settlementTypePerformancePayoutSettlementTypeEnum
<interestLeg>/<floatingRateCalculation>/<floatingRateIndex>rateSpecification.floatingRate.rateOption.value.floatingRateIndex.valueInterestRatePayoutString

Equity Index Swap

The EquityIndexSwapCDMMapper handles equity swaps where the equity leg tracks an index, such as the S&P 500. These are identified by the <equitySwap> element in the FpML.

Key features:

  • Processes swaps with the <equitySwap> tag
  • Maps an equity leg (typically linked to an index) and an interest rate leg
  • Supports price return calculations based on index performance
  • Handles simple equity notional and interest calculations

Equity Portfolio Swap

The EquityPortfolioSwapCDMMapper handles portfolio swaps with more complex structures, identified by the <returnSwap> element in the FpML.

Key features:

  • Processes swaps with the <returnSwap> tag
  • Handles multiple basket constituents for complex portfolios
  • Supports complex valuation date structures with interim and final valuation
  • Maps specialized portfolio features like quantity resets and constituent-level information

Special Considerations

Enum Mappings

The mapper handles several important enum mappings between FpML and CDM:

Asset Class Mapping

FpML ValueCDM Enum Value
EquityAssetClassEnum.EQUITY

Price Type Mapping

FpML ValueCDM Enum Value
INTEREST_RATEPriceTypeEnum.INTEREST_RATE
PRICEPriceTypeEnum.PRICE

Settlement Type Mapping

FpML ValueCDM Enum Value
CashSettlementTypeEnum.CASH
PhysicalSettlementTypeEnum.PHYSICAL

Implementation Details

  1. Product Taxonomy: The mapper creates appropriate product taxonomy entries based on the FpML product type codes:

    • CFI code (e.g., SEBPXX) for ISO 10962 classification
    • ISDA product taxonomy (e.g., Equity:Swap:PriceReturnBasicPerformance:SingleIndex or Equity:PortfolioSwap:PriceReturnBasicPerformance:SingleIndex)
  2. Equity Underliers: The mapper handles different types of equity underliers:

    • Single stocks/securities
    • Baskets of stocks
    • Equity indices (e.g., S&P 500, FTSE)
  3. Return Types: The mapper supports different return calculations:

    • Price Return (based only on price movements)
    • Total Return (including dividends and other distributions)
    • Dividend Return (based only on dividends)
  4. Valuation: The mapper processes valuation rules for determining equity performance:

    • Valuation dates and frequency
    • Notional reset provisions
    • Interim valuation rules
    • Final valuation dates
  5. Reference Identifiers: The mapper handles various types of equity instrument identifiers:

    • ISINs (International Securities Identification Numbers)
    • Reuters RICs (e.g., .FTSE)
    • Custom instrument IDs
    • Index identifiers