Koinly recognizes when tokens are transferred from one of my accounts to another.
This is a killer feature, one of the major reasons for using Koinly.
The matching algorithm will heuristically take date of transfer, amount and probably also other information into account.
Unfortunately, Koinly often gets this completely wrong, even when there is a 100% match with transaction ID and source and destination addresses.
One example is this transaction: https://etherscan.io/tx/0x6036546258b2a20ba6410c5d266d6a9510d60a7f5c71f32d9ca3ba73e215d15d.
This is a transfer between two of the wallets I have registered with Koinly, but Koinly wrongly matches it up with a transfer to Bittrex. A transfer with an unusually high fee of 0.1 ETH, nearly EUR 20.
Clearly, the heuristics used by Koinly can be dramatically improved by taking 100% precise information into account when it is available.
I see this as a problem which is severely diminishing the usefulness of Koinly.