On Thu, Mar 4, 2021 at 4:01 PM James Cook <[email protected]> wrote:
> Hi list, > > I file taxes in both the US and Canada, for which I have to calculate > capital gains differently: > > a) In Canada I'm deemed to have bought most of my assets on the date I > moved here. There's no such fiction on my US taxes. > That's fascinating. So you have two completely independent cost bases? Crazy. Say, you bought AMZN at $2000, moved to Canada when it was $2600 (say this was $3100 CAD at the time), an AMZN is now at $3000, you have - A $1000 unrealized gain to the US - Say, the 3100 CAD is now worth 3120 CAD due to currency fluctuation, you have a (1.2 x 3000 - 3100) unrealized gain to Canada Now you sell 1 share of it. You have two separate P/L. Is that right? > b) When calculating capital gains, Canada taxes use average cost > booking; for the US I can somewhat choose the booking method. > On top of that... so in the US you'll book one way, in Canada another way. Christ... > Has anyone dealt with this using beancount? My tentative plan is below, > but suggestions would be welcome. > > Plan: > > * In beancount, I'll enter all data from the US point of view: > individual lots get bought and sold, and it should be straightforward > to use beancount to compute my capital gains for US taxes. > Taking care of commissions by hand, always (we haven't really automated that problem). > * In Canada, I will take advantage of the fact that average cost > booking is more-or-less deterministic: there are (almost) no choices > for me to make, so it should be possible to construct the average > cost basis just from the beancount leger after discarding all the lot > information. > > So: I'll cobble together some custom code, probably involving > bean-query, to compute the average cost for each of my sales. I'm not > afraid to write a bit of code, but I'm not sure how much effort this > will be. > I think you're going to need a script for that. What you could do is write a script which iterates through your transactions and computes and maintains the running Canadian basis on the side - in a mirrored hierarchy of Inventory objects (see "realization" in the source code). > * (It's tempting to just use average-cost booking for the US so things > agree in both countries, but one problem with that is point (a) > above.) > Don't do that... with the recent runup in the market, this could make a significant difference in taxes. > > Alternative ideas: > > * Maintain separate Beancount ledgers for both countries. > > * Write some weird plugin to facilitate average cost basis tracking > even while I'm using beancount's standard lot tracking to do things > from the USA point of view. > > * Do the Canada stuff by hand. It's probably not that bad. > > * Pay someone to do my taxes for me. Last year that cost me a few > thousand dollars, and this year I'd rather spend a few days tinkering > than pay that. > Honestly, I'm not even sure most accountants are able to do this without making a mistake in a timeframe where it's still profitable for them to do your taxes. What I've seen is a lot of approximations. I think writing a script like I mention above would be a fun challenge... > Currently I've been ignoring Beancount's lot-tracking features partly > because of this issue, but the time has come for me to import a bunch > of my trades so I think it's time for me to figure out how I'm going to > do this. > > -- > James > > -- > 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/20210304210142.xiq427y5uzhasz64%40moth.falsifian.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%2BhMP-vuPXxokjCq%2B-8P%3D%2B06%3DN9AFfVHADFXZkBqXoKFBAA%40mail.gmail.com.
