From Microformats Wiki
Revision as of 16:18, 18 June 2007 by ScottReynen (talk | contribs) (Reverted edit of XtfG6g, changed back to last version by Tantek)
Jump to navigation Jump to search


currency is a simple microformat for marking up money amounts, such as prices of products/services or financial facts.


Money amounts are one of the most widespread content found on the Web, but the lack of unambiguous representation of the currency they are expressed in, or the date that they relate to, makes comparison and matching of offerings online difficult.


This proposal was written based on the contributions of several members of the community. Original brainstorming ideas and strawman proposal can be viewed at currency brainstorming and currency brainstorming


This proposal limits its scope to:

  • money amounts expressed in one officially issued coins and notes. This means it currently does not support money amounts expressed in terms of commodities or other liquefiable asset.
  • money amounts expressed in one unit. This means that it currently does not support composite amounts such as "39 U.S. Dollars and 99 Cents".


  • Reuse of widely used ISO 4217 for unambiguous encoding of currency types: ensures interoperability with many existing and emerging industry standards such as IFX, ACORD, XBRL or UBL.
  • Define currency once, use anywhere: allows currency units to be defined once and then referred to, instead of locally defined for each money amount, resulting in ease of readability for both human users and their user agents.
  • Timestamping: money amounts have an optional date that allows user agents to translate a historical figure to an equivalent present amount.

Root Class Name

The root class name for a money amount is money.

Property List

  • Required amount: can mark up a machine-readable numerical value with a spanelement or a string value with a abbr whose title attribute contains the machine-readable numerical value (See abbr design pattern).
  • Optional currency, or reference to a currency (See include-pattern). Must markup a ISO 4217 compliant code or use the abbr design pattern to provide the equivalent ISO 4217 machine readable value to the marked up human-readable value.
  • Optional unit, or reference to a unit of the currency (See include-pattern), for instance a "dollar" or "cent". This proposal does not specify how the unit must be marked up. This is the focus of the Measure microformat research microformats. When not present, the unit is assumed to be the default unit for the given currency. For instance, "Dollar" for the U.S. currency.
  • Optional date following the Datetime Design Pattern, specifies the date that must be used to evaluate the value of the currency unit used.


Simple in-line example with local definition of the currency unit: $39.99

<span class="money"><abbr class="currency" title="USD">$</abbr><span class="amount">39.99</span></span>

Text representation of the amount: Thirty-nine Dollars

<span class="money"><abbr class="amount" title="39">Thirty-nine</abbr> <abbr class="currency" title="USD">Dollars</abbr></span>

Example using the unit class: 99¢

<span class="money"><span class="amount">99</span><abbr class="unit">¢</abbr><abbr class="currency" title="USD"></abbr></span>

Table example with global definition of the currency:

      <tr><th>Price in <abbr id="u1" class="currency" title="USD">US$</abbr></th></tr>
      <tr><td><div class="money">39.99<a href="#u1" class="include"></a></div></td></tr>


Discussion of this proposal by specific problems on currency-issues.

Related pages