Open rsesek opened 5 years ago
Thanks for reporting this. We should fix this in the code of should_show (CounterInventory
should have the same behaviour as Inventory
in Beancount). I hope the performance implications aren't too bad.
I also have an investment account that shows in fava after all inventory was transferred out of the account. Changing is_empty
as suggested above fixes the bug and does not have any noticeable performance implications.
However, when viewing the Balance Sheet at Market Value, the unrealized PnL is not carried over from the old hidden account and the unrealized PnL displayed only reflects the PnL since the account conversion. The total unrealized PnL for all assets accounts is still accurate, but the unrealized PnL from the old hidden account gets lost. Is that a beancount or fava issue?
I'm also bumping into this. I'm curious if the isEmpty
suggestion above is likely to make it into the codebase in the near future - or if it led to any performance issues in testing.
Thanks all - I was really scratching my head on this one until I found this Issue!
For accounts like 401k plans, until AVERAGE booking is implemented, we are advised to use NONE booking. My plan recently did a fund swap and after that transaction, despite the balance of the old account being 0 and being closed, it still shows on Fava's Balance Sheet display. I've attached a reduced booking-none-test.bean.txt file that demonstrates this.
I tracked the issue down to
template_filter.should_show()
, which usesaccount.balance_children.is_empty()
to determine if there are any inventory still associated with the account. For accounts that use full booking, reductions will remove positions of an inventory and will cause the account to be empty when all are removed. But for NONE booked accounts, reductions are stored as negative positions, with the sum of the positions producing the net balance.The issue thus appears to be in
core.inventory.CounterInventory.is_empty()
, since it does:As a quick hack, I changed the implementation to:
The above is probably not the right fix since I'm not an expert, but it did resolve the issue for me.