Martin,
thanks for the feedback. I guess this is a trading accounts method, based
on the Peter Selinger
<https://www.mathstat.dal.ca/~selinger/accounting/tutorial.html>'s document.
But how would you approach the situation, when there is no exchange at all.
======================
option "operating_currency" "BBB"
2020-01-01 open Assets:Bank
2020-01-01 open Equity:Opening-Balances
2020-01-01 price AAA 1.0 BBB
2020-01-01 * "Opening Balance"
Assets:Bank 100 AAA
Equity:Opening-Balances -100 AAA
; Note: at this moment out net worth, when measured in BBB, is 100 BBB, as
the exchange rate is 1.0
2020-02-01 price AAA 2.0 BBB
; Note: at this moment out net worth, when measured in BBB, is 200 BBB, as
the exchange rate has changed
=======================
The *sing_curr_conv *solves this like this
2020-01-01 open Assets:Bank 2020-01-01 open Equity:Opening-Balances
2020-01-01 price AAA 1.0 BBB 2020-01-01 * "Opening Balance" Assets:Bank
100.0 BBB scc_msg: "Converted from 100 AAA" Equity:Opening-Balances -100.0
BBB scc_msg: "Converted from -100 AAA" 2020-02-01 open
Income:Unrealized-Gains:BBB-AAA
2020-02-01 price AAA 2.0 BBB 2020-02-01 * "Unrealized gains due to AAA
price change from 1.0 to 2.0 BBB (BBB price change from 1 to 0.5 AAA)"
scc_msg: "Created by the Single Currency Converter" Assets:Bank 100.0 BBB
scc_msg: "Calculated on the balance of 100 AAA at the beginning of this day
(end of prev. day)" scc_at_cost: "no_cost" scc_unreal_g_cause:
"price_change" Income:Unrealized-Gains:BBB-AAA -100.0 BBB scc_msg: "Calculated
on the balance of 100 AAA at the beginning of this day (end of prev. day)"
scc_at_cost: "no_cost" scc_unreal_g_cause: "price_change" scc_bal_s_acc:
"Assets:Bank"
I guess, the method I implemented is what is described as The "official"
solution: translation to a single currency
<https://www.mathstat.dal.ca/~selinger/accounting/tutorial.html#3.2> in the
Peter
Selinger <https://www.mathstat.dal.ca/~selinger/accounting/tutorial.html>'s
document.
Regards.
On Thursday, January 16, 2025 at 3:24:02 PM UTC+1 [email protected] wrote:
> I wouldn't do it like that.
>
> I think it's quite strange to convert AAA to BBB units in BankA and I
> wouldn't do that.
>
>
> This:
>
> 2020-02-01 * "Exchange AAA to BBB" Assets:BankA -100.0 AAA
> Assets:BankB 150.0 BBB @@ 100 AAA ; <== price, different from
> the one in the price directive
>
> Instead of this:
>
>
> 2020-02-01 * "Exchange AAA to BBB"
> Assets:BankA -100.0 BBB
> Assets:BankB 150 BBB
> Income:Unrealized-Gains:BBB-AAA -50.0000000000000000000000000 BBB
>
>
> Would instead be converted to
>
>
> 2020-02-01 * "Exchange AAA to BBB" Assets:BankA
> -100.0 AAA
> Assets:BankB 150 BBB
>
> Expenses:CurrencyAccounts:AAA 100.0 AAA
> Expenses:CurrencyAccounts:BBB -150 BBB
>
>
>
> On Mon, Jan 13, 2025 at 9:35 AM Chary Ev2geny <[email protected]> wrote:
>
>> Martin,
>>
>> thanks!
>>
>>
>> We did have several discussions with you on this idea of mine (e.g. here
>> <https://groups.google.com/g/beancount/c/CIhT0jrlqI4/m/odxwtnK-BQAJ>).
>>
>> I also know that you were working on the unrealized gains as well.
>>
>> I remember you had had an unrealized gain plugin, plus in v3 I think
>> there were plans for trading accounts based on the Peter Selinger
>> <https://www.mathstat.dal.ca/~selinger/accounting/tutorial.html>'s
>> document.
>>
>> I will really appreciate you could spend 5 min time to review how I
>> implemented the idea.
>>
>> It is best shown in this Jupiter notebook:
>>
>> how_sing_curr_conv_works.ipynb
>> <https://github.com/Ev2geny/evbeantools/blob/main/docs/how_sing_curr_conv_works.ipynb>
>>
>>
>> For me it does exactly what I need so far, but I wonder if you can see
>> any flaws there or have any comments.
>>
>> On Monday, January 13, 2025 at 12:55:34 PM UTC+1 [email protected] wrote:
>>
>>> Thanks for sharing! Added to the contribs list.
>>>
>>>
>>> On Mon, Jan 13, 2025 at 3:08 AM Chary Ev2geny <[email protected]> wrote:
>>>
>>>> Dear all I would like to a announce a sing_curr_conv: Neth Worth Change
>>>> explainer / Unrealized Gains analyzer
>>>>
>>>> This tool makes it possible to explain changes in the Net Worth between
>>>> any two dates in a situation of multi-currency / multi-commodity ledger
>>>> with changing exchange rates and transfers of funds from one commodity to
>>>> another (both cost and not cost-based tracked). This is achieved by
>>>> creating a converted / equivalent ledger, on which further analysis can be
>>>> done using beanquery <https://github.com/beancount/beanquery>.
>>>>
>>>> The tool can be used
>>>>
>>>> -
>>>>
>>>> from a command line
>>>> -
>>>>
>>>> as a function in Python code
>>>> -
>>>>
>>>> as a plugin
>>>>
>>>>
>>>> I may be wrong, but I think there is no generic solution for the Net
>>>> Worth Change problem in the beancount community (e.g. see this
>>>> <https://groups.google.com/g/beancount/c/MQQZ24tTgWE/m/a-9BXEfbAAAJ>
>>>> discussion).
>>>>
>>>> The accompanying Jupyter notebook sing_curr_conv_usage.ipynb
>>>> <https://github.com/Ev2geny/evbeantools/blob/main/docs/sing_curr_conv_usage.ipynb>
>>>>
>>>> has detailed example of how the sing_curr_conv can be used in practice.
>>>>
>>>> The sing_curr_conv is a part of the evbeantools package, which can be
>>>> found here
>>>>
>>>> https://github.com/Ev2geny/evbeantools
>>>>
>>>> I must say, the sing_curr_conv is a result of quite a long activity,
>>>> and actually the very reason I came to beancount 6 years
>>>> <https://groups.google.com/g/beancount/c/CIhT0jrlqI4/m/SEtok-T0CAAJ>
>>>> ago and one of the reasons I learned python. With this in mind and taken
>>>> into account, that I am not a professional developer, any feedback is more
>>>> than welcome (including, but not limiting the feedback on the code, style,
>>>> project etc).
>>>>
>>>> --
>>>> 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 view this discussion visit
>>>> https://groups.google.com/d/msgid/beancount/77d5fe9f-19ba-4664-a65d-8ca6d272f331n%40googlegroups.com
>>>>
>>>> <https://groups.google.com/d/msgid/beancount/77d5fe9f-19ba-4664-a65d-8ca6d272f331n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>> --
>> 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 view this discussion visit
>> https://groups.google.com/d/msgid/beancount/4d209d3a-6188-4d59-931f-97aa5e5f1739n%40googlegroups.com
>>
>> <https://groups.google.com/d/msgid/beancount/4d209d3a-6188-4d59-931f-97aa5e5f1739n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>
--
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 view this discussion visit
https://groups.google.com/d/msgid/beancount/5633eeed-6105-4171-8939-58b62b3c3700n%40googlegroups.com.