On Tue, Mar 31, 2020 at 2:49 PM Makdisse <[email protected]> wrote: > Thanks for that Martin. > The reason why I was using Equity:Opening-Balances at the end of > everything is because: > 1) Something simply won't balance out - for example, I'm getting the error > `Transaction does not balance: (-0.00000020 GBP)` and I'm unable to get rid > of it >
Set the tolerance explicitly using infer_tolerance_default for GBP. That should fix that one. > 2) Sometimes the checking account where the money came from is real old > and I'm not really interested in the balance of that account. So I use the > opening-balances to get the money to start so that I can track what matters > for me, which are the crypto holdings I have > That's the legitimate use for opening balances. The problem is that if you use it as an auto-posting (i.e., without an amount), it also absorbs errors. I would use a specific amount on that opening balances leg if I were you, at least for now. > Are there better work around for the above 2 issues where I don't need to > resort to using the opening-balances to absorb persistent rests or create > money (about which I don't care) to track something I want. > Understand currency groups. This is at the start of the booking process. - First, each of the postings is categorized in a particular currency group based on its cost / price or just the units (if no cost / price). - For each currency group, for each posting, it then tries to match positions based on the inventory (content) of each account. - Finally, it attempts to fill in and infer missing amounts automatically (interpolation) within the group. Read this: https://github.com/beancount/beancount/blob/master/beancount/parser/booking_full.py#L1 and this: https://github.com/beancount/beancount/blob/master/beancount/parser/booking_full.py#L134 Also realize that what you're going to be doing with crypto is probably at the edge of what this thing has been designed for. If I redesigned it with crypto in mind I would make a different set of compromises and choices. Have to run > Thanks > > On Sunday, 29 March 2020 19:43:05 UTC+1, Martin Blais wrote: >> >> This is incorrect >> see in attachment my comments and output of bean-query <file> print >> Basically, your usage of an automated posting everywhere makes you think >> it works but it does, it just absorbs all the errors. >> >> >> On Sun, Mar 29, 2020 at 7:20 AM Makdisse <[email protected]> wrote: >> >>> So what I ended up doing was tracking the lot for all transactions: >>> >>> >>> 2018-03-22 * "Buy ETH" >>> Assets:Coinbase:ETH 2.13226701 ETH {443.62 GBP} >>> Assets:Crypto:Fees 14.09 GBP >>> Equity:Opening-Balances >>> >>> 2018-03-22 * "Send ETH to Kraken" >>> Assets:Kraken:ETH 2.13197651 ETH {443.62 GBP} >>> Assets:Coinbase:ETH -2.13197651 ETH {443.62 GBP,2018-03-22} >>> Equity:Opening-Balances >>> >>> 2018-03-22 * "Convert ETH to EOS" >>> Assets:Kraken:EOS 90 EOS {0.0122067222 ETH} >>> Assets:Kraken:ETH -1.098605 ETH {443.62 GBP,2018-03-22} >>> Equity:Opening-Balances >>> >>> 2018-03-22 * "Send ETH to Binance" >>> Assets:Binance:ETH 1.02551 ETH {443.62 GBP} >>> Assets:Crypto:Fees 0.005 ETH >>> Assets:Kraken:ETH -1.02551 ETH {443.62 GBP,2018-03-22} >>> Equity:Opening-Balances >>> >>> 2018-03-22 * "Send EOS to Binance" >>> Assets:Binance:EOS 89.5 EOS {0.0122067222 ETH} >>> Assets:Crypto:Fees 0.5 EOS >>> Assets:Kraken:EOS -89.5 EOS {0.0122067222 ETH,2018-03-22} >>> Equity:Opening-Balances >>> >>> 2018-03-22 * "Convert ETH to XLM" >>> Assets:Binance:XLM 2324 XLM {0.0004411652 ETH} >>> Assets:Binance:ETH -1.025268 ETH {443.62 GBP,2018-03-22} >>> Equity:Opening-Balances >>> >>> There's always a rest that I must put on Opening-Balances. >>> Whenever I transfer or convert a crypto I try to track which lot I'm >>> talking about. >>> >>> The problem I have now is that I have lots of different types of EOS >>> holding for example. Each one with a different 'Cost Currency'. >>> So what I'm trying to do is to convert all Cost Currencies to GBP (by >>> simulating a sell and a buy from GBP). >>> >>> Eg: >>> Assets:Coinbase:EOS -89.1 EOS {0.0122067222 ETH,2018-03-31} >>> Assets:Coinbase:EOS 89.1 EOS {4.65 GBP} >>> Assets:Coinbase:EOS -151.784400 EOS {0.0150213065 ETH,2020-01-06} >>> Assets:Coinbase:EOS 151.784400 EOS {5 GBP} >>> Assets:Coinbase:EOS -23.907400 EOS {0.0158946602 ETH,2020-01-06} >>> Assets:Coinbase:EOS 23.907400 EOS {5 GBP} >>> >>> The only thing I think is being missed in the documentation is a big >>> beancount file with lots of examples. I know that there are some sparse >>> examples in the google docs, but having a big ledger file with every day >>> examples and all well commented would be very useful to understand how >>> people should do day to day transactions. >>> >>> Maybe a new documentation section on the best patterns to deal with >>> crypto? >>> >>> Thanks >>> >>> >>> On Saturday, 28 March 2020 18:50:41 UTC, Martin Blais wrote: >>>> >>>> Be careful with NONE booking. "Works" means there will be no lot >>>> matching. The only meaningful numbers you can get out of that are >>>> - Sum of units over all postings in that account, currency >>>> - Sum of cost bases over all postings in that account, currency >>>> If you're not getting an error that doesn't mean it's doing what you >>>> want it to do. >>>> (What do you want it to do?) >>>> >>>> >>>> >>>> On Sat, Mar 28, 2020 at 2:43 PM Makdisse <[email protected]> wrote: >>>> >>>>> Thanks for that Red! >>>>> It works fine with "NONE". And I think I understand how I must track >>>>> the holding when converting from a currency to another. >>>>> >>>>> >>>>> On Saturday, 28 March 2020 07:46:27 UTC, Red S wrote: >>>>>> >>>>>> Makdisse, >>>>>> 1) Include this line in your earlier source: >>>>>> 2000-01-01 open Assets:Coinbase:ETH "NONE" >>>>>> >>>>>> and everything would work fine. However, you won't get strict lot >>>>>> reduction, but rather, a mix of positive and negative lots. The point >>>>>> here >>>>>> is to help you build your mental model of how beancount works. Read >>>>>> Martin's response above and see if it makes better sense now. Hint: your >>>>>> source makes beancount think you shorted ETH. >>>>>> >>>>>> 2) Assets:Coinbase:ETH {443.62 GBP} <-- ADDED PRICE >>>>>> >>>>>> That's not valid syntax. You'd have to specify the number you're >>>>>> reducing the lot by.along with the price. >>>>>> >>>>>> 3) try bean-doctor context on the *prior* transaction, and it shows >>>>>> you the state of things. >>>>>> >>>>>> On Friday, March 27, 2020 at 11:26:06 AM UTC-7, Makdisse wrote: >>>>>>> >>>>>>> I've tried adding the ETH price to make sure beancount knows against >>>>>>> which account it should match: >>>>>>> >>>>>>> 2018-03-22 * "Buy ETH" >>>>>>> Assets:Coinbase:ETH 2.13226701 ETH {443.62 GBP} >>>>>>> Assets:Coinbase:Fees 14.09 GBP >>>>>>> Equity:Opening-Balances >>>>>>> >>>>>>> 2018-03-22 * "Convert ETH to XLM" >>>>>>> Assets:Binance:XLM 2324 XLM @@ 1.025268 ETH >>>>>>> Assets:Coinbase:ETH {443.62 GBP} <-- ADDED PRICE >>>>>>> >>>>>>> 2018-03-22 * "Convert ETH to EOS" >>>>>>> Assets:Kraken:EOS 90 EOS @@ 1.098605 ETH >>>>>>> Assets:Coinbase:ETH {443.62 GBP} <-- ADDED PRICE >>>>>>> >>>>>>> 2018-04-03 * "Buy ETH" >>>>>>> Assets:Coinbase:ETH 4.81321544 ETH {339.82 GBP} >>>>>>> Assets:Coinbase:Fees 24.37 GBP >>>>>>> Equity:Opening-Balances >>>>>>> >>>>>>> Now I get a different error: 'Transaction does not balance'. Which >>>>>>> doesn't make sense to me because the math seems to be correct. >>>>>>> >>>>>>> I've read all documentation you wrote, can you see what mental model >>>>>>> I'm missing about how beancount works? >>>>>>> >>>>>>> I've tried a lot of different variations to these 4 transactions and >>>>>>> every time I get a different error. >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Friday, 27 March 2020 12:36:55 UTC, Martin Blais wrote: >>>>>>>> >>>>>>>> Your balance has a mix of positive and negative values. >>>>>>>> See error message, it includes the balance it is trying to match >>>>>>>> against. >>>>>>>> Its not showing the context because the transaction failed to >>>>>>>> match, that's a catch-22 but that we need to fix, failing transactions >>>>>>>> aren't properly handled by the context command. >>>>>>>> >>>>>>>> On Fri, Mar 27, 2020, 05:06 Makdisse <[email protected]> wrote: >>>>>>>> >>>>>>>>> Hi Martin, >>>>>>>>> Thanks for your answer. But I still can't find a solution. >>>>>>>>> >>>>>>>>> The ETH account balance is 2.13226701 ETH before the 2 convert >>>>>>>>> transactions. >>>>>>>>> >>>>>>>>> I then deduct 1.025268+1.098605 == 2.12 from that account. >>>>>>>>> >>>>>>>>> And then on the erroring transaction I try to add more ETH to the >>>>>>>>> account: Assets:Coinbase:ETH 4.81321544 ETH {339.82 GBP} >>>>>>>>> >>>>>>>>> When I run bean-doctor I get an empty transaction: >>>>>>>>> Hash:bde2c9df7c3195dfa5bd9e4b68ed2261 >>>>>>>>> Location: /example.beancount:31 >>>>>>>>> >>>>>>>>> >>>>>>>>> ------------ Balances before transaction >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> ------------ Transaction >>>>>>>>> >>>>>>>>> >>>>>>>>> 2018-04-03 * "Buy ETH" >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> ------------ Balances after transaction >>>>>>>>> >>>>>>>>> >>>>>>>>> And if I try to add {443.62 GBP} to the ETH deduction of both >>>>>>>>> conversions (to specify that the conversion should deduct from the >>>>>>>>> `Assets:Coinbase:ETH 2.13226701 ETH {443.62 GBP}` account) I get a >>>>>>>>> 'Transaction does not balance' error. >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On Friday, 27 March 2020 04:06:41 UTC, Martin Blais wrote: >>>>>>>>>> >>>>>>>>>> You probably have other transactions before this one that make >>>>>>>>>> the balance of that account negative, and so it's trying to match >>>>>>>>>> that >>>>>>>>>> positive ETH posting against existing positions with a cost basis of >>>>>>>>>> 339.82. >>>>>>>>>> >>>>>>>>>> Run bean-doctor context with the filename and line number around >>>>>>>>>> that transaction to see the inventory of the Assets:Coinbase:ETH >>>>>>>>>> account >>>>>>>>>> just before the transaction gets applied. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Thu, Mar 26, 2020 at 7:58 PM Makdisse <[email protected]> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> Hi there, >>>>>>>>>>> >>>>>>>>>>> I'm moving from Pocketsmith to beancount and I've hit a wall. >>>>>>>>>>> I've attached a file with just 4 transactions where I'm getting >>>>>>>>>>> the error: >>>>>>>>>>> >> bean-check example.beancount >>>>>>>>>>> example.beancount:32: No position matches >>>>>>>>>>> "Posting(account='Assets:Coinbase:ETH', >>>>>>>>>>> units=4.81321544 ETH, cost=CostSpec(number_per=Decimal('339.82'), >>>>>>>>>>> number_total=None, currency='GBP', date=None, label=None, >>>>>>>>>>> merge=False), >>>>>>>>>>> price=None, flag=None, meta={'filename': 'example.beancount', >>>>>>>>>>> 'lineno': >>>>>>>>>>> 33})" against balance (-2.123873000000000000000000000 ETH, >>>>>>>>>>> 2.13226701 ETH {443.62 GBP, 2018-03-22}) >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> 2018-04-03 * "Buy ETH" >>>>>>>>>>> Assets:Coinbase:ETH 4.81321544 ETH {339.82 GBP} >>>>>>>>>>> Assets:Coinbase:Fees 24.37 GBP >>>>>>>>>>> Equity:Opening-Balances >>>>>>>>>>> >>>>>>>>>>> I have read all documents on >>>>>>>>>>> https://docs.google.com/document/d/1RaondTJCS_IUPBHFNdT8oqFKJjVJDsfsn6JEjBG04eA/edit >>>>>>>>>>> and >>>>>>>>>>> I still can't understand what I'm doing wrong. >>>>>>>>>>> >>>>>>>>>>> I must be missing some major mental model. >>>>>>>>>>> >>>>>>>>>>> Can you guys please help understand what I'm doing wrong? >>>>>>>>>>> >>>>>>>>>>> Thanks >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> 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 on the web visit >>>>>>>>>>> https://groups.google.com/d/msgid/beancount/fdcd6381-f782-4a42-8f92-56050774086e%40googlegroups.com >>>>>>>>>>> <https://groups.google.com/d/msgid/beancount/fdcd6381-f782-4a42-8f92-56050774086e%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 on the web visit >>>>>>>>> https://groups.google.com/d/msgid/beancount/f51ce28c-54c6-4097-b3df-69be98d90a09%40googlegroups.com >>>>>>>>> <https://groups.google.com/d/msgid/beancount/f51ce28c-54c6-4097-b3df-69be98d90a09%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 on the web visit >>>>> https://groups.google.com/d/msgid/beancount/854b691c-1c80-4cdf-a327-6374b65bf18b%40googlegroups.com >>>>> <https://groups.google.com/d/msgid/beancount/854b691c-1c80-4cdf-a327-6374b65bf18b%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 on the web visit >>> https://groups.google.com/d/msgid/beancount/41a5fece-c99b-4341-a95c-e350730f1661%40googlegroups.com >>> <https://groups.google.com/d/msgid/beancount/41a5fece-c99b-4341-a95c-e350730f1661%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 on the web visit > https://groups.google.com/d/msgid/beancount/adb67cf0-c5b6-4b32-a64c-f6f4fa419be4%40googlegroups.com > <https://groups.google.com/d/msgid/beancount/adb67cf0-c5b6-4b32-a64c-f6f4fa419be4%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 on the web visit https://groups.google.com/d/msgid/beancount/CAK21%2BhNdapS1JwZs5vY-V3km7Eph%3DBJJxKNie0u_PRhy9%2BBEhw%40mail.gmail.com.
