You’re matching engine just misses stuff sometimes that’s easy for the user to spot, like when timestamps are off. Many times the time stamps are the same, but your DB lists the items in the wrong order, so they don’t get matched (maybe because the addresses don’t match as exchanges sometimes use an intermediary address e.g. Binance).
When I mark both as transfers, the out of order issue flags an error because “Other Transactions” has has a zero balance before sending out funds. You could probably catch a lot of these by smartening up your matching engine, but this would be easier, cover more cases, and provide an immediate tool to make the user happy.
Implementing Manual Transaction Matching:
- When the user selects exactly 2 transactions, one a send, the other a receive, provide the bulk option to match.
- You could provide help text in the empty space not already matched (along with the occasional coin address): “See a match(?)” with mouse over text to provide more detail.
- A second phase feature would allow users to un-pair auto-matched (or previously manually matched) transactions. That would be a lot easier then the current method of deleting data and re-enabling crossed out, auto-imported entries.
After going through a serious amount of pain to do my crypto taxes, I went into a lot of detail here. I know Chandan pays attention to my inputs so it’s worth the trouble for me. You have a great product as an integrated reporting and tax filing tool that works hard to automate a great deal, and a few features would really take it over the top and allow you to charge much more, imho. I almost switched to ZenLedger over how tough this is, but I realized that you’re automation is further along.