Beancount.Directives.Commodity (beancount_ex v0.6.0)

Copy Markdown View Source

The commodity directive declares a currency or commodity.

See the Beancount Commodity directive.

Beancount syntax

2026-01-01 commodity USD
  name: "US Dollar"
  asset-class: "cash"

General form: YYYY-MM-DD commodity Currency

Elixir struct

%Beancount.Directives.Commodity{
  date: ~D[2026-01-01],
  currency: "USD",
  metadata: %{"name" => "US Dollar", "asset-class" => "cash"}
}

Or use Beancount.commodity/3:

Beancount.commodity(~D[2026-01-01], "USD",
  metadata: %{"name" => "US Dollar", "asset-class" => "cash"}
)

Fields

  • date - Date.t() associated with the commodity (often its introduction date; used for ordering, not validation).
  • currency - commodity symbol, e.g. "USD", "AAPL", "HOOL".
  • metadata - optional map for descriptive attributes (name, asset-class, etc.) gathered by plugins and reports.

Summary

Types

t()

@type t() :: %Beancount.Directives.Commodity{
  currency: String.t(),
  date: Date.t(),
  metadata: map()
}