Add IRR after tax column to securities performance view#5832
Open
Tanino70 wants to merge 11 commits into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR adds a new "IRR (after tax)" column next to the existing IRR column
in the Securities Performance view.
Motivation:
The existing IRR (IRRCalculation) is intentionally computed on gross cash
flows: taxes withheld on dividends and paid on sales are added back to
reconstruct the value before taxes, while fees are always kept as real cash
flows. This is useful, but there is currently no way to see the return an
investor actually realized after taxes.
Implementation:
that overrides the three visit() methods to use the actual net cash flows
instead of reconstructing the gross value:
part of a buy/sell/dividend) are now included as real cash flows, since
they represent an actual tax charge/refund independent of a specific
transaction
Fees continue to be treated exactly as in the gross calculation.
protected so the subclass can reuse the ValuationAtStart/ValuationAtEnd
handling without duplicating it.
following the exact same pattern as the existing irr field.
"IRR (after tax)" right next to the existing IRR column.
IRRCalculationTest, plus a second test covering the standalone tax
transaction case.
No existing behavior changes; the new column is opt-in (hidden by default).