Presentation on theme: "ISDA FpML 5.0 Overview Andrew Jacobs (UBS)"— Presentation transcript:
1 ISDA FpML 5.0 Overview Andrew Jacobs (UBS) Brian Lynn (Global Electronic Markets) Marc Gratacos (ISDA)® ISDA is a registered trademark of the International Swaps & Derivatives Association, Inc.® FpML is a registered trademark of the International Swaps & Derivatives Association, Inc.
4 Agenda Unit Objectives Major vs. Minor Releases Architectural Changes in 5.0Multiple Root ElementsViewsAccounts and RolesRecap
5 Major vs. Minor Releases Minor versions can add new functionality but are limitedInstance documents must be backward compatibleNo deletions/changes to existing elementsLegal technical/architectural changes are limitedMajor versions canIntroduce more significant technical/architectural changesRedesign existing product representationsVersion 5.0 introduces technical and design changes that have been deferred for compatibility reasons
6 Architectural Changes in 5.0 Implemented architectural changesMultiple Root ElementsIntroduction of “Views”: confirmation and reportingMessaging correlation [covered in Messaging]Generic Business Processes [covered in Messaging]Separation of parties and accountsBetter support for roles
7 Multiple Root Elements FpML v 1-4.x use “<FpML>” as the root of all documentsFpML 4.x uses “xsi:type” to distinguish between message types, e.g.<FpML version=“4-7” xsi:type=“RequestTradeConfirmation” … >FpML 5.xuses different element names to distinguish between message types (no <FpML> root any more)Changes “version” to “fpmlVersion” to make it easier to determine where the FpML starts, e.g.<requestConfirmation fpmlVersion=“5-0” … >
8 Rationale for Multiple Roots Easier to understand than xsi:typeCertain tools (e.g. binding frameworks, some editors) have problems with xsi:type
9 Objective of viewsExisting FpML has a single representation for each product(some products have short form and long form)FpML product representation is primarily designed for confirmationMany details, precise descriptionIt may be difficult to use FpML when not all detail is known/needed, e.g.Pretrade: structuring, negotiationSummary reportingMaking most/all elements optional would make confirmation too looseViews are intended to provide multiple product representations, from very loose to very tight
10 Views in 5.0 FpML 5.0 currently supports 2 views Reporting Very flexible product representation (almost everything is optional)Everything in confirmation view is available (but optional)ConfirmationAs current 4.x product representation
11 Implementation of Views FpML maintains a single master schemaMaster schema contains annotations with view-specific details,“make this optional in view X”“put this only in view Y”FpML publishes separate view-specific schemas, one per viewEach view is generated from the master prior to publicationEach view has documentation and examplesEach view-specific schema will have its own namespace, e.g.,End users will use a view-specific schema, not the master
12 Views - ImpactFpML users must decide which view (schema) to use for a given application/systemBusiness processes are generally contained in a single viewSome messages may be available in several views (e.g. “MessageRejected”)Once the view is selected, instance documents should be closely compatible with previous FpML versionsChoosing a looser view (e.g. reporting) allows more flexibility about what data must be included in an instance document, but with less validation
13 Views - Impact Extensions will be impacted by the views Extensions will need to import the appropriate views (e.g. <xsd:import namespace=“http://www.fpml.org/FpML-5/confirmation” …>Extensions applicable to multiple views will need to be duplicated
14 Accounts and Roles Accounts have been moved out of party Now can reference either servicingParty, accountBeneficiary, or bothTradeSide has been removedA new, more flexible “relatedParty” structure has been added to partyTradeInformation to support rolesAccount references have been added to allow party references to be narrowed down14
15 Other Changes Product Representation Messaging Framework Adjusted datesBooleans in CDSProduct refactoringMessaging FrameworkCovered in the next presentation15
16 Recap of Key Points What are the main changes in 5.0? Multiple root elements, views, accounts, and rolesWhat is the impact of such changes?Business process selection, extensions are affected
17 FpML Messaging® ISDA is a registered trademark of the International Swaps & Derivatives Association, Inc.® FpML is a registered trademark of the International Swaps & Derivatives Association, Inc.
18 Agenda Unit Objectives FpML messaging purpose FpML message types Version 5 Messaging FeaturesBusiness process categoriesConfirmation ViewReportingRecap
19 Objectives - Questions to Answer What is FpML messaging for?What types of messages are there?What are the differences in messaging between 4.x and 5.x?What business processes does it support each view?The questions we will answer with this section.
20 FpML Messaging Purpose Define a protocol for communicating between firms to implement a business processAllow a recipient of an FpML document to understand how to process it.So, Why FpML messaging?If banks use different protocols for communicating FpML documents, this represents high costs implementing interfaces between these protocols.The same argument applies to business processes. If banks use different business process implementations, this represents high interoperability costs between them.The messaging framework provides context on how to process the document.
21 FpML Message Types 4.x 5.x Message Message Request Message Response MessageNotification Message5.xMessageRequest MessageCorrectable Request MessageNon Correctable Request MessageResponse MessageNotification MessageCurrently, the following types are modeled in FpML:A general message structureA request message typeA response message typeAnd a notification message type
22 Message Header 4.x Provides message and context identifiers Identifies sender and recipientsRecords timing informationProvides additional party informationProvides assurance of senderThe message header contains the following elements…Context identifiersInformation abut the sender and the recipientTiming informationDigital signature
23 Message Header 5.xSame as 4.x except there is no conversationId element
24 Messaging Framework Principles 4.x5.xObservable completionPartialYesConsistent message correlationUndefinedConsistent error reportingNoConsistent correction and retractionConsistent processes across trades and post-trade events24
25 General Pattern of Messages in 5.0 Each business process follows this message pattern:Process initiation message (request or notification)AcknowledgementExceptionRetractionOptionally, response/status messages25
26 The general naming convention is as follows: Naming Conventions in 5.0The general naming convention is as follows:requestXXXxxxAcknowledgementxxxExceptionrequestXXXRetractedxxx[Status] or xxx[Response]XXX is the name of the business process26
27 Message Correlation and Sequencing Successive messages are “correlated” (linked together) using a new, explicit “correlationId”Correlation ID is assigned by the initiatorCorrelation ID is intended to be a business/application level element, not transport levelCorrections or cancellations use the correlation ID to refer to the previous request/notificationResponses use the correlation ID to link to the request.Sequence numbers may be used to establish message order27
28 Correction/Retraction The initial request and any corrections use the same messageThere is a boolean correction indicator to indicate whether the message corrects a previous oneRetractions are a separate message (may have less detail than the original request)Corrections and retractions are linked to original request using correlationId28
29 Acknowledgements and Exceptions All initiating messages have corresponding (named) acknowledgement and exception messagesMost of these use generic “Acknowledgement” and “Exception” typesIn some case these may be extended to hold process specific information.29
30 On-behalf OfAdded to each message the ability to specify on-behalf-of whom the message was sentPartyAccountAllows recipient to interpret messages more easily when sender can send messages on behalf of multiple parties/accountsE.g. when sender is a central service provider, platform, prime broker.30
31 Generic business processes Most FpML 5 business processes are “generic” process that can apply to new trades and/or any post-trade eventsThis means that the message name indicates the business process (e.g. confirmation, execution notification) but not the type of event (e.g. trade, amendment)Payload of the message indicates the type of the event31
32 Generic processes - example Request confirmationCould be of a trade, or of an amendmentAcknowledgements and exceptionsRefer to the previous request, irrespective of the event typeConfirmation status messageCan report status, differences on trades or any other type of post-trade event32
33 Generic processes supported Pre-trade (currently out of scope, but some modeling has been done)QuotationOrderingPost-trade (confirmation view)Execution notification (for platforms to report order fills)Execution advice (to report executions and settlement info to service providers)Allocation (expanded for version 5)ConfirmationConsent negotiationClearing (new for version 5)Status reporting33
34 Example message<requestConsent xmlns="http://www.fpml.org/FpML-5/confirmation" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" fpmlVersion="5-0" xsi:schemaLocation="http://www.fpml.org/FpML-5/confirmation ../../fpml-main-5-0.xsd"> <header> <messageId messageIdScheme="http://www.im01.com/mid">im12937</messageId> <sentBy>IM01</sentBy> <sendTo>DLR01</sendTo> <creationTimestamp> T15:38:00-04:00</creationTimestamp> </header> <isCorrection>false</isCorrection> <correlationId correlationIdScheme="http://www.ubsw.com/mid"> </correlationId> <sequenceNumber>1</sequenceNumber> <novation> <!-- novation details here --> </novation> <party id="party1"> <partyId>IM01</partyId> </party> <party id="party2"> <partyId>DLR01</partyId> <party id="party3"> <partyId>DLR02</partyId> </requestConsent>Could be replaced with a trade or other post-trade event, e.g. amendment or termination34
35 EventsCurrent list of events available within the generic business processes
36 Browsing the FpML 5.0 Confirmation View DemoFpML.orgLogin to development area (free account)“Specification” tab (www.FpML.org/spec/)DocumentationBrowse online HTML version or download complete zipSection 3 shows “Business Process Architecture”Schemas and samplesDownload schema and examples (confirmation_xml.zip) from:See confirmation messages in fpml-confirmation-processes-5-0.xsdXML examples are in subfolders inside zip36
37 Generic processes - benefits Improved consistency across post-trade eventsEasier to ensure all necessary messages are presentReduces the number of messages required to provided full coverage(not everyone agrees that this is a benefit)37
38 Generic processes - drawbacks Need to look inside messages to see what type of payload is insideMay make it slightly harder to route/report on messages by event type.38
39 Reporting View Approach Example of new approach New fields New reports 39
40 Reporting View - Approach All elements are optional, except for a very small number of exceptionsThis is ensured using a schema generation scriptThe list of fields required for a specific report will be specified using validation rulesList of expected field names and XpathsIf a field is missing, this won’t be a schema error – it will be a business rule validation error40
41 Browsing the FpML 5.0 Reporting View DemoFpML.orgLogin to development area (free account)“Specification” tab (www.FpML.org/spec/)DocumentationBrowse online HTML version or download complete zipSection 3.4 shows “Reporting Business Processes”Schemas and samplesDownload schema and examples (reporting_xml.zip) from:See reporting messages in fpml-reporting-5-0.xsdReporting XML examples are in subfolders inside zip41
43 Example of new approach <positionReport xmlns="http://www.fpml.org/FpML-5/reporting" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" fpmlVersion="5-0" xsi:schemaLocation="http://www.fpml.org/FpML-5/reporting ../fpml-main-5-0.xsd"> <header> <!-- optional, can be used if desired --> <messageId messageIdScheme="http://www.abc.com/mid">XXX00123</messageId> <sentBy>ABCDUS33</sentBy> <sendTo>HEDGUS33</sendTo> <creationTimestamp> T15:38:00Z</creationTimestamp> </header> <asOfDate> Z</asOfDate> <dataSetName>Copper</dataSetName> <position> <!-- position details go here - see next page --> </position> <party id="party1"> <partyName>ABCD Securities Inc.</partyName> </party> <party id="party2"> <partyId>HEGDUS33</partyId> <partyName>HedgeCo Capital L.L.C.</partyName> </positionReport>4343
45 Some of the new fields added for reporting include: Report levelReport contents - more detail about what the report contains (party, accounts, products, etc.)Position levelStatus and history informationProduct levelAsset class45
46 Existing reports (available in 4.x and 5.0) Valuation (pricing and risk)Cash flow matchingPortfolio reconciliationPosition reporting46
47 New reports (only available in 5.0) Position Activity ReportReports on changes to position over a time period (new, modified, removed)Event Activity ReportReports on events (new trades and post trade events) over a time periodReset reportReports on index settings and the affected positions47
48 Recap of Key Points What is FpML messaging for? Define protocol for business processesWhat types of messages are there?Request, Response, Notification, CorrectableRequest, etc.What business processes does it support?Confirmation view: execution, execution advice, confirmation, etc.Reporting view: Valuation, Cash flow matching, etc.
49 Questions? Resources: www.FpML.org Download the FpML specification and draftsParticipate to the development of the standard and join FpML Working GroupsPost questions on the FpML ForumQuestions, feedback:
Your consent to our cookies if you continue to use this website.