Round-trip commissions affecting Adjusted proceeds and costs, e.g. for creating Schedule D Form 8949

46 views
Skip to first unread message

adam...@gmail.com

unread,
Jan 19, 2019, 9:20:01 PM1/19/19
to Beancount
I would like to be able to generate Adjusted proceeds and costs for populating Schedule D Form 8949. It seems like beancount would have the information needed to create this report accurately, but it doesn't exactly align with the data model. Is that right? The problem is that you are allowed to use broker expenses (commission & fees)  at entry(s) to adjust the cost basis up and use broker expenses  at the exit(s) adjust the proceeds down. (https://www.irs.gov/pub/irs-pdf/i8949.pdf)

Here's what I have so far:

1. I see there is a syntax for adjusting the cost basis at entry by a fixed amount of  operating_currency, something like :  1 HOOL {123.00 # 9.95 USD}, Notably, this has the trade-off that it doesn't track Expenses:Commission separately. That's an ok trade-off, except that this scheme doesn't help with folding in the expenses when exiting a position. I could write a plugin which rolls costs of exit into the proceeds and generates a report. The disadvantage is that then there would be an Expense:Commissions account in play for the exit, but not for the entry. That's a bit awkward.
2. The new syntax for folding expenses into cost basis is discussed in some old (2015) announcements but isn't shown in the Cookbook.

What is the latest technology here? Has anyone solved this problem? What do other people do?

Justus Pendleton

unread,
Jan 20, 2019, 1:32:01 AM1/20/19
to Beancount
On Sunday, January 20, 2019 at 9:20:01 AM UTC+7, adam...@gmail.com wrote:
What do other people do?

I just track it explicitly and resign myself to the fact that beancount's definition of cost basis is slightly different from what the IRS thinks.

2018-12-31 * "Sell HOOL"
  Assets:Schwab -1 HOOL {123.00 USD}
  Expenses:Commission 9.95 USD
  Assets:Schwab 113.05 USD
  Income:CapitalGains

Martin Blais

unread,
Jan 29, 2019, 10:52:03 PM1/29/19
to Beancount
For a long while I tried to design a rule for balancing that would handle this gracefully but I was never able to boil it down to something simple and elegant.
The way I do this at the moment (for form 8949, which I have to file) is to write a custom script.
IIRC I use this script (I have to dig it up once/year when I do my taxes, I can never remember):

Come to think of it, it should be possible to handle this in a general trades report.

Beancount doesn't have a trades report, but I've thought for a long time that this should be part of the booking functionality, and the less intrusive way to provide this functionality would be by having the booking code insert metadata on postings when they get reduced (with a common unique strings to match them up), along with the helper code to pull that information out of the stream of directives. I have something similar as part of a completely unrelated plugin here:

I actually need this functionality at some point, I find it embarrassing that it's missing. 
I often find myself wanting to extract the whole list of trades from Beancount (all the information is there).
(I've been prioritizing fixing bugs in the bits and bobs of time I have available here and there.)

Reply all
Reply to author
Forward
0 new messages