I was thinking about commodity valuations last night, and I realized there is
fundamental detail which Ledger has no concept of right now: the finality of
postings.
There are postings which are "open", waiting to be "closed" on another day.
For example, if I get paid at work, I now have money that is waiting to be
spent. This money is "open", in the sense that it's future has not been
determined. It therefore has a fluctuating value based on the cost of the
dollar. It's a movement of funds *in transition* from one place to another.
Other postings are final, like when I pay $20 to see a movie. That $20 is
now finally and absolutely *spent*. It has no future, with regard to my
finances. Whatever valuation the amount had on the day I saw the movie is
the valuation it must always have.
Reflecting on this, it seems that Income/Expenses are by nature final
categories, while Assets/Liabilities are open. Then again, sometimes there
are individual postings which should be considered final, even though their
parent account is not by rule.
To accomodate this detail (which some have tried to express through fixated
commodities), I suggest the following additional syntax:
final REGEXP
Any accounting matching REGEXP is considered a final category.
Postings which move amounts into or from these accounts will
always show amounts in terms of the posting's value at that time.
In addition, if a period (.) is found at the end of a posting's amount or
cost, the amount of that posting is considered final:
Expenses:Food $20.00.
Internally, this usage would be modelled using fixated commodities. The $
would get annotated with the date of the posting, and then any use of -V or
-X would constrain the valuation to that date. If multiple commodities occur
in the transaction, then a fixed price is automatically set as well.
I would like to know what those who use multiple commodities think about
this, and if it would make it possible to easily model your dealings with
multiple currencies.
John