Loud failure
The file is rejected, a required column is missing, the format is unsupported, or nothing useful imports. The problem is visible.
Enter your email to receive the free PDF checklist.
For subscriber questions or corrections, use the Contact / Corrections page.
Bitcoin tax software
A Bitcoin-holder framework for understanding failed CSV imports, silent record problems, and why import issues usually point back to data quality and missing context.
CSV import boundary
A failed or messy CSV import is a record and data-quality signal, not a tax verdict and not proof that the software is broken.
A failed or messy CSV import is a record and data-quality signal, not a tax verdict and not proof that the software is broken.
Loud failures interrupt you. Silent errors are harder because the file imports while the record story remains incomplete.
Bitcoin self-custody can split one history across exchange exports, wallet history, transaction IDs, labels, fees, and notes.
The file is rejected, a required column is missing, the format is unsupported, or nothing useful imports. The problem is visible.
The file imports and a report appears, but the output can still be incomplete, duplicated, mislabeled, or missing context.
A clean import is a successful file read. It is not proof that the record set is complete or that the output is ready to trust.
Record quality first
Sometimes the file will not upload. Sometimes it uploads but the output looks wrong. Sometimes the numbers are far higher or lower than expected, or transfers, fees, and timestamps do not line up.
The first rule is not to panic and not to assume the software is broken. A failed or messy import is usually a signal about record quality, file structure, missing context, or incomplete sources.
This page explains Bitcoin CSV import problems at the recordkeeping and input-quality level. It is educational only, not tax, legal, or financial advice. Rules differ by jurisdiction and change over time. For the scope of the lane, read the Bitcoin tax disclaimer. For the map, start at the hub.
The patterns below reflect recurring Bitcoin tax software workflow issues, rendered product-neutral. No tool is named, and no CSV-repair tutorial is given.
Two kinds of import problem
A loud failure says the file was not read. A silent error says the file was read, but the record story may still be wrong or incomplete. The first interrupts you. The second waits quietly inside a clean-looking report.
The file is rejected, a required column is missing, the format is unsupported, or nothing useful imports. Frustrating, but visible.
The file imports and a report generates, but the output may still be incomplete, duplicated, mislabeled, or missing context.
Self-custody can split history across exchange exports, wallet history, on-chain transaction IDs, labels, fees, and personal notes.
Silent error scenario
Consider a common situation. A holder buys Bitcoin on an exchange, withdraws it to a self-custody wallet, and a year later imports only the wallet history into tax software.
The CSV imports cleanly and a report appears. But the wallet history shows coins arriving with no purchase behind them, so the tool marks the position as having missing cost basis or treats the later movement as if the coins appeared from nowhere.
Nothing failed on screen. The import was successful. The real problem is that the exchange acquisition record was never included, so one side of the story is absent. The first move is not to edit the report. It is to add the exchange record, connect the withdrawal to the wallet receipt, and preserve the transaction ID, fee, and a label.
Only then is the record reviewable. This page does not decide how the movement is treated. It shows why a clean import can still be an incomplete record, and why it imported fine is not the same as it is right.
Data-quality signal
Software works from supplied records, so an import problem usually points to a file-structure issue or a record-completeness issue.
The import problem is the symptom. The record set is almost always where the real investigation starts.
Loud failures
These stop the file before it becomes output. They are usually structure problems, not treatment conclusions.
A source may offer several exports, such as trades, deposits, withdrawals, or statements. If the importer expected one and got another, the import can fail or misread the file. Identify what each file represents instead of treating exports as interchangeable.
A history file needs enough structure to describe each event: date, time, asset, amount, activity type, fee, value if available, source, destination, and reference. Keep the original export untouched and mark uncertainty rather than inventing a value.
A valid file may still be rejected by a specific importer, or separators, characters, and number formatting may be misread. Preserve the original export, avoid unnecessary re-saving, and inspect a copy if needed.
Date formats and time zones vary, especially near day boundaries. Preserve the source timestamp and any time-zone context. Do not silently rewrite dates to make the file look cleaner.
Small Bitcoin amounts can be rounded or truncated when a file is opened and re-saved by software that guesses formats. Keep the original export untouched and work from a copy.
Moved, renamed, deleted, or re-saved columns can break an import or carry hidden changes into it. Edit only a copy, and note what changed and why.
Original source
Manual cleanup can be necessary in some contexts, but it can also create record-integrity problems if the original source is lost.
Keep the source file untouched, work from a copy if inspection is needed, and preserve notes about what the file represents. For preventing these problems at the source, see common Bitcoin tax record mistakes.
Silent errors
For Bitcoin holders, silent errors are usually context problems, not upload problems. A single file can be valid and still tell only part of the history.
Self-custody movement, exchange history, wallet receipts, transaction IDs, labels, fees, and acquisition inputs may still need review.
Context problems
This taxonomy stays source-agnostic and non-product-specific. It does not provide product troubleshooting steps or treatment conclusions.
An exchange withdrawal without the matching wallet receipt, or a wallet receipt with no source withdrawal, can look disconnected from acquisition history. Preserve both sides, including transaction ID, fee, source, destination, labels, and a note.
Both sources can be accurate and still tell only part of the story alone. Reconciliation means matching sources and adding context. It does not decide treatment.
If acquisition records are missing or disconnected, the calculation may still run but be less supported. Cost basis is an input, not a verdict.
Overlapping imports can create true duplicates, or separate records of different sides of one movement. Compare date, time, amount, transaction ID, source, destination, fee, and label before deleting anything.
Software cannot read intent. Use plain labels such as withdrawal to cold storage, transfer between my wallets, wallet migration, deposit back to exchange, payment sent, payment received, gift, fee, or uncertain, needs review.
Fees and source values are factual records. If they are dropped or separated from the event, review has less to work with. Preserve the amount, date, source, transaction ID where relevant, and the event it belongs to.
Related record layers
A CSV import issue can surface a missing movement record, incomplete reconciliation, missing labels, or incomplete acquisition context. This page owns the import moment. The linked pages own the deeper concepts.
For the movement boundary, see wallet transfer vs taxable event. For reconciling sources, see exchange CSV vs wallet history.
For the cost-basis concept, see Bitcoin cost basis basics. For labels, see wallet labeling for tax records. For the deeper software-expectation picture, see Bitcoin tax software limitations.
Before you trust the output
It is not proof that the record set is complete. The safer question is whether you can trace the output back to source records.
Check whether every exchange source that matters to the imported history is present before relying on the output.
Self-custody records may sit outside exchange exports. Wallet history, receipts, and later movements need review too.
Look for missing or disconnected acquisition records before trusting calculated results.
Match source, destination, amount, timestamp, transaction ID, fee, and label before treating movement output as reviewable.
A report is easier to review when transaction IDs and fees remain connected to the events they describe.
Do not hide unclear values, duplicate-looking records, uncertain destinations, or missing sources behind clean-looking output.
Calmer troubleshooting
This is not a step-by-step import workflow. It is a safer order for understanding what the import problem is signaling.
Do not overwrite the original export. Keep it as the source record and work from copies if inspection or cleanup is needed.
A loud problem rejects or misreads the file. A silent problem imports but produces wrong-looking or incomplete output.
List which exchange records, wallet histories, transaction IDs, labels, fee records, and personal notes are included, then list what is missing.
For self-custody, check that withdrawal, receipt, transaction ID, fee, source, destination, and label are linked.
Do not rely only on the final number. Trace the output back to the records that created it.
If a source is missing, a value is unclear, or a destination is uncertain, preserve that uncertainty instead of inventing certainty.
A data-quality issue can become a professional-boundary question when facts are missing or treatment depends on the reader's situation.
Qualified review
Some import issues are routine cleanup. Others become qualified-review questions when facts are missing or treatment depends on the reader's situation.
Acquisition records are missing, older records must be reconstructed, or source records and output do not line up.
Wallet ownership is unclear, one side of a movement is missing, or business, payment, gift, donation, or other non-routine context is involved.
Prior-year gaps, formal contact from a tax authority, or treatment questions exceed a CSV import and software-input-quality explanation.
Professional boundary
This page does not provide tax advice, legal advice, financial advice, filing instructions, audit-response steps, or treatment conclusions.
For that boundary, see when to use a tax professional.
FAQ
These answers stay at CSV import, record-quality, and qualified-review boundary level. They do not give tax advice, filing instructions, treatment conclusions, product recommendations, or file-repair promises.
Often because the file type is not what the tool expected, required fields are missing or renamed, the delimiter or encoding is unreadable, dates are ambiguous, precision was changed, or the file was manually altered. That is a data-quality signal, not a tax verdict.
Short version
A loud failure is visible: the file is rejected. A silent error is harder: the file imports, but the output is wrong-looking or incomplete because the record story is incomplete.
For Bitcoin holders, silent errors often come from self-custody records split across exchange exports, wallet history, on-chain transaction IDs, labels, fees, source records, and personal notes.
Software calculates from supplied records. Records preserve facts. Qualified review interprets facts when the issue exceeds recordkeeping.
A clean import is a successful file read, not a correct result. For the full tax-scope boundary, see the Bitcoin tax disclaimer.