Currency formats prior art
This page gathers information about existing practices and standards for representing currencies and currency-qualified numbers/amounts.
"UBL is designed to provide a universally understood and recognized commercial syntax for legally binding business documents and to operate within a standard business framework such as ISO 15000 (ebXML) to provide a complete, standards-based infrastructure that can extend the benefits of existing EDI systems to businesses of all sizes."
UBL uses the following semantics for currency amounts:
- Amount (enclosed the value)
- amountCurrencyCodeListVersionID (ex. "0.3") - no longer used in 2.0
- amountCurrencyID (ex. "USD")
In addition, UBL uses the following semantics to specify a price for a product/service:
- PriceAmount qualified with a currencyID,
- BaseQuantity (usually 1) qualified with a unitCode.
So, according to UBL at least, a base quantity is an integral part of a price.
XBRL is an XML-based business reporting language.
In XBRL, a currency is just another simple unit of measure.
In XBRL, a unit of measure can be simple or complex. A simple unit of measure if for instance "feet" while a complex unit of measure is "Euros per share".
Units of measurement can be specified anywhere in the XBRL document and assigned a unique identifier, then referred to from numerical facts.
The following examples show adapted versions of the XML examples.
In the adaptation, we have dropped the distinction that XBRL makes between the concept of "unit" and the concept of "measure". We only kept the notion of "unit", allowing a content fragment of class "unit" to contain other fragments of class "unit" to allow the definition of a complex unit.
Currency, UK Pounds.
<span id="u1" class="unit">GBP</span>
Square feet (as simple unit)
<span id="u2" class="unit">sqrft</span>
Square feet (as complex unit)
<span id="u3" class="unit"><span class="unit">sqrft</span>*<span class="unit">sqrft</span></span>
Earnings per share (EPS) measured in Euros per share.
<span id="u4" class="unit"><span class="unit">EUR</span><span class="divide">/</span><span class="unit">shares</span></span>
100 UK pounds (with referred-to unit using the include-pattern)
<span class="price">100<a href="#u1" class="include"/></span>
100 UK pounds (with locally defined unit)
<span class="price">100 <span id="u1" class="unit">GBP</span></span>
Interactive Financial Exchange (IFX)
The IFX Forum develops a robust framework for the electronic business-to-business exchange of data among financial service institutions around the world".
Altough adapted to XML implementations, the IFX data model has been designed independently of XML technologies, so that it can be implemented using other representations than XML.
IFX defines the concept of a currency amount (CurAmt), which contains:
- an amount (Amt), which is a decimal value
- a currency code (CurCode), which is a 3-letter value defined in ISO-4217
The Open Financial Exchange is a standard developed by Microsoft and Quicken for personal finance managers. They use the following conventions for currencies and currency values.
They have the concept of a default currency ("CURDEF"), which is a 3-letter ISO-4217 value.
Then they have the concept of the currency that a value is expressed in ("CURRENCY"), again with a 3-letter ISO-4217.
Last, there is also an option to provide an original currency, if the value has been converted. The ORIGCURRENCY contains a CURSYM (in ISO-4217) and a CURRATE, ratio of CURDEF to CURSYM.
Although the representation of a canadian dollar according to ISO-4217 is CAD, the most common representation of the currency according to some is CDN.
According to wikipedia:
There are various common abbreviations to distinguish the Canadian dollar from others: while the ISO currency code CAD (a three-character code without monetary symbols) is common, no single system is universally accepted. C$ is recommended by the Canadian government (e.g., per The Canadian Style guide) and is used by the International Monetary Fund, while Editing Canadian English indicates Can$ and CDN$; both guides note the ISO scheme/code. The abbreviation CA$ is also used, e.g., in some software packages.
- Any of which can be marked up thus: <abbr class="currency" title="CAD">C$</abbr> (or whatever "class" we eventually decide on) since any of them is a "symbol" representing CAD. - Andy Mabbett
Other standards exist for specific currencies.