Overview
Current implementation of parsers mostly doesn't support Sale transactions and this should be improved. Idea is, that if user sell some shares, parser should detect it and include it between Sale transaction for given broker.
This feature has several challenges.
Multi year statements
Typically purchase can be done years before sale and not every broker is having information about purchase price on statement with sale transaction.
This means, that user will need to provide also statements with purchase transactions and parser will need to map those two transactions somehow on each other. This creates problem with list of transactions from old statements - we should give user ability to filter outgoing transactions, for example by allowing him/her to specify, that user wants just transactions from specific year.
FIFO
At least in Czech Republic shares are sold in FIFO mode. It means that for tax authorities doesn't matter which share we sold in reality, they will always consider sold oldest purchased share.
This is creating another set of problems as user doesn't need to sell all shares from 1 transaction, but only portion of them and for proper evaluation we need to know complete history of the broker.
We should also make research on how other countries are solving this to find out if it make sense to have this feature configurable/extendable as StatementParser project (only parsing, TaxReporter project is currently heavily focused on Czech Republic, but wrote in a way it's extendable on other countries) is currently country independent and I'd like to preserve it.
#Exchange rates (TaxReporter extension)
Sale transactions are opening questions about exchange rates as there is multiple strategies which can be used:
- Same yearly exchange rate from current year for purchase and sale price.
- Yearly exchange rate from current year for sale price, but yearly exchange rate from the year of purchase transaction.
- Per day exchange rate for sale price and for purchase price.