How to book PnL on fee transaction?

140 views
Skip to first unread message

Jacques Gagnon

unread,
Jan 31, 2016, 12:38:03 PM1/31/16
to Beancount
My broker will charge fee once a month by taking some unit of BLAH base on current market price.
Since I have no BLAH at that price I have elected to say they sold some BLAH held at 13.20

example.bean:509:     Transaction does not balance: (0.852160 CAD)

   2016-01-04 * "Expense"
     Assets:Investments:CA:Broker:Employee:BLAH  -0.2862 BLAH {13.20 CAD} @ 16.1779 CAD
     Expenses:Fees                                         4.63 CAD

If it was myself selling, I would book the difference into an Income:PnL account I believe.

But since it is for paying broker fee would you book it differently???

From a point of view I guess I shall book it in Income:PnL since the profit enabled me to pay the fee with less unit somehow.

Martin Blais

unread,
Jan 31, 2016, 2:56:00 PM1/31/16
to Beancount
This happens to me too, in a 401k account.
The problem of identifying which lot is otherwise undefined.
I'd bet this is occurring to you in a pre-tax / non-taxable returns account.
The broker takes a fee by selling some shares, and booking their "cost basis" at the market price.
They back out the number of units from the desired fee and the market price, without regards for the cost basis.

Here's an example, just to be clear:

  Buy   100 FUND {100 USD}
  Buy     50 FUND {102 USD}
  Fee     -0.04854 FUND {103 USD}

e.g. the fee above is for a 5 USD quarterly fee (0.04854 x 103 = 5.00).
But there are no shares at 103 USD.
But it doesn't matter, because gains/losses on this account is not taxable. Nobody cares.

Now, the Right Thing (TM) to do is not possible at the moment.
That would be to deduce the cost basis corresponding to the market price reported from the sum of all the basis.
This will be possible eventually, when the merging syntax will be implemented.
All lot reductions will reduce to a single lot every time the account gets modified.
In the example above, it would result in this:

  Buy   100 FUND {100 USD}
  Resulting inventory: 100 FUND {100 USD}

  Buy     50 FUND {102 USD}
  Resulting inventory: 150 FUND {100.66667 USD}

  Fee     -0.04854 FUND {103 USD}
  Resulting inventory: 149.95145 FUND {100.66591 USD}

This will be triggered by inserting a '*' in the cost basis.

For now, what you have to do is devolve to the Ledger model, where no lot matching is carried out.
i.e. lots aren't reduced.
This will result in a lot for each posting, regardless of whether one reduces another or not.
Under this model, the values from each individual lots aren't sensible anymore, but the total number of units, and the total cost basis of all the lots in the accounts still makes sense (this is still useful).
At the moment, you can setup Beancount to do this for a particular account by giving it a default booking method of "NONE" in its corresponding Open directive.

See other email on this or the ledger list for examples. Search for "NONE".




--
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+...@googlegroups.com.
To post to this group, send email to bean...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/beancount/75c6e837-9a03-4acd-bd3e-a4912bad3709%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Jacques Gagnon

unread,
Feb 1, 2016, 7:51:14 AM2/1/16
to bean...@googlegroups.com
Good read as always

Yeah it's for an RRSP, "NONE" did the trick

Thanks!

Jacques Gagnon
GTalk/E-Mail: darth...@gmail.com
WLM (MSN): clou...@msn.com

Reply all
Reply to author
Forward
0 new messages