Accurate LIFO Lot Tracking for Crypto-to-Crypto Trades
B
Blue Duck
Koinly should improve LIFO cost basis tracking for crypto-to-crypto trades.
When 'Realize gains on crypto-to-crypto trades' is off and LIFO calculation is ON (as required by Italian tax law), the cost basis of the original asset is transferred to the new asset, but the specific LIFO lot details are lost.
For example, if I buy BTC in several lots and swap the most recent lot for ETH, Koinly doesn't preserve which BTC lot was swapped. When I later sell ETH for fiat, the cost basis appears averaged instead of using the correct LIFO lot, making it hard to comply with Italian rules that require LIFO and only tax crypto-to-fiat or only specif types of crypto to crypto disposals (that I can handle manually).
Please add a way to accurately track and carry over LIFO lots through non-taxable swaps so cost basis remains correct for future disposals
B
Blue Duck
Example of how gain calculation should work for the proposed handling of LIFO lots asked in this ticket:
- 1 BTC acquired for 10$
- later the 1 BTC is exchanged for 3 ETH
- At this point, cost basis for future gain calculation should track 3 objects and not only one with averaged cost basis:
1 ETH with 3.33$ cost basis and xx age
1 ETH with 3.33$ cost basis and xx age
1 ETH with 3.33$ cost basis and xx age
- Later, if 1 ETH is sold for 5$, the younger ETH lifo lot should be considered and consumed, and the gain should be calculated as (5 - 3.33)=1.67$.
- As this point, 2 objects should remain in LIFO bucket:
1 ETH with 3.33$ cost basis and xx age
1 ETH with 3.33$ cost basis and xx age
- Later, if some ETH is exchanged to anoter crypto, process repeats until the specific LIFO lot is exchanged with fiat or during any other fiscal relevant transaction.