Richard, thanks for your inputs.
I also was thinking about this. Even more, I have now written a document (Multiple currency accounting example with trading account <https://docs.google.com/document/d/1z57E8KZ9hIF71s39dDKaE5ow1N7BdJ-eX8y2BFjR9kc/edit?usp=sharing>), which describes proposed calculation method. As an appendix, this document contains google sheet <https://docs.google.com/spreadsheets/d/1-wdXsPcBLjbYO9qLi924X2JWPw8plkWeGbSdjttcsZY/edit?usp=sharing>, where you can see how the method is implemented and play around with it. The approach is quite simple 1. Expenses are tracked at the historical exchange rate (e.i. at the exchange rate, available during transaction). When exchange rate changes, Expenses and Income do not get re-calculated. This is believed to be inline with conventional wisdom , that if you have consumed pizza for 10 USD, there is no reason to re-calculate how much this pizza is worth now in EUR, when USD/EUR exchange rate changed. It only makes sense to know how much that pizza was worth in EUR, when you consumed it. 1. Assets and Liabilities on the other side are recalculated with every event of exchange rate change. This is also inline with conventional wisdom. If you own 1000 of Currency / stock XYZ and all of a sudden this currency became more expensive (just think of Bitcoin), this means you actually got reacher and you want to see it. 1. The exchange rate changes are taken care in the following way: A special Commodity Revaluation transaction is logged. Following the principle of double-entry accounting - one shoulder of transaction is logged to corresponding Asset and / or Liability accounts to adjust these accounts to new exchange rate. - another shoulder is logged to special Gain due to commodity price change (trading account, using Peter Selinger’s terminology). The example calculation can be seen in Appendix A. Google sheet - based calculation example <https://docs.google.com/document/d/1z57E8KZ9hIF71s39dDKaE5ow1N7BdJ-eX8y2BFjR9kc/edit#heading=h.ibvb27d8cznn> So, to answer your particular question: *For example, say you gain 1000 USD in income during that period. What's the right way to understand that change in terms of EUR? Should we value the 1000 in EUR on the date that you took it in, and use that number in a running total of EUR gained and lost throughout the period? Or should we continue to think of it as 1000 USD until the very end of the period in question, and then convert the running total to EUR using the exchange rate at the end of the period? * In income account, this 1000 USD have to be tracked with historical exchange rate If however these 1000 USD were put as asset in bank account, then they now have to be re-calculated to follow changes in USD/EUR exchange rate AND gain due to revaluation has to be logged Please check my document and see whether it makes sense. I still need to check your ledger examples. I must say it is quite possible, that ledger actually does something like that. Regards. Chary On Friday, March 8, 2019 at 9:59:26 AM UTC+1, Richard Lawrence wrote: > > Hi Chary and all, > > Chary Chary <[email protected] <javascript:>> writes: > > > yes, thanks for your patience. Sorry if I did not express myself > correctly > > initially. You got me right with small corrections. I want: > > > > - a single report > > > > - that shows the change in your assets and Liabilities between two > points > > in time > > > > - grouped into Accounts (line with the balance) command > > > > - which includes unrealized gains and losses > > > > - where the total reflects the overall change > > OK, after thinking through this a bunch more, and getting myself fairly > confused, I believe I have convinced myself that what you're looking for > doesn't make sense yet. > > Here's the problem. You want a report that lumps together two kinds of > changes during a specific time period: actual transactions, recorded in > a specific currency (say, USD) and potential gains/losses due to changes > of prices in commodities during that period, including alternate > currencies (say, EUR). But these two kinds of changes are orthogonal to > one another and it's not yet clear how they should interact. > > For example, say you gain 1000 USD in income during that period. What's > the right way to understand that change in terms of EUR? Should we > value the 1000 in EUR on the date that you took it in, and use that > number in a running total of EUR gained and lost throughout the period? > Or should we continue to think of it as 1000 USD until the very end of > the period in question, and then convert the running total to EUR using > the exchange rate at the end of the period? > > It seems that you can *either* ask the question: > > (1) How did my *actual* assets change during a specific *period* in time? > > or: > > (2) Given my actual assets at a specific *point* in time, what potential > gains/losses would I incur by converting those assets to another > commodity (say, another currency) *at that point in time*? > > but I don't think it makes sense to ask: > > (3) How did my assets, including *unrealized* (i.e., potential) > gains/losses due to currency conversions, change during a specific > period? > > In other words, I don't think it makes sense to talk about how the > *unrealized* value of assets *changed* over a period in time. Or at > least, it doesn't make sense until you make some decisions about how to > define the non-actual value of assets at different points in time. > > You can answer question (1) in a variety of ways. The easiest one is > just: > > ledger bal Assets -b begin_date -e end_date > > (Note: begin_date must be some time *after* your opening balances, if > you only want to see changes, not the full total for the account on the > day before end_date.) > > If you want a breakdown of where those changes come from, you might find > this version more helpful: > > ledger reg Assets -b begin_date -e end_date --related --subtotal > > On the other hand, using -b/-e with -X and --unrealized doesn't seem to > make sense, as I explained above (although ledger happily accepts them > both, probably because it uses one of the specific interpretations I > mentioned to understand your non-actual assets across a given period). > To answer question (2), you need something like: > > ledger bal Assets --unrealized -X some_commodity > > perhaps adding --now=... or -e end_date if you want to know your > unrealized gains/losses in some_commodity at a point in time other than > right now. > > Does this make sense? > > -- > Best, > Richard > -- --- You received this message because you are subscribed to the Google Groups "Ledger" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
