Sometimes when you import data into the calculator, the balances might appear incorrect. This is caused by missing or incorrect transaction data and/or incorrectly categorized transactions.
Before proceeding, make sure you have:
Imported all your exchanges and wallets.
You need to make sure you have imported all transactions across all financial years, including OTC trades. If you no longer have access to your transaction history, you will need to estimate this and/or speak to your accountant. If you have any missing transaction history, the balances will not add up.
Categorized all "incoming/outgoing" transactions.
You can check for uncategorized transaction warnings by selecting this filter on the transactions page. If you have "unknown" transactions, these can incorrectly increase or decrease your balance. We require you to categorize these transactions. When categorizing transactions, it is important to note that send/receive does not change your overall balance. These transactions signify a transfer of funds that are still within your ownership.
Confirm it is not a rounding error.
Some exchanges only provide information to x number of decimals, whilst the real potential decimal place can be 16 or even 24 decimals. This can lead to some rounding errors, particularly if you have done lots of trading. Some level of inaccuracy is to be expected when you have such a variance in the quality of the data.
If you have done the steps above and you still have issues, you will need to investigate things further. There are a number of things that could have happened:
The exchange you imported data from has missing or incorrect data.
For example, some exchanges have missing data for certain transactions such as fiat deposits or conversions. Other exchanges only keep data for a short amount of time. Another common issue is that the exchange does not provide data on airdrops, hard forks, or token swaps. In all of these cases, you will need to enter the missing transactions manually.
You have missing send/receive data.
Usually, we match withdrawal and deposit information between exchanges/wallets either as a send/receive or a transfer, depending on the time interval. However, some exchanges do not provide deposit/withdrawal information. If you have a missing withdrawal or deposit record, you will need to enter this manually. To be clear, at this time, you need both a send and a receive transaction. The "send" will decrement the balance on the sending exchange, and the "receive" will increment the balance on the receiving exchange. The reason. behind this logic is that usually, when you have two lots of exchange data, exchange A would have the withdrawal information, and exchange B would have the deposit information.
The currencies are not mapped correctly.
These days there are a large number of alt-coins with duplicate ticker symbols (e.g, FUEL). To handle this, we usually look at the smart contract details, but most centralized exchanges do not provide this information. Instead, we make an educated guess, but sometimes this goes wrong. To resolve this, you can edit the incorrect transactions manually. A quick way to do this is to filter by the incorrect currency, click the select all checkbox, and then click the edit currency dialog box. You can then do a bulk update on these transactions. If you have many of these transactions, a hot tip is to increase the page size of the transaction table.
There are incorrectly categorized transactions.
When you import data, we will automatically categorize what we can, but sometimes this goes wrong. You can review the transactions associated with the currency with the incorrect balance, and sanity check that the categories selected make sense. If they do not, you can change this by selecting the correct option in the dropdown.
Something has gone wrong when importing the data.
Make sure to double-check the exchange instructions and make sure you are importing the right data. Some exchanges (such as Binance) require very specific files, and importing the wrong one will lead to major errors. If you have imported via API, you can try importing via CSV instead, and sanity check the imported transactions against the raw CSV file. 99.9% of the time, there is not an issue, but occasionally the exchange can update its format, and you could be unlucky enough to discover this issue before we do. If you are convinced there is an issue with the file upload, please contact support with the name of the exchange, an example of the CSV, and screenshots of the resulting transactions in the app. We will work to resolve this ASAP.
Helpful Tips on Isolating the Issue
Have a look at the balance remaining on each exchange. Sometimes one exchange will be incorrect, and this helps you isolate the issue to that exchange.
Filter by the currency with the balance remaining issue. If you have balance remaining issues across multiple currencies, try focusing on a currency with the least amount of transactions first.
Sort transactions from oldest to newest. Balance remaining issues tend to accumulate over time. If you can get the earliest transactions right, this will flow through to the rest of the app.
Look for negative balance warnings using the filter. If you review transactions leading up to the transaction, you can usually find the issue.
There is sometimes a bit of work involved in tracking down and reconciling missing transaction data, especially if you have traded across numerous years and/or numerous exchanges. However, the good news is that once this is all sorted your transaction history will be up to date. You can then carefully monitor the new transactions in the app to make sure everything is being handled correctly. If you have found yourself trading across many exchanges in the past, it would be wise to consolidate this activity.