if i were doing this i think i'd look into using a different symbol for pre and post split. it just feels cleaner to think of the pre-split shares as being a fundamentally different thing than the post-split. not sure how hard it would be to keep price fetching working, and suppress realization of cap gains.
On Wed, Jun 26, 2024 at 8:57 PM Martin Blais <[email protected]> wrote: > Beancount does not deal with splits explicitly. > This means that the time series of your price will have a jump at the time > of the stock split. > Building this properly is out of scope and I've found it not worthwhile; > there are many more corporate actions it would have to take into account, > e.g., spinoff of shares and that's worthy of building in something that > serves market data, but not super important in an accounting system. > > > > On Wed, Jun 26, 2024 at 9:38 AM Brian Lalor <[email protected]> wrote: > >> Alright, I see. Thank you. >> >> If it’s not already obvious, I’m quite naïve about trading. Given that >> most (if not all?) historical price records seem to have been retroactively >> updated for all cumulative splits (ie >> https://finance.yahoo.com/quote/NVDA/ shows the 2024-02-14 closing price >> as 73.90 USD), is there any reason not to just update the original >> transaction in my ledger? >> >> — >> Brian Lalor (he/him) >> [email protected] >> >> On Jun 22, 2024, at 9:34 PM, Martin Blais <[email protected]> wrote: >> >> 2024-06-02 * "NVDA 10:1 stock split" "" >> Assets:Stocks:NVDA -2 NVDA {733.09 USD, 2024-02-14} >> Assets:Stocks:NVDA 2*10 NVDA {733.09/10 USD} >> >> You don't realize gains on a split >> >> >> >> >> >> >> On Sat, Jun 22, 2024 at 8:42 PM Brian Lalor <[email protected]> wrote: >> >>> Like this? >>> >>> 2024-06-02 * "NVDA 10:1 stock split" "" >>> Assets:Stocks:NVDA >>> -2 NVDA {733.09 USD, 2024-02-14} >>> Assets:Stocks:NVDA >>> 20 NVDA {109.633 USD} >>> >>> >>> But that doesn’t balance. >>> >>> — >>> Brian Lalor (he/him) >>> [email protected] >>> >>> On Jun 22, 2024, at 8:16 PM, Martin Blais <[email protected]> wrote: >>> >>> You bought your NVDA at 733.09 not 1096.33, that's what you have to >>> provide in the cost for the -2 leg. >>> The docs are correct. >>> >>> >>> On Sat, Jun 22, 2024 at 5:32 PM Brian Lalor <[email protected]> wrote: >>> >>>> I know this has been discussed a few times, but the docs are still >>>> incorrect and I’m unable to find a complete example. I’m using beancount >>>> v2 because Fava’s not been updated for v3, yet. >>>> >>>> NVDA recently split 10:1. I previously purchased 2 shares: >>>> >>>> option "operating_currency" "USD" >>>> >>>> 2024-02-14 open Equity:Opening-Balances >>>> USD >>>> >>>> 2024-02-14 open Assets:Cash >>>> USD >>>> 2024-02-14 pad Assets:Cash Equity:Opening-Balances >>>> >>>> 2024-02-14 open Assets:Stocks:NVDA >>>> NVDA >>>> 2024-02-14 commodity NVDA >>>> >>>> 2024-02-14 * "Buying some NVDA" "" >>>> Assets:Stocks:NVDA >>>> 2.00 NVDA {733.09 USD} >>>> Assets:Cash >>>> >>>> 2024-05-31 balance Assets:Stocks:NVDA >>>> 2 NVDA >>>> 2024-05-31 balance Assets:Cash >>>> 0.00 USD >>>> >>>> The pre-split stock price (per Yahoo and bean-price) was 1,096.33, and >>>> my Fidelity account confirms that I have 20 shares. Per the docs[1], I >>>> would do (I think): >>>> >>>> 2024-06-02 * "NVDA 10:1 stock split" "" >>>> Assets:Stocks:NVDA >>>> -2 NVDA {1,096.33 USD} >>>> Assets:Stocks:NVDA >>>> 50 NVDA {109.633 USD} >>>> >>>> bean-check fails, however: >>>> >>>> nvidia_split.beancount:24: No position matches >>>> "Posting(account='Assets:Stocks:NVDA', units=-2 NVDA, >>>> cost=CostSpec(number_per=Decimal('1096.33'), number_total=None, >>>> currency='USD', date=None, label=None, merge=False), price=None, flag=None, >>>> meta={'filename': 'nvidia_split.beancount', 'lineno': 29})" against balance >>>> (2.00 NVDA {733.09 USD, 2024-02-14}) >>>> >>>> Explicitly using the lot in that transaction fails, too: >>>> >>>> 2024-06-02 * "NVDA 10:1 stock split" "" >>>> Assets:Stocks:NVDA -2 NVDA {733.09 USD, 2024-02-14} @ 1096.33 USD >>>> Assets:Stocks:NVDA 20 NVDA {109.633 USD} >>>> >>>> The error is: >>>> >>>> nvidia_split.beancount:24: Transaction does not balance: (726.4800 >>>> USD) >>>> >>>> 2024-06-02 * "NVDA 10:1 stock split" "" >>>> Assets:Stocks:NVDA -2.00 NVDA {733.09 USD, 2024-02-14} @ 1096.33 >>>> USD >>>> Assets:Stocks:NVDA 20 NVDA {109.633 USD, 2024-06-02} >>>> >>>> So it seems the price of 1096.33 is being ignored and I’m trying to >>>> purchase 20 shares at 109.633 USD using 2*733.09 USD and the “gain” of >>>> 363.24 USD per share is being lost. >>>> >>>> What is the proper way to reflect a stock split? >>>> >>>> Thanks, >>>> Brian >>>> >>>> [1]: >>>> https://beancount.github.io/docs/trading_with_beancount.html#stock-splits >>>> — >>>> Brian Lalor (he/him) >>>> [email protected] >>>> >>>> -- >>>> 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/C9EBE17D-A95F-4018-B979-59831C301DFB%40bravo5.org >>>> . >>>> >>> >>> -- >>> 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%2BhMXg654ZmD8N%2BedrJuCzSah2hrX0apH1Q6o%3D2%3DxP80kQQ%40mail.gmail.com >>> <https://groups.google.com/d/msgid/beancount/CAK21%2BhMXg654ZmD8N%2BedrJuCzSah2hrX0apH1Q6o%3D2%3DxP80kQQ%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/EBF195B5-FA6C-476B-9925-0DADC70FADA2%40bravo5.org >>> <https://groups.google.com/d/msgid/beancount/EBF195B5-FA6C-476B-9925-0DADC70FADA2%40bravo5.org?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%2BhNGvUFRtQmK9jskoGCPidmahv6aOf_hpqTHmZGYYsEvPA%40mail.gmail.com >> <https://groups.google.com/d/msgid/beancount/CAK21%2BhNGvUFRtQmK9jskoGCPidmahv6aOf_hpqTHmZGYYsEvPA%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/CAF6E8D1-6E0B-47F4-A9B6-E77C1C18AD69%40bravo5.org >> <https://groups.google.com/d/msgid/beancount/CAF6E8D1-6E0B-47F4-A9B6-E77C1C18AD69%40bravo5.org?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%2BhOrUwFLda0bFMK%2BGp3-3SBW5eyVY7J%3DBy_mcY1S%3D_kReg%40mail.gmail.com > <https://groups.google.com/d/msgid/beancount/CAK21%2BhOrUwFLda0bFMK%2BGp3-3SBW5eyVY7J%3DBy_mcY1S%3D_kReg%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/CAFXPr0vDq1Ty1pLTgZBBRGgNFUAwSD1VtZx0t0Fjv36VVcuQBg%40mail.gmail.com.
