Products
Credit - Credit Default Swap
Credit - Credit Default Swap Documentation
Overview
The CreditSingleNameCDSCDMMapper class is responsible for mapping FpML (Financial Products Markup Language) credit default swaps (CDS) to the ISDA Common Domain Model (CDM) format. It extends the AbstractCreditProductsCDMMapper class, inheriting common mapping functionality for credit products.
A credit default swap is a financial derivative that allows the buyer to purchase protection against the default of a reference entity. This mapper handles the conversion of FpML XML elements representing single-name CDS contracts to the corresponding CDM objects.
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 information, trade lots, and counterparty information
-
ContractualProduct - Describes the contractual aspects of the product
- Contains product taxonomy and economic terms with payouts
-
CreditDefaultPayout - Represents the credit default protection terms
- Contains reference entity, obligations, credit events, and settlement terms
-
InterestRatePayout - Represents the fee leg (premium payments)
- Contains payment details, fixed rate, and payment schedule
-
GeneralTerms - Contains general terms of the CDS contract
- Includes reference information, effective date, and scheduled termination date
-
ReferenceInformation - Identifies the reference entity and obligations
- Contains details about the entity being protected against
-
ProtectionTerms - Defines the credit events that trigger settlement
- Includes bankruptcy, failure to pay, restructuring, and other credit events
-
SettlementTerms - Defines how the contract settles after a credit event
- Includes physical or cash settlement details, currencies, and deliverable obligations
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 |
<creditDefaultSwap> | TradableProduct with CreditDefaultPayout | CDS-specific information |
<generalTerms> | GeneralTerms in CreditDefaultPayout | General contract terms |
<referenceInformation> | ReferenceInformation in GeneralTerms | Reference entity details |
<feeLeg> | InterestRatePayout in Payout | Premium payment terms |
<protectionTerms> | ProtectionTerms in CreditDefaultPayout | Credit event definitions |
<creditEvents> | CreditEvents in ProtectionTerms | Credit events that trigger payment |
<party> | Party list in Trade | Party information |
<settlementTerms> | SettlementTerms in CreditDefaultPayout | Settlement details after credit event |
Detailed Element Mapping
| FpML Element | CDM Field | Parent CDM Class | Type |
|---|---|---|---|
<tradeDate> | tradeDate.value | Trade | Date |
<partyTradeIdentifier>/<tradeId> | tradeIdentifier[].assignedIdentifier[].identifier.value | Trade | String |
<scheduledTerminationDate>/<unadjustedDate> | economicTerms.terminationDate.adjustableDate.unadjustedDate | ContractualProduct | Date |
<referenceEntity>/<entityId> | referenceInformation.referenceEntity.entityId.value | GeneralTerms | String |
<referenceEntity>/<entityName> | referenceInformation.referenceEntity.name.value | GeneralTerms | String |
<referenceObligation>/<bond>/<instrumentId> | referenceInformation.referenceObligation.security.productIdentifier.identifierValue | GeneralTerms | String |
<referenceObligation>/<bond>/<seniority> | referenceInformation.referenceObligation.security.debtType.debtEconomics.debtSeniority | GeneralTerms | DebtSeniorityEnum |
<feeLeg>/<periodicPayment>/<fixedAmountCalculation>/<calculationAmount>/<amount> | priceQuantity.quantity[].value.value | TradeLot | BigDecimal |
<feeLeg>/<periodicPayment>/<fixedAmountCalculation>/<calculationAmount>/<currency> | priceQuantity.quantity[].value.unit.currency.value | TradeLot | String |
<feeLeg>/<periodicPayment>/<fixedAmountCalculation>/<fixedRate> | interestRatePayout.rateSpecification.fixedRate.rateSchedule.price.value.value | Payout | BigDecimal |
<feeLeg>/<periodicPayment>/<paymentFrequency> | interestRatePayout.paymentDates.paymentFrequency | Payout | Frequency |
<feeLeg>/<periodicPayment>/<firstPaymentDate> | interestRatePayout.paymentDates.firstPaymentDate | Payout | Date |
<protectionTerms>/<creditEvents>/<bankruptcy>/<applicable> | creditDefaultPayout.protectionTerms.creditEvents.bankruptcy | CreditDefaultPayout | boolean |
<protectionTerms>/<creditEvents>/<failureToPay>/<paymentRequirement> | creditDefaultPayout.protectionTerms.creditEvents.failureToPay.paymentRequirement | CreditDefaultPayout | Money |
<protectionTerms>/<creditEvents>/<restructuring>/<applicable> | creditDefaultPayout.protectionTerms.creditEvents.restructuring.applicable | CreditDefaultPayout | boolean |
<protectionTerms>/<obligations>/<category> | creditDefaultPayout.protectionTerms.obligations.category | CreditDefaultPayout | ObligationCategoryEnum |
<protectionTerms>/<settlementTerms>/<settlementCurrency> | creditDefaultPayout.settlementTerms.settlementCurrency.value | CreditDefaultPayout | String |
<protectionTerms>/<settlementTerms>/<physicalSettlementPeriod>/<businessDays> | creditDefaultPayout.settlementTerms.physicalSettlementTerms.physicalSettlementPeriod.businessDays | CreditDefaultPayout | int |
Special Considerations
Enum Mappings
The mapper handles several important enum mappings between FpML and CDM:
Obligation Category Mapping
| FpML Value | CDM Enum Value |
|---|---|
PAYMENT | ObligationCategoryEnum.PAYMENT |
BORROWED_MONEY | ObligationCategoryEnum.BORROWED_MONEY |
REFERENCE_OBLIGATIONS_ONLY | ObligationCategoryEnum.REFERENCE_OBLIGATIONS_ONLY |
BOND | ObligationCategoryEnum.BOND |
LOAN | ObligationCategoryEnum.LOAN |
BOND_OR_LOAN | ObligationCategoryEnum.BOND_OR_LOAN |
Debt Seniority Mapping
| FpML Value | CDM Enum Value |
|---|---|
SENIOR | DebtSeniorityEnum.SENIOR |
SUBORDINATED | DebtSeniorityEnum.SUBORDINATED |
SENIOR_SECURED | DebtSeniorityEnum.SENIOR_SECURED |
JUNIOR_SUBORDINATED | DebtSeniorityEnum.JUNIOR_SUBORDINATED |
Implementation Details
-
Reference Entity: The mapper creates a
LegalEntityfor the reference entity, extracting entity ID, name, and other identifying information from the FpML. -
Reference Obligation: The mapper creates a
ReferenceObligationfor the debt instrument being referenced, including details like ISIN code and seniority. -
Credit Events: The mapper supports multiple credit events:
- Bankruptcy
- Failure to Pay (with payment requirement amount)
- Restructuring (with restructuring type)
-
Settlement: The mapper handles both physical and cash settlement, with appropriate settlement terms:
- Physical settlement period (business days)
- Settlement currency
- Deliverable obligations
-
Fee Leg: The fee leg is represented as an
InterestRatePayoutwith:- Fixed rate (premium/coupon)
- Payment frequency (quarterly, semi-annual, etc.)
- First payment date and schedule