FpML 4.2 Validation Rules - Rules for Credit Derivatives (CD)
This is the IRD part of the validation rule set accompanying the FpML 4.2 Working Draft. The introductory section in the recommendation
contains background information and documentation for this page.
The rules contained on this page contain links to cut down versions of valid and invalid test cases.
These test cases have been analysed using Systemwire's xlinkit rule engine to highlight relevant
document portions accessed by a rule. The cut down test cases are non-normative and
are provided for the purpose of documentation only.
Content
Preconditions
Precondition: ISDA1999
The documentation/contractualDefinitions element or the
documentation/masterConfirmation/masterConfirmationType element
contains ISDA1999Credit.
Precondition: ISDA2003
The documentation/contractualDefinitions element or the
documentation/masterConfirmation/masterConfirmationType element
begins with the substring ISDA2003Credit. (This includes ISDA2003CreditJapan, etc.)
Precondition: ShortForm
documentation/masterConfirmation is present.
Precondition: LongForm
documentation/masterConfirmation is not present.
Precondition: SameCurrency
All instances of currency values must be identical.
Rules
Unique contexts:
Context:
Trade
cd-1 (Mandatory)
tradeHeader/tradeDate must be before creditDefaultSwap/generalTerms/effectiveDate/unadjustedDate.
cd-2 (Mandatory)
If calculationAgent is present, it may contain only
calculationAgentPartyReference elements.
cd-3 (Mandatory)
documentation/contractualSupplement must not begin with the substring
ISDA2003Credit.
cd-4 (Mandatory)
documentation/contractualSupplement must not begin with the substring
ISDA1999Credit.
Context:
GeneralTerms (data type)
cd-5 (Mandatory)
If element scheduledTerminationDate/adjustableDate exists, then
effectiveDate/unadjustedDate < scheduledTerminationDate/adjustableDate/unadjustedDate.
cd-6 (Mandatory)
buyerPartyReference/@href must not be equal to
sellerPartyReference/@href.
cd-7 (Mandatory)
effectiveDate/dateAdjustments or
effectiveDate/dateAdjustmentsReference must be present.
cd-8 (Mandatory)
scheduledTerminationDate/adjustableDate/eAdjustments or
scheduledTerminationDate/adjustableDate/dateAdjustmentsReference must be
present.
Context:
ReferenceInformation (data type)
cd-9 (Mandatory)
If referenceObligation/primaryObligorReference exists,
then the attribute @href of this element must be equal
to the @id attribute of referenceEntity.
cd-10 (Mandatory)
If referenceObligation/guarantorReference exists, then
the attribute @href of this element must be equal to the
@id attribute of referenceEntity.
cd-11 (Mandatory)
allGuarantees must be present.
Context:
ReferenceObligation (data type)
cd-12 (Mandatory)
If referencePrice exists, then its value must be greater
than or equal to zero.
Context:
CreditDefaultSwap (data type)
cd-13 (Mandatory)
If protectionTerms/creditEvents/creditEventNotice/notifyingParty/buyerPartyReference is present, its
@href attribute must match that of
generalTerms/buyerPartyReference.
cd-14 (Mandatory)
If protectionTerms/creditEvents/creditEventNotice/notifyingParty/sellerPartyReference is present,
its @href attribute must match that of generalTerms/sellerPartyReference.
cd-15 (Mandatory)
If there is exactly one generalTerms/referenceInformation/referenceObligation,
and cashSettlementTerms/valuationDate/singleValuationDate occurs, then the
value of cashSettlementTerms/valuationMethod must be
Market or Highest.
cd-16 (Mandatory)
If there is exactly one generalTerms/referenceInformation/referenceObligation,
and cashSettlementTerms/valuationDate/multipleValuationDates exists, then
the value of cashSettlementTerms/valuationMethod must be
AverageMarket, Highest, or
AverageHighest.
cd-17 (Mandatory)
If there is more than one generalTerms/referenceInformation/referenceObligation,
and cashSettlementTerms/valuationDate/singleValuationDate exists, then
the value of cashSettlementTerms/valuationMethod must be
BlendedMarket or BlendedHighest.
cd-18 (Mandatory)
If there is more than one generalTerms/referenceInformation/referenceObligation,
and cashSettlementTerms/valuationDate/multipleValuationDates exists, then
the value of cashSettlementTerms/valuationMethod must be
AverageBlendedMarket or
AverageBlendedHighest.
cd-19 (Mandatory)
The following elements must not be present:
protectionTerms/creditEvents/creditEventNotice/businessCenter,
protectionTerms/creditEvents/restructuring/multipleHolderObligation,
protectionTerms/creditEvents/restructuring/multipleCreditEventNotices,
generalTerms/referenceInformation/allGuarantees.
cd-20 (Mandatory)
protectionTerms/obligation/notContingent must not be present.
cd-21 (Mandatory)
The following elements must not be present: cashSettlementTerms,
feeLeg/periodicPayment/fixedAmountCalculation/calculationAmount,
feeLeg/periodicPayment/fixedAmountCalculation/dayCountFraction,
protectionTerms/obligations, generalTerms/referenceInformation/allGuarantees,
generalTerms/referenceInformation/referencePrice, generalTerms/effectiveDate/dateAdjustments,
generalTerms/effectiveDate/dateAdjustmentsReference,
generalTerms/scheduledTerminationDate/adjustableDate/dateAdjustments,
generalTerms/scheduledTerminationDate/adjustableDate/dateAdjustmentsReference,
generalTerms/dateAdjustments.
cd-22 (Mandatory)
In protectionTerms/creditEvents, no element except
restructuring must be present.
cd-23 (Mandatory)
cashSettlementTerms or physicalSettlementTerms must be present.
cd-24 (Mandatory)
The following elements must be present:
protectionTerms/creditEvents, protectionTerms/creditEvents/creditEventNotice,
protectionTerms/obligations, generalTerms/referenceInformation/referencePrice.
cd-25 (Mandatory)
If physicalSettlementTerms is present them it must
contain settlementCurrency, physicalSettlementPeriod, escrow
and deliverableObligations/accruedInterest.
cd-26 (Mandatory)
If feeLeg/singlePayment/adjustablePaymentDate is present,
then feeLeg/singlePayment/adjustablePaymentDate >
generalTerms/effectiveDate/unadjustedDate.
cd-27 (Mandatory)
If feeLeg/singlePayment/adjustablePaymentDate and
generalTerms/scheduledTerminationDate/adjustableDate are present,
then feeLeg/singlePayment/adjustablePaymentDate <
generalTerms/scheduledTerminationDate/adjustableDate/unadjustedDate.
cd-28 (Mandatory)
If feeLeg/periodicPayment/firstPaymentDate is present,
then feeLeg/periodicPayment/firstPaymentDate >
generalTerms/effectiveDate/unadjustedDate.
cd-29 (Mandatory)
If feeLeg/periodicPayment/firstPaymentDate and
generalTerms/scheduledTerminationDate/adjustableDate are present,
then feeLeg/periodicPayment/firstPaymentDate <
generalTerms/scheduledTerminationDate/adjustableDate/unadjustedDate.
cd-30 (Mandatory)
If feeLeg/periodicPayment/lastRegularPaymentDate and
generalTerms/scheduledTerminationDate/adjustableDate are present,
then feeLeg/periodicPayment/lastRegularPaymentDate <
generalTerms/scheduledTerminationDate/adjustableDate/unadjustedDate.
Context:
PeriodicPayment (data type)
cd-31 (Mandatory)
If both element firstPaymentDate and lastRegularPaymentDate exist,
then firstPaymentDate < lastRegularPaymentDate.
cd-32 (Mandatory)
If fixedAmountCalculation is present, it must contain calculationAmount
and dayCountFraction.
cd-33 (Mandatory)
If both firstPaymentDate and lastRegularPaymentDate are present,
then lastRegularPaymentDate must fall precisely on a date reachable by adding
an integer multiple of the period in paymentFrequency to
firstPaymentDate.
Context:
DeliverableObligations (data type)
cd-34 (Mandatory)
If the value of category is ReferenceObligationsOnly, then no
other elements may be contained in the deliverable obligations element.
Context:
CreditEvents (data type)
cd-35 (Mandatory)
At least one child element must be present.
Context:
PubliclyAvailableInformation (data type)
cd-36 (Mandatory)
Either standardPublicSources or at least one publicSource element must
be present.
Context:
CashSettlementTerms (data type)
cd-37 (Mandatory)
quotationAmount/amount >= minimumQuotationAmount/amount, if both elements
are present.
Deprecated rules