From Microformats Wiki
Jump to navigation Jump to search

This proposal is years out of date. It needs to be updated with microformats2 and using modern currency-examples. - Tantek 23:26, 18 March 2013 (UTC)


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

Note: an alternative proposal can be found at measure, treating currency as simply a specific kind of measurement.


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#Andy_Mabbett


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 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