What it should be: precision has to be rewritten (the v3 proposal includes ideas for doing this) Practical solution: just add a little Equity:RoundingError posting to absorb the fraction of a cent and move on.
One day, when I retire, I'll spend months writing v3 and offer you all a new and improved Beancount or maybe someone with more free time and enthusiasm will beat me to it, go Crustaceans, go!). On Sun, Feb 11, 2024 at 11:15 AM Ceri Storey <ceri.sto...@gmail.com> wrote: > Hi folks, > > I'm in the UK, so we get to deal with the inconvenience that is average > cost booking when it comes to figuring out capital gains taxes. I'm > currently using the average cost plugin, which works fine, but that > approach it means that the inventory never gets reduced, so you end up with > holdings never really going away. > > So I was planning on using a cost-basis adjustment approach ( > https://beancount.github.io/docs/trading_with_beancount.html#cost-basis-adjustment-and-return-of-capital) > to "re-base" the assets to have a single average cost basis. In this case, > the asset is purchasable on a fractional basis. > > So I've tried something like this: > > 2020-12-07 open Assets:Fnord:Foo > FOO > 2020-12-07 open Assets:Fnord:Cash > GBP > > 2020-12-07 * "Buy Asset" > Assets:Fnord:Cash > -6.86 GBP > Assets:Fnord:Foo > 5.5555 FOO {1.2345 GBP} > > 2021-04-07 * "Buy more asset" > Assets:Fnord:Cash > -30.80 GBP > Assets:Fnord:Foo > 13.1313 FOO {2.3456 GBP} > > 2021-04-11 * "Average cost re-base" > ; Re-base to current average cost basis > Assets:Fnord:Foo > -5.5555 FOO {1.2345 GBP} > Assets:Fnord:Foo > -13.1313 FOO {2.3456 GBP} > ; Actual average is 2.015275062075903846565490079, according to > python's decimal module. > Assets:Fnord:Foo > 5.5555 FOO {2.0152 GBP} > Assets:Fnord:Foo > 13.1313 FOO {2.0152 GBP} > > No matter how much precision I specify for the average, it always seems to > be off by some small amount: > > /Users/cez/Documents/beancount/ledger/cost-basis-simple.beancount:12: > Transaction does not balance: (-0.00140267 GBP) > > If I use an average of 2.015, -0.0051. Even with the 20 decimal places of > precision for the average price, the transaction is off by > -0.000000000000000000102592 GBP. > > So I'm clearly missing something about the precision, and/or how to handle > these cost basis adjustments. Can anyone offer any suggesiton as to what I > might be missing? Is this one of those cases where I should post an > adjustment to a hack account of some kind? > > 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 beancount+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/beancount/db6e8cec-1ed5-49e9-b587-4719d1a90f54n%40googlegroups.com > <https://groups.google.com/d/msgid/beancount/db6e8cec-1ed5-49e9-b587-4719d1a90f54n%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 beancount+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/beancount/CAK21%2BhPi53e%3DLFGHwbGV5_cSttouRwFQhY2vd8U1X-5-he5_wQ%40mail.gmail.com.