[ ~ ] shubham/shukla
contact

Reconciling crypto tax data across five platforms

Every exchange exports a different shape of truth. Generating one tax form from all of them is mostly a data-modelling problem.

The naive version of this problem is a CSV importer per platform. The real version is deciding what a transaction is, once, in a way that survives five vendors disagreeing about fees, timestamps, and what counts as a transfer versus a trade.

We settled on a normalised internal event and a per-platform adapter that could only emit those events. Anything an adapter could not express became an explicit unsupported case rather than a silent guess. Silent guesses are what make tax software untrustworthy.

The lesson that generalises: when data comes from sources you do not control, spend your budget on the canonical model, not the importers. The importers will be rewritten. The model should not be.

Replace this text with your own version of the post.

More writing