Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
FpML Core Data Types Proposal to the Standards Committee “Core Data Types” Marc Gratacos, 4th June 2007 (based on the work developed by Matthew Rawlings, JPMC) The problem today There is no definition of field lengths in any FpML element Existing users have chosen different lengths => this may cause interoperability problems Example: Party A receives data that is not able to store in database because it is larger than its maximum length accepted. New users find no guidance on how define lengths => additional entry cost Example: maxLen is undefined for many classes e.g. EntityName. Arbitrarily large fields cannot be supported in many technologies, e.g. RDBMS. The problem today FpML does not have a standard set of data types This is a cause of inconsistency across WGs Example: inconsistent use of xsd:string versus xsd:normalizedString versus xsd:token The proposal An initial set of core data types for FpML TextDataType NameDataType CodeDataType IndicatorDataType NumericDataType BasisPointDataType PerCentDataType RatioDataType ValueDataType Based on: FpML implementations Existing standards ISO 15000-5 CCTS Core Data Types ISO 20022 Version 1 Repository ISO 20022 Version 2 Metamodel The proposed list of data types TextDataType: This Data Type is a character string that retains formatting. This Data Type could be used for: A description that is a representation of the properties of an object in natural language A note that is a natural-language comment on a situation or subject The purpose, expressed in text, of this document. It is highly recommended the xml:lang attribute is used. <xsd:restriction base="xsd:string"> <xsd:whiteSpace value="preserve"/> <xsd:minLength value="0"/> <xsd:maxLength value="1048576"/> </xsd:restriction> The proposed list of data types TextDataType: implemented in 25 elements. Examples: Asset/description DividendPayout/dividendConditions BrokerEquityOption/brokerNotes TradeDifference/message … The proposed list of data types NameDataType: This Data Type is a word or combination of words used to name or define an object. The “Name Type” could be used for the following reasons: The name of a contact person. The account name of a financial account. The name of an organization. <xsd:restriction base="xsd:normalizedString"> <xsd:minLength value="0"/> <xsd:maxLength value="255"/> <xsd:whiteSpace value="collapse"/> </xsd:restriction> The proposed list of data types NameDataType: implemented in 32 elements. Examples: Account/accountName Party/partyName MutualFund/fundManager Bond/issuerName … The proposed list of data types CodeDataType: A character string of letters, numbers, special characters (except escape sequences), and symbols. It represents a definitive value, a method, or a property description in an abbreviated or language-independent form. The content of CodeDataType is based on xsd:token. The CodeDataType could be used for the following representations: A code specifying the reason for an allowance charge. A code specifying a classification of the business in a profile. A code specifying a type of contract such as a fixed price contract or a time and materials based contract. A scheme code <xsd:restriction base="xsd:token"> <xsd:minLength value="0"/> <xsd:maxLength value=“255"/> <xsd:whiteSpace value="collapse"/> </xsd:restriction> The proposed list of data types FpML defined schemes would require 60 characters maximum. But we have other non-defined schemes like entityId, tradeId, which would require more characters. 255 characters is usually the maximum for a database field. CodeDataType: implemented in 93 elements/types. Examples: All coding schemes Routing/routingAccountNumber Mortgage/tranche … The proposed list of data types IndicatorDataType: This is the representation of a situation that has exactly two mutually exclusive Boolean values. This data type can have the following values: true – Positive indicator value false – Negative indicator value “Indicator. Type” can be used for example: An indication of whether or not the allowance charge is prepaid. An indication of whether or not the examination results in approval. The indication of whether or not a requirement exists for these instructions <xsd:restriction base="xsd:boolean"> <xsd:whiteSpace value="collapse"/> </xsd:restriction> Implemented to all elements using xsd:boolean type. The proposed list of data types NumericDataType: A Numeric is a decimal value for the representation of only numerical information that can not show as a percent, ratio or value. Only the content component of Numeric is relevant, and it could be represented as positive and negative numeric values. It can be realized be by using the built-in data type xsd:decimal. <xsd:restriction base="xsd:decimal"> <xsd:totalDigits value="60"/> <xsd:fractionDigits value="30"/> <xsd:whiteSpace value="collapse"/> </xsd:restriction> The proposed list of data types BasisPointDataType: A basis point is 1/10,000th or 1% of 1%. The Basis Point Type could be used for the following business relevant representations: The percentage of goods or services completed for this contract. A basis point measurement of one object as part of another object for this specific metric or set of metrics A basis point of the total estimated price that constitutes the minimum threshold price. <xsd:restriction base="NumericDataType"/> The proposed list of data types BasisPointDataType: implemented in 4 elements/types. Examples: CashflowFixing/spread MakeWholeProvisions/recallSpread FloatingRateDefinition/spread FiniteDifferenceDerivativeParameters.mod el/perturbationAmount The proposed list of data types PerCentDataType: The Percent Type could be used for the following business relevant representations: The percentage of goods or services completed for this contract. A percentage measurement of one object as part of another object for this specific metric or set of metrics A percentage of the total estimated price that constitutes the minimum threshold price. <xsd:restriction base="NumericDataType"/> The proposed list of data types PerCentDataType: implemented in 40 elements/types. Examples: AssetPool/initialFactor BondContent.model/couponRate FixedAmountCalculation/fixedRate Tranche/attachmentPoint … The proposed list of data types RatioDataType: A Ratio is the relationship between two quantities, which is expressed as the quotient of the division of numerator by denominator. Ratio Type is derived from Numeric. <xsd:restriction base="NumericDataType"/> The proposed list of data types RatioDataType: implemented in 19 elements/types. Examples: DividendPayout/dividendPayoutRatio CashflowCalculationPeriod/dayCountFracti on FxAverageRateObservationDate/averageR ateWeightingFactor … The proposed list of data types ValueDataType: This expresses the concept of numeric worth in general. Value is derived from Numeric. Therefore, the representation from content component is exactly the same. The Value could be used for the following business relevant representations: A value of the allocation base used in an assessment or distribution. A value-based specification of a priority. A value of a check digit for a bank account number. <xsd:restriction base="NumericDataType"/> Benefits of consistent Core Data Types Greater interoperability of FpML implementations Less ambiguity and custom profiles in interpreting FpML Clearer definition of FpML Consistency of FpML Increased alignment and influence with ISO 20022 and ISO 15000 Additional steps Reach agreement at the AWG (done) Initial implementation (done) Get feedback from implementers Get feedback from working groups Implementation in version 4.4 Extend the coverage in a major version (5.0) Date Scheme Quantity Monetary amount