You connect your exchanges, import your wallets, and receive a tax report. The total looks precise. That does not tell you whether the history is complete or whether a transfer was classified correctly.
Crypto tax software is useful for organizing activity and calculating results from that activity. It cannot establish missing ownership facts or reconstruct an undocumented purchase simply because a report needs a number. Review the inputs and unresolved items before relying on the output.
1. Missing purchase history or cost basis
A wallet may show a disposal without the earlier acquisition. The purchase might be in another account, outside the imported date range, or missing because an integration did not capture the activity.
Koinly explains that its missing purchase history warning can lead to zero cost basis for affected coins. That is a software result to investigate, not evidence that the asset actually cost nothing.
Trace the asset back through the supported acquisition and transfer history. Keep unknown amounts on an exception list. Review the applicable cost basis and lot-identification rules before changing settings that affect the calculation.
2. Transfers treated as sales or income
A withdrawal from one account and deposit to another can be the same owner's transfer, but that conclusion needs support. Confirm ownership, asset, network, quantities, timing, transaction identifiers, and fees.
A movement between your own wallets is generally different from a sale or payment to someone else. Fees paid in digital assets can have separate reporting consequences. The IRS digital-asset guidance distinguishes these activities. A bridge, wrap, or protocol interaction may need additional analysis; do not classify every movement as a simple transfer.
3. Duplicate imports and incomplete integrations
Combining API imports with CSV uploads can create overlap. A matching transaction hash alone is not enough to delete a row: one blockchain transaction can contain several legitimate transfers, trades, or fee entries.
Compare the full activity and its source before removing anything. Preserve the original export and record what changed. Koinly's duplicate-detection documentation describes how imports are handled; its missing-transactions guide provides a separate starting point for gaps.
4. Prices or asset identities that do not fit the transaction
A familiar ticker can refer to a different token on another network. A price feed may be unavailable, distorted, or unrelated to the actual asset. Check the contract or issuer, network, units, timestamp, and any supported execution or market information.
Do not use the current token price as a substitute for the value on a historical transaction date. Document the source and method used for a manual valuation, and flag transactions that still lack reliable support.
5. DeFi labels that hide the actual transaction
Deposits into protocols, liquidity positions, staking rewards, borrowing, repayments, and token swaps can appear as a series of sends and receives. Their labels are not the tax analysis.
Identify what rights or assets changed and what evidence supports the result. Our DeFi tax guide explains why liquidity and lending activity need closer review. Do not relabel unfamiliar activity solely to remove a warning or reduce the reported tax.
6. A report that does not reconcile to the accounts
Compare ending quantities by wallet, exchange, asset, and network with reliable records for the same cutoff. Investigate negative balances and differences. Matching an overall portfolio value can conceal errors in individual assets.
| Before relying on the report | Evidence to keep |
|---|---|
| All accounts and periods are included | Account inventory, import ranges, and original exports |
| Transfers and duplicates were reviewed | Matched records and a correction log |
| Basis and valuations are supported | Acquisition evidence, lot settings, and valuation sources |
| Balances reconcile | Account-level quantity comparison and open differences |
| Unresolved items are visible | Written exception list for the preparer |
Choose software after testing the records
Test a representative sample from every exchange, wallet, and protocol you use. Check the supported import range, transaction types, reporting options, export access, current pricing, and correction workflow.
Use read-only account permissions where available, protect access with multi-factor authentication, and never provide a seed phrase or private key to a tax preparer or tax-import tool. Keep independent copies of source records.
The useful deliverable is a report someone can trace back to evidence, with known limitations clearly identified. A clean dashboard is helpful, but it is not the same as a completed reconciliation.
Need a review of your crypto records before filing?
Start with a free consultation so we can understand the records and the work you need.
Book My Free Consultation