I cleaned up a tool I've been using to find opportunities to do tax loss harvesting from my beancount file, and am sharing it here <https://github.com/redstreet/beancount_tax_loss_harvester>. A well crafted query may get you a rough list, but I find a few bells and whistles to be far more useful, and hence use this harvester tool. For example, this finds possible wash sales and reports on the details.
>From the README in: https://github.com/redstreet/beancount_tax_loss_harvester Tax loss harvester for Beancount personal finance software Reports the set of lots that can be tax loss harvested from your beancount input file. Example: $ ./tlh.py ~/accounts/accounts.beancount -a "Assets:MyInvestments" Account Qty Ticker Market Purchased W Loss --------------- ------- -------- --------- ----------- --- ------ HTrade-Main 32.22 YYY 1982.123 2019-11-22 41 HTrade-Main 1.313 YYY 893.23 2019-11-23 1142 HTrade-Main 40.4 APPLE 704.344 2019-11-20 83 HTrade-Main 159.504 BETAX 7615.4 2019-07-10 * 384 HTrade-Second 68.695 APPLE 526.55 2019-05-10 19 HTrade-Second 77.786 BETAX 4437.66 2019-08-15 * 28 6 (5 sets) 0 20596.97 1697 Wash sales: recent purchase (within 30 days): ---------- ------------ ------- ------- ----- 2020-01-25 HTrade-Third 75.39 100.00 BETAX ---------- ----------- ------- ------- ----- The example above shows that 1697 USD of losses can be harvested by selling the rows listed. However, 100 USD of that would be considered a wash sale and will not be allowable. It also shows the account and quantities of each commodity to sell total sale proceeds (20596.97 USD) if all the recommended lots were sold. <https://github.com/redstreet/beancount_tax_loss_harvester#features>Features - reports on possible wash sales (US) in the second table above - optionally set a loss threshold. Useful to filter out minor TLH opportunities - reports the total number of sale transactions needed - optionally takes: - account patterns to search for wash-sale creating purchases - account patterns to exclude for wash-sale creating purchases (eg: tax deferred accounts) TODO: - show if a loss generated would be long term or short term -- 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/9efb8263-b248-4c77-8096-2538e57677c4%40googlegroups.com.