Makes sense and thanks - I think I'm going to stick with conversion at query-time for now, should work out ok.
On Wednesday, April 5, 2017 at 6:24:55 PM UTC+2, Jason Chu wrote: > > 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] <javascript:>> 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] <javascript:>. >> To post to this group, send email to [email protected] >> <javascript:>. >> 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/4d7120fe-2b43-4ac9-b76f-8fd3f1c832e2%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
