Thanks Justus! I'll give it a try for my use case soon. On Sun, Sep 12, 2021 at 8:47 AM Ben Blount <[email protected]> wrote:
> Thanks Justus! > > On Sat, Sep 11, 2021, 13:43 Martin Blais <[email protected]> wrote: > >> Thank you Justus, >> Added to contrib doc. >> >> On Fri, Sep 10, 2021 at 9:47 AM Justus Pendleton <[email protected]> >> wrote: >> >>> Here's a plugin I quickly threw together to do this. There are a few >>> things in the code I'm not 100% sure about, so consider this a beta and let >>> me know if it seems like it is doing the right thing or not for you. >>> >>> https://github.com/hoostus/beancount-asset-transfer-plugin >>> >>> It uses a custom directive so you'd write: >>> >>> 2021-09-10 custom "transfer" 100 APPL Assets:Schwab Assets:Fidelity >>> >>> Caveats: I don't use crypto so maybe I don't understand what you're >>> trying to do; also it transfers assets in LIFO order. >>> >>> >>> On Monday, September 6, 2021 at 6:45:12 AM UTC+7 >>> [email protected] wrote: >>> >>>> May I chip in here and say that I have a *lot* of these. The case of >>>> transferring crypto around has been well discussed but it's a CGT asset in >>>> Aus and moving crypto between exchanges and hot/cold wallets is not >>>> uncommon for me: these number in the dozens, maybe even three figures. >>>> >>>> I have also at times had multiple stockbrokers and while I can go with >>>> abstract account names ("Assets:Shares:<ticker>"), I've preferred to have >>>> per-institution accounts so where I have two active accounts at once the >>>> statements make sense. Every time I transfer holdings between brokers, >>>> those assets are transferred with their cost base attached. >>>> >>>> Not sure what the syntax should be. Just eliding the "recipient" leg in >>>> a transfer populates the posting with the currency of the cost base: it's >>>> beautiful for capital gains but doesn't help us here. So this would break: >>>> >>>> 2021-09-02 * "Buy >>>> BTC" >>>> Assets:Exchange:AUD -1000.00 >>>> AUD >>>> Assets:Exchange:BTC 1.00 BTC {1000.00 >>>> AUD, 2021-09-02} @ 1000.00 AUD >>>> >>>> >>>> 2021-09-03 * "Transfer >>>> BTC" >>>> Assets:Exchange:BTC -1.00 BTC >>>> {} >>>> >>>> Assets:Transfer:BTC >>>> >>>> >>>> (Assets:Transfer:BTC is populated with 1000 AUD, being the cost base; >>>> again, wonderful for capital gains, but not what we need here) >>>> >>>> Perhaps: >>>> >>>> 2021-09-03 * "Transfer >>>> BTC" >>>> Assets:Exchange:BTC -1.00 BTC >>>> {} >>>> Assets:Transfer:BTC 1.00 BTC {} >>>> >>>> This would add {} to the syntax of *augmenting* postings. Correct me if >>>> I'm wrong, but that "empty braces" syntax doesn't exist at present for >>>> augmentations. Perhaps it could be introduced to mean "dump residuals here, >>>> but keep the cost base rather than convert to cost currency". If this >>>> doesn't resolve to a single currency it's an error. >>>> >>>> But that's really a question for Martin; please just consider this a >>>> keen +1 for this feature. I prefer strict booking so I manually fix these >>>> up but it would be nice to be able to write software that exports valid >>>> entries that beancount can interpolate with FIFO/LIFO in the first instance >>>> e.g. for debugging my own code before I make the txs "concrete" with >>>> explicit bookings. >>>> On Thursday, 2 September 2021 at 11:45:29 pm UTC+10 [email protected] >>>> wrote: >>>> >>>>> +1 re. Ben's answer. >>>>> How many of these do you really do? >>>>> >>>>> >>>>> On Thu, Sep 2, 2021 at 2:30 AM Ben Blount <[email protected]> wrote: >>>>> >>>>>> Yeah this is high on my wishlist too. This came up a bunch for crypto >>>>>> users as well - you should find some examples if you search for crypto on >>>>>> the mailing list. >>>>>> >>>>>> The workaround is you have to transfer the lots manually, e.g make >>>>>> two postings per lot - one to reduce the lot on the old account, then >>>>>> recreate it with the original date and cost in the new account. >>>>>> direction >>>>>> bean-doctor can help you easily get all the lots, you can then copy >>>>>> paste to make this a little less fussy. >>>>>> >>>>>> I'm on mobile or I'd give you examples. >>>>>> >>>>>> On Wed, Sep 1, 2021, 22:37 [email protected] <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> I tried searching a bit in the documentation and this forum but not >>>>>>> sure how to handle this case and carry forward cost-basis information. >>>>>>> Imagine you buy some stock at institution 1 and transfer it to >>>>>>> institution >>>>>>> 2 and then sell. How should one record all this? I tried the following >>>>>>> but >>>>>>> I'm getting an error related to no positions found. >>>>>>> >>>>>>> Thanks, >>>>>>> Jonathan >>>>>>> >>>>>>> 2015-02-01 open Assets:Invest:ATrade >>>>>>> >>>>>>> 2015-02-01 open Assets:Invest:ATrade:Cash >>>>>>> >>>>>>> >>>>>>> 2015-04-01 * "Buy some shares of Hooli in April 2015" >>>>>>> >>>>>>> Assets:Invest:ATrade 25 HOOL >>>>>>> {10.00 USD, "first-lot"} >>>>>>> >>>>>>> Assets:Invest:ATrade:Cash -250 USD >>>>>>> >>>>>>> >>>>>>> >>>>>>> 2017-03-01 open Assets:Invest:ZTrade >>>>>>> >>>>>>> 2017-03-01 open Assets:Invest:ZTrade:Cash >>>>>>> >>>>>>> >>>>>>> 2017-04-01 * "Transfer from ATrade to ZTrade" >>>>>>> >>>>>>> Assets:Invest:ATrade -25 HOOL >>>>>>> >>>>>>> Assets:Invest:ZTrade 25 HOOL >>>>>>> >>>>>>> >>>>>>> >>>>>>> 2017-05-01 close Assets:Invest:ATrade >>>>>>> >>>>>>> >>>>>>> 2018-05-03 * "Sell some shares of Hooli in May 2018" >>>>>>> >>>>>>> Assets:Invest:ZTrade -25 HOOL {} >>>>>>> @ 22.00 USD >>>>>>> >>>>>>> Assets:Invest:ZTrade:Cash >>>>>>> >>>>>>> No position matches "Posting(account='Assets:Invest:ZTrade', >>>>>>> units=-25 HOOL, cost=CostSpec(number_per=<class >>>>>>> 'beancount.core.number.MISSING'>, number_total=None, currency='USD', >>>>>>> date=None, label=None, merge=False), price=22.00 USD, flag=None, >>>>>>> meta={'filename': >>>>>>> '/Users/jonathan/Documents/Finances/beandata/test.beancount', 'lineno': >>>>>>> 22})" against balance (25 HOOL) >>>>>>> >>>>>>> -- >>>>>>> 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/b3efe67c-a858-4c2c-af6b-26e7444dd9e1n%40googlegroups.com >>>>>>> <https://groups.google.com/d/msgid/beancount/b3efe67c-a858-4c2c-af6b-26e7444dd9e1n%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/CACGEkZtewt_iundhaTt8HZ654SJmNWJYyUHhgEPXx0gk2SfRkQ%40mail.gmail.com >>>>>> <https://groups.google.com/d/msgid/beancount/CACGEkZtewt_iundhaTt8HZ654SJmNWJYyUHhgEPXx0gk2SfRkQ%40mail.gmail.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/a09a1415-0585-42f7-b1d8-0d2d72efa928n%40googlegroups.com >>> <https://groups.google.com/d/msgid/beancount/a09a1415-0585-42f7-b1d8-0d2d72efa928n%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%2BhMwMAS5%3DiN0tSGbOS%2BkWEVyDFaZgs-_q%3DSt7wcBiSyJuA%40mail.gmail.com >> <https://groups.google.com/d/msgid/beancount/CAK21%2BhMwMAS5%3DiN0tSGbOS%2BkWEVyDFaZgs-_q%3DSt7wcBiSyJuA%40mail.gmail.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/CACGEkZuL_1W0ay6Mugfrp3XPY3UPAxOi8Dnhx_YZubg_S4AJjQ%40mail.gmail.com > <https://groups.google.com/d/msgid/beancount/CACGEkZuL_1W0ay6Mugfrp3XPY3UPAxOi8Dnhx_YZubg_S4AJjQ%40mail.gmail.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/CANUAcYdRZ4RKLhPRO8tNd39Lv2smf2us42sv%3DP1f37h%2BBhvrWg%40mail.gmail.com.
