Duplicates, how overlapping imports stay clean

Checked against app build 2026-08-26-01-41 on 2026-08-26.

Histories arrive messy, a Koinly export here, an exchange statement there, and the same trade often lives in both. The app deals with overlap in two places.

Will importing the same file twice double my history?

No. At import, the preview separates new rows from ones the workspace already holds.

Re-import a file you already added, or a second export overlapping the first, and the preview counts how many rows are new against how many are already known, so confirming an import never doubles your history. This is also why re-running an exchange sync is always safe, existing rows deduplicate rather than repeat.

What is a duplicate flag in Reconcile?

A near-match, two rows that look like the same event without being byte-identical.

Same asset, same day, same size, from two sources that describe it differently. They are flagged with a plain sentence, this looks like a duplicate of another row, pointing at the suspect pair. The engine does not delete either one on its own, a wrong deletion is worse than a flagged question.

What do I do with the flag?

Open the pair, decide which row tells the truth, and remove the other.

Usually the truthful one is the source closest to the event, the exchange’s own statement over an aggregator’s copy. Undo stands behind you if you pick wrong.

Why do duplicates matter beyond tidiness?

Because they move your tax figure in both directions.

A duplicated buy inflates your pool and understates your gains, a duplicated sell does the reverse, and either way the confidence score drops until the question is answered. Deduplication is also one of the five reasons your count can differ from your source’s, see count mismatch. Ten minutes in Reconcile after a big import is the cheap insurance.