FpML Core Data Types Proposal to the Standards Committee Core Data Types Marc Gratacos, 4 th June...
-
Upload
isabella-webster -
Category
Documents
-
view
217 -
download
1
Transcript of FpML Core Data Types Proposal to the Standards Committee Core Data Types Marc Gratacos, 4 th June...
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/
dayCountFraction FxAverageRateObservationDate/
averageRateWeightingFactor …
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