FpML Issues Tracker

1028: Review of the Validation Rules for Redesigned FX product model

November 14, 2010




Validation Rules




FX WG has finished with its initial review of the Validation Rules for for Redesigned FX product model and is asking Validation Working Group to review the changes and comments, in addition to provide their help to finalize the FX rules for publication in 5-1-LCWD.


  • iyermakova

    12/06/10 2:01 pm

  • iyermakova

    12/06/10 6:42 pm

    As per Nov-11-2010 – VALWG:
    – The Validation Rules for FX Derivatives were updated (see attached The blackline-FpML Validation Rules for FX Derivatives-12-01-2010.doc)
    – Updated schema/examples/rules 11,12,42 (rule 13 and 42 has comments) with Rate Observation proposal (see attached zip file with schema/example).
    – fx-14: Within FXBarrierFeature complex type, moved
    elements observationStartDate and observationEndDate in side an optional
    xsd:sequence. Made observationStartDate required and observationEndDate
    optional. This eliminates the second if statement in the rule fx-14.
    The change is committed to FpML-5-1 (and will be published with LCWD)

  • iyermakova

    12/16/10 11:50 pm

    Dec-12-2010: Daniel Dui and Irina Yermakova reviewed up until rule fx-31.
    – The Validation Rules for FX Derivatives were updated with some comments (see attached The blackline-FpML Validation Rules for FX Derivatives-12-16-2010.doc).

  • danieldui

    12/20/10 1:42 am

  • iyermakova

    01/05/11 9:29 pm

    Added to FpML-5-1:
    1. agreed updated existing FX business validation rules
    – rules that still require updates:
    fx-4, fx-5, fx-6 – crossRate redefined
    fx-18, fx-22, fx-32, fx-45, – party reference
    – rules that require confirmation:
    fx-19, fx-23, fx-31, fx-49
    2. agreed new rules (fx-48, fx-50, fx-51, fx-52, fx-53)

  • iyermakova

    01/24/11 5:14 pm

  • danieldui

    01/25/11 1:46 pm

    About FX-4,5, and 6.

    I have tried to formulate a rule. That ensures that you can go from quotedCurrencyPair/currency1 to quotedCurrencyPair/currency2 via the cross rates.

    Even restricting to the case when crossRate occurs twice (which is the most common case), the rule would need to cover 18 combinations in which currency1, currency2 and
    quoteBasis in quotedCurrencyPair, crossRate[1], and crossRate[2] can be populated.

    I don’t think we can write a rule in the rule syntax that we have.

    Context: QuotedCurrencyPair (complex type)
    If currency1 and currency2 have the same same-currency-scheme, then currency1 is not equal to currency2

    Context: CrossRate (complex type)
    (same as above)

    Note that CrossRate extends QuotedCurrencyPair.

    Informal rule:

    The elements currency1, currency2, and quoteBasis in quotedCurrencyPair and crossRate, and the element rate in exchangeRate and crossRate must populated so that exchangeRate/currency2 can be obtained from exchangeRate/currency1 via the cross rates.

    For example
    exchangeRate/quotedCurrencyPair/currency1 = GBP
    exchangeRate/quotedCurrencyPair/currency2 = EUR
    exchangeRate/quotedCurrencyPair/quoteBasis = Currency2PerCurrency1
    exchangeRate/rate = 0.630068

    exchangeRate/crossRate/currency1 = GBP
    exchangeRate/crossRate/currency2 = USD
    exchangeRate/crossRate/quoteBasis = Currency2PerCurrency1
    exchangeRate/crossRate/rate = 1.4800

    exchangeRate/crossRate/currency1 = USD
    exchangeRate/crossRate/currency2 = EUR
    exchangeRate/crossRate/quoteBasis = Currency2PerCurrency1
    exchangeRate/crossRate/rate = 0.9325

  • danieldui

    02/01/11 1:15 pm


    A document should include only the crossRate’s elements needed to obtain exchangeRate/currency2 from exchangeRate/currency2.

  • danieldui

    02/15/11 1:31 pm

  • iyermakova

    02/15/11 2:02 pm

    An English description of the rules fx-22, fx-32, fx-45, – party reference has been corrected – http://www.fpml.org/spec/fpml-5-1-6-rec-1/html/confirmation/validation-rules/rules-english-fx.html

  • danieldui

    04/18/11 4:55 pm

    Fx-22 and fx-45 seem ambiguous. Does “otherwise” match the inner or the outer “if”?

  • danieldui

    06/21/11 10:23 am

    Email from AJ sent on 8 June 2011:

    After a little a experimentation I found that XPath 2.0 has an empty() function which functions like not exists () so fx-18 can be expressed as

    Context: FxSingleLeg

    The payer and receiver of exchangedCurrency1 must have the reverse role in exchangedCurrency2.

    exchangedCurrency1/payerPartyReference/@href eq exchangedCurrency2/receiverPartyReference/@href and
    exchangedCurrency2/payerPartyReference/@href eq exchangedCurrency1/receiverPartyReference/@href and
    ((empty (exchangedCurrency1/payerAccountReference/@href) and empty (exchangedCurrency2/receiverAccountReference/@href)) or

    (exchangedCurrency1/payerAccountReference/@href eq exchangedCurrency2/receiverAccountReference/@href)) and
    ((empty (exchangedCurrency2/payerAccountReference/@href) and empty (exchangedCurrency1/receiverAccountReference/@href)) or

    (exchangedCurrency2/payerAccountReference/@href eq exchangedCurrency1/receiverAccountReference/@href))

    As for the model groups for payer/receiver and buyer/seller we need:

    (payerPartyReference/@href ne receiverPartyReference/@href) or
    (exists (payerAccountReference/@href) and exists (receiverAccountReference/@href) and (payerAccountReference/@href ne receiverAccountReference/@href)

    (buyerPartyReference/@href ne sellerPartyReference/@href) or
    (exists (buyerAccountReference/@href) and exists (sellerAccountReference/@href) and (buyerAccountReference/@href ne sellerAccountReference/@href)

  • danieldui

    07/05/11 10:09 am

    Discussed on 21 June

    FX-18: OK to usee XPath 2.0 formulation that AJ propsed.

    ACTION: ISDA update FX-18 as proposed. Also add a comment mentioning that the rule uses an XPath 2.0 funciton.

    ACTION: ISDA – 1st step: Buy/Sell model group. Check which rules are affected. 2nd step: look at product definitions. Some rules may be missing.

    ACTION: AJ: go throught rules to find which need to be updated.

    ACTION: ISDA/AJ Update comment in rule to mention relevant section of date calculation paper.

    ACTION: ISDA/AJ Update comment to mention relevant section of date calculation paper.

  • lyteck

    07/18/11 8:36 pm

    FX-18: implemented as proposed above (please double check)
    FX-10: done
    FX-12: done

  • danieldui

    07/19/11 1:13 pm

  • danieldui

    07/19/11 1:14 pm

    All issues resolved.

  • Leave an update

    You must be logged in to post an update.