As long as you're fine recording all your assets and expenses in USD and converting only at reporting time to CHF, this is how you properly support the "figure out what the price was when I ask you" case. Another option would be to write a plugin that finds this class of transaction and does the price conversion at the day's conversion rate (this would have the effect of calculating the @ part every time you load the beancount file). I think doing the convert in bean-query is the right way to handle this, given the situation you've described, but the plugin would make the output consistent in fava.
On Wed, Apr 5, 2017 at 9:13 AM <[email protected]> wrote: > OK, found that there was more info in a recent post which I had missed: > > https://groups.google.com/forum/#!topic/beancount/97uaGyWz7DA > > Based on that, I'm guessing option "b" below is the way to go: book the > expenses in the native currency, and add a "CONVERT()" call in bean-query. > > So that beancount file becomes: > Enter code here...2017-01-01 open Expenses:Widgets > 2017-01-01 open Expenses:Tools > 2017-01-01 open Liabilities:OwnersAccount > > ; official monthly exchange rate averages published by VAT office > 2017-01-01 price USD 1.0274 CHF > 2017-02-01 price USD 1.0247 CHF > 2017-03-01 price USD 1.0101 CHF > > 2017-04-05 * "supplier" "widgets purchased" > Expenses:Widgets > Liabilities:OwnersAccount -100.00 USD > > 2017-04-05 * "shop" "tools bought" > Expenses:Tools > Liabilities:OwnersAccount -20.00 USD > > > And the query looks like this: > $ bean-query sample.beancount 'select date, position, narration, > CONVERT(balance, "CHF")' > date position narration convert_bala > ---------- ----------- ----------------- ------------ > 2017-04-05 100.00 USD widgets purchased 101.0100 CHF > 2017-04-05 -100.00 USD widgets purchased > 2017-04-05 20.00 USD tools bought 20.2020 CHF > 2017-04-05 -20.00 USD tools bought > $ > > > It seems to work for me - I'm going to go ahead like this for now. > Any comments always welcome :P > > thanks, > > Sirio > > > > On Wednesday, April 5, 2017 at 6:00:07 PM UTC+2, [email protected] wrote: >> >> Hi all, >> >> I'd like to resolve a little peeve with regards to pricing, if at all >> possible. >> Let me now show you an example beancount file: >> 2017-01-01 open Expenses:Widgets CHF >> 2017-01-01 open Expenses:Tools CHF >> 2017-01-01 open Liabilities:OwnersAccount >> >> ; official monthly exchange rate averages published by VAT office >> 2017-01-01 price USD 1.0274 CHF >> 2017-02-01 price USD 1.0247 CHF >> 2017-03-01 price USD 1.0101 CHF >> >> 2017-04-05 * "supplier" "widgets purchased" >> Expenses:Widgets >> Liabilities:OwnersAccount -100.00 USD @ 1.0101 CHF >> >> 2017-04-05 * "shop" "tools bought" >> Expenses:Tools >> Liabilities:OwnersAccount -20.00 USD @ 1.0101 CHF >> >> >> I'm working with Swiss VAT where the valid exchange rate into foreign >> currencies is fixed by the government VAT office. >> They publish both daily and monthly averages, I choose to use monthly for >> simplicity. >> >> First off, I keep having to input the value "@ 1.0101 CHF" for each >> transaction - because the expense accounts must be reported in CHF. >> But the amount is already marked with an explicit price directive. Is >> there no way I can force a lookup? >> >> Second, the monthly average price is not available the 1st of the month >> ... which means I need to mark entries with a wrong exchange rate and then >> come back and fix them when it is available. >> So the lookup would need to happen when the beancount file is parsed, not >> when it is written. >> I mention this because otherwise it would be quite straightforward to >> just write an UltiSnip to go look up the price and insert it when I'm >> inputting the transaction in the first place ... but it's not always >> available at that time! >> >> Thirdly, I suppose I could just keep the transactions in USD and not >> convert to CHF ... but then when I need to do my balance sheet I need to >> show everything in CHF - and I have not been able to figure out how to get >> bean-query to force a price conversion based on the price database. >> >> So, to recap: >> >> a.) Isn't there any way to force a price database lookup? Maybe with a >> "@@@" syntax meaning "figure this out yourself from the price database" >> >> or >> >> b.) How do I force implicit price conversion when generating reports with >> bean-query? >> >> or >> >> c.) Am I looking at the problem completely wrong and should I approach it >> some other way? >> >> >> Thanks so much for your help. >> >> Sirio >> > -- > You received this message because you are subscribed to the Google Groups > "Beancount" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/beancount/162d0ed7-552a-45bc-8b69-9ba943a1d916%40googlegroups.com > <https://groups.google.com/d/msgid/beancount/162d0ed7-552a-45bc-8b69-9ba943a1d916%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Beancount" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/beancount/CAFFHUgsfwqpKFv0SRa3kMaN6DsQOqv4Wygvow4to6fu%2B613MpA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
