Products
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 mappersEquityIndexSwapCDMMapper: 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:
-
Trade - The top-level container for trade information
- Contains trade date, identifiers, parties, and tradable product
-
TradeIdentifier - Identifies the trade uniquely
- Contains issuer, assigned identifier, and identifier type
-
TradableProduct - Represents the tradable product in the trade
- Contains product, trade lots, and counterparty information
-
ContractualProduct - Describes the contractual aspects of the product
- Contains product taxonomy and economic terms
-
ProductTaxonomy - Classifies the product
- For equity swaps, includes CFI code and ISDA product taxonomy
-
PerformancePayout - Represents the equity-linked leg
- Contains underlier, valuation dates, and return terms
-
InterestRatePayout - Represents the interest rate leg
- Contains day count fraction, rate specification, and payment terms
-
Underlier - Defines the equity instrument being referenced
- Can be a single security, basket, or index
-
PriceQuantity - Contains pricing and notional amount details
- For equity swaps, includes equity price and notional amount
-
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/Structure | CDM Class/Structure | Context |
|---|---|---|
<trade> | Trade | Top-level trade container |
<tradeHeader> | Fields in Trade | Contains trade date and identifiers |
<tradeDate> | FieldWithMetaDate in Trade | Trade execution date |
<partyTradeIdentifier> | TradeIdentifier list in Trade | Trade identifiers |
<equitySwap> or <returnSwap> | TradableProduct with payouts | Equity swap-specific information |
<party> | Party list in Trade | Party information |
<productType> | ProductTaxonomy list | Product classification |
<equityLeg> or <returnLeg> | PerformancePayout | Equity leg details |
<interestLeg> | InterestRatePayout | Interest rate leg details |
Detailed Element Mapping
| FpML Element | CDM Field | Parent CDM Class | Type |
|---|---|---|---|
<tradeDate> | tradeDate.value | Trade | Date |
<partyTradeIdentifier>/<issuer> | tradeIdentifier[].issuer.value | Trade | String |
<partyTradeIdentifier>/<tradeId> | tradeIdentifier[].assignedIdentifier[].identifier.value | Trade | String |
<party>/<partyId> | party[].partyId[].identifier.value | Trade | String |
<party>/<partyName> | party[].name.value | Trade | String |
<party>/<businessUnit>/<name> | party[].businessUnit[].name | Trade | String |
<productType> | productTaxonomy[].value.name.value | ContractualProduct | String |
<primaryAssetClass> | productTaxonomy[].primaryAssetClass.value | ContractualProduct | AssetClassEnum |
<equityLeg>/<notionalAmount> | priceQuantity[].quantity[].value.value | TradeLot | BigDecimal |
<equityLeg>/<currency> | priceQuantity[].quantity[].value.unit.currency.value | TradeLot | String |
<payerPartyReference> | payerReceiver.payer | Payout | CounterpartyRoleEnum |
<receiverPartyReference> | payerReceiver.receiver | Payout | CounterpartyRoleEnum |
<underlyer>/<basket>/<basketConstituent>/<index> | underlier.basket.basketConstituent[].index | PerformancePayout | Index |
<return>/<returnType> | returnTerms.priceReturnTerms.returnType | PerformancePayout | String |
<settlementType> | settlementTerms.settlementType | PerformancePayout | SettlementTypeEnum |
<interestLeg>/<floatingRateCalculation>/<floatingRateIndex> | rateSpecification.floatingRate.rateOption.value.floatingRateIndex.value | InterestRatePayout | String |
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 Value | CDM Enum Value |
|---|---|
Equity | AssetClassEnum.EQUITY |
Price Type Mapping
| FpML Value | CDM Enum Value |
|---|---|
INTEREST_RATE | PriceTypeEnum.INTEREST_RATE |
PRICE | PriceTypeEnum.PRICE |
Settlement Type Mapping
| FpML Value | CDM Enum Value |
|---|---|
Cash | SettlementTypeEnum.CASH |
Physical | SettlementTypeEnum.PHYSICAL |
Implementation Details
-
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)
-
Equity Underliers: The mapper handles different types of equity underliers:
- Single stocks/securities
- Baskets of stocks
- Equity indices (e.g., S&P 500, FTSE)
-
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)
-
Valuation: The mapper processes valuation rules for determining equity performance:
- Valuation dates and frequency
- Notional reset provisions
- Interim valuation rules
- Final valuation dates
-
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