Skip to main content
All CollectionsStep 2: Review for Accurate Results
Solving Missing Purchase History issues
Solving Missing Purchase History issues

Missing Purchase History warnings are a common issue that can be resolved easily

Patrick McGimpsey avatar
Written by Patrick McGimpsey
Updated over 5 months ago

Note: Missing Purchase History used to be referred to as Negative Balance warnings.

Missing Purchase History issues can seem like a complex issue, but they are actually simple once you understand the underlying problem. A Missing Purchase History warning basically means that you have spent something that the platform does not 'know' you have. To fix these warnings, you need to tell the platform that 1) you own the asset and also 2) where you own it.



Here is a simple yet common scenario:

Bob buys 1 BTC on Coinbase, which he then transfers to Binance before selling. Bob only imports Binance data to the Crypto Tax Calculator platform. The balance showing on the dashboard is -1 since the platform doesn't yet have the initial purchase details of 1 BTC from Coinbase. The solution is for Bob to upload his Coinbase account so the platform knows where the BTC was bought and where it came from when it was sent to Binance.

The number one way to address Missing Purchase History is to ensure you have uploaded ALL wallet and exchange accounts. If we do not support the wallet and exchange with a direct upload on our site, please upload the data via the manual CSV import.

If you have definitely uploaded all of your accounts and wallets, Missing Purchase History warnings can occur due to one of the following being missing from the actual data import itself:

  1. A missing buy or trade

  2. A missing send/receive (i.e they have not paired/grouped into a transfer)

  3. Fees have been accounted for incorrectly

  4. Rounding errors

  5. Staking rewards not being accounted for

These issues are less common, but unfortunately, reporting standards across exchanges are not uniform, which can cause discrepancies. The further back in time you go, the more likely it is that the data could be missing some components. This can lead to Missing Purchase History warnings for users.

Another common one is rebasing or reflection tokens. As the rebases or the reflections are not recorded on the blockchain, the platform will see your initial purchase of the token, and then down the track, there will be a sell of a larger amount than was originally purchased. Essentially, the platform thinks you are selling tokens that you never bought, which will cause a Missing Purchase History warning. You can read more about rebase tokens here to further understand them.

How do I go about solving these warnings?

To solve Missing Purchase History issues, filter by the affected token using the ‘currency’ filter on the 'Transactions' page. You can either type the currency on the filter search bar or click 'Filter' and filter by currency. Then, work from the beginning (chronologically), ensuring that it has the following:

a. Buy (increase the asset balance)

b. Send (to the other wallet - now the balance is in-flight (transferring but unconfirmed)

c. Receive (this is the time the transaction is actually received in the other wallet)

d. Sell (this will decrease the balance)

If any of these are missing, then a Missing Purchase History warning will occur. If it looks like none of these transactions are missing, head to the first Missing Purchase History warning and expand that transaction by clicking on it. You should see a drop-down of all the transactions related to the event. At the top will be a 'zero cost buy' for the component that is causing the balance to drop negative. If it is a small amount, it could be due to rounding or fee errors. If it is larger, it is more likely to be a fundamental issue listed above, so go back and ensure there are no buys, send/ receive (grouped to transfer), or sells missing.

Still confused about the concept?

Imagine these steps in a scenario where you have three buckets, labeled A, B, and C:

  1. You fill bucket A with 10L of water. This represents your 'buy' in crypto terms.

  2. You then pour the water from bucket A and it lands in bucket B. This represents your 'send' and 'receive' in crypto terms.

  3. 0.5L splashes out when you pour. This represents your fee.

  4. Bucket B now contains 9.5L of water.

  5. You pour the water from bucket B and it lands into bucket C. Again, this represents your 'send' and 'receive' in crypto terms.

  6. 0.5L splashes out as you pour. Again, this represents your fee.

  7. Bucket C now contains 9L of water.

  8. You pour your 9L of water from bucket C into a 9L container. This represents a 'sell' or another disposal event in crypto terms. The 9L container is filled to the brim, with no water missing and also no water spilling over the edge.

As you can see, it is important that each step is recorded correctly, or you will have no idea how much water is in bucket C by the end. You would go to fill the 9L container and find some water missing, or it might even overflow.

If you missed importing step 1 (the 'buy'), the app would think you were pouring water that you didn't have for the following steps. This would cause an error on each following step as you would be essentially pouring water that wasn't recorded as being in that bucket. It would cause 7 errors but would only require the addition of one step to fix them. If you see a large number of errors, don't stress; it could be as simple as one single 'buy' transaction being missing!

If you recorded step 3 or 6 incorrectly (the 'fee’), you may not know how much is in the bucket after you finished pouring (the 'transfer'). If you incorrectly recorded the 'transfer' as a pour of 10L and a fee of 0.5L, you would have a Missing Purchase History on the fee because we only bought 10L, not 10.5L! This could carry on if you thought you still had 10L in bucket B and then poured it into bucket C. In the end, you wouldn't know how much was actually in the last bucket, which would cause issues.

If you recorded step 2 or 5 incorrectly, the transfers would cause issues. If you only told us you poured the water from one bucket without telling us it went into another bucket, we wouldn't know where the water was. The water spends some time in the air before it falls into the next bucket. If you then went to pour from the next bucket, (the supposed 'receiver' bucket), you would be pouring water you never told us was in there! This is a concept known as 'in-flight' in crypto. The 'send' and 'receive' must be recorded! On the platform, they will link together to form a 'transfer'. Without both sides of the transfer, the app could think that your crypto could be still 'sending'. More about sends, receives and transfers and fixing these issues can be found here.

If you are unable to solve your Missing Purchase History issues, be sure to reach out and connect with an accountant. Our friendly support team can provide you with the names of our partnered accountants across several countries, just ask!

Did this answer your question?