Feature request: input fees that reduce the number of shares

Hi,

I’m a new PP user (literally started yesterday), so I’m not familiar with all its features.
I need to input management fees on French insurance policies (french : “assurance vie”).
The way they work (depending on the brokers, but it’s usually quite similar) is that fees are regularly (usually monthly, quarterly or annually) taken from each security, as a percentage, and end up reducing the amount of shares owned (so for example, if you have 100 shares, and the fee is 0.5% and taken annually, you end up with 99.5 shares at the end of the year).
I stumbled upon a trick that is frequently used in PP to be able to input such a fee, which is to use an outgoing distribution, and set the distribution fee to the same amount as the distribution amount.
However, I don’t think it fully addresses the issue. When using an outgoing distribution, if I just provide the number of shares so that its product with the automatically-retrieved market value matches the fee amount, and if it turns out that the retrieved marked value is slightly offset (eg, there’s a discrepancy regarding when the market value was considered), then I will end up with a wrong number of shares, which means that, although the current value of the portfolio is currently correct (the correct amount was subtracted from the total amount), it will start to diverge as the market value changes.

AFAIK, most brokers provide at least a annual report on the amount of fees per fund, and very often also the corresponding number of shares that were subtracted due to these fees.

So in my opinion, to address this issue, PP should provide the ability to input this kind of fee by hand ; for example, as a new entry in the security account context menu, similar to what already exists in the deposit account context menu ; the entry could be called for instance “Fee (by reduction)”.
The resulting popup should provide two options :

  • either set both the fee amount and the amount of shares withdrawn
  • or just provide the fee amount.

In practice, it could be sequential : the resulting popup first asks for the fee amount and the date at which it was withdrawn. Then PP calculates how many shares it corresponds to (using market value), and displays it to the user (along with the new total, because some brokers will only provide the current amount of shares), but offers the user the ability to change its value (if the broker provided the exact number of shares that were subtracted) ; in which case, PP should change the market value so that it matches how many shares were taken and the fee amount.

This question is related to Features improvements on investment plans (for SCPI in particular) and for automatic scheduled fees on unit-linked accounts · Issue #5329 · portfolio-performance/portfolio · GitHub, but I couldn’t add my comment there because I don’t have a github account, and the issue created there asks about automating this process, which doesn’t seem straightforward to me, as @mierin12 pointed out, because each broker will have their own way of implementing the fees (monthly or per quarter, with prorata or not, etc). In my opinion, offering a easy way to input it by hand would already be a huge step forward, and it doesn’t seem that difficult to implement. However, if you have a github account, feel free to add a comment on github that links to this question

Hello,

I agree with what you said, but I think the outbound delivery tricks do work. As you said, the two key data that matter are
-number of shares reduced
-final fees amount
The associated quote is then derived by PP by amount/number of shares, it would be inaccurate to try to guess the final fees with number of shares*quote of the day I believe : are the brokers considering the quote of the day, or day-1 ? Is it from the same quote provider than the one setup in PP ? Many ways to gets errors if we rely on quote of the day in PP.
But the outgoing delivery works as you want I think, the quote is automatic but indicative only, if you overwrite the amount and number of shares, the associated quote will change.

The main issue is to get the accurate data on the number of shares and final fees deducted, as some brokers provides them, but some dont. And yes, I do think it would be wishful thinking that PP tries to retro-engineers the values for brokers that do not provider them (exact calculation methods, what happens if you sell all the shares before the fees dates, quote used in practice by the brokers etc).

But, and this is your point, I agree that from UI point of view it would be much clearer to indeed have a dedicated transaction in PP, with a dedicated name and UI window (= outgoing delivery without taxes, without 0 final value, and without maybe the quote as you said) and under the hood it can behave exactly as the outgoing delivery with the equivalent parameters. I am not sure how easy that would be to implement, if it can impact existing pdf/CSV transactions importers or not.

Another use case would be for fees on shares that occur on transfer, users reported this use case on crypto transfers for example.

Thanks for your answer.

I initially missed that the change order is key. If you first change the total amount, then the number of shares, it doesn’t work (changing the number of shares then just changes the total) ; however, if you first change the number of shares, then the total, then it indeed updates the final fee amount. This is highly unintuitive.

However, as you said, my point is mainly that the UI should make it easier to input such fees. I think this is really important, because most French people have a “assurance vie” (41%, insee), so basically would help PP get many more users if it was natively handled, with no hacks.

I have no idea how it works under the hood, but my high level understanding is that it would be very easy to implement, because the underlying mechanisms already exist, as you stated, and it’s just a matter of presenting it to the UI. The retro-engineering method that you mention would be a nice to have, but not required for a first version of this feature.

Are there any PP developers that actively monitor this forum ? If so, could you please consider adding this feature ? Or could someone link this discussion to the github issue I provided ? It would be really nice if it could be part of the next version. Later on, one could reflect on how to add the retro-engineering method you mentioned, or the automatic processing that is mentioned in the linked github issue

Thanks