FIFO means first in, first out. In a crypto report, it is a way to match disposals against the earliest available acquisition lots. This produces a cost basis and a realised result for each sale or swap where enough history exists.
Simple FIFO example
If you bought 1 BTC in January and another 1 BTC in June, then sold 1 BTC in November, FIFO treats the January lot as the one sold first. The realised result is calculated by comparing the disposal value with the cost basis of that earliest lot.
FIFO depends on complete history
The method only works if the report has enough acquisition history. If you import only the selling exchange but bought the crypto somewhere else, the report may not know the original cost basis. That should be flagged instead of guessed.
Swaps and crypto-to-crypto trades
A swap can create both a disposal of one asset and an acquisition of another. The report should identify both sides so future cost basis is preserved. If one side of the trade is missing or lacks a reliable value, the result should be reviewed.
What a FIFO report should include
A strong annex should show asset-level buy and sell counts, realised result, unmatched quantities, excluded proceeds where history is missing, and a ledger that supports the calculation. This is what makes a report reviewable rather than just a black-box number.
Official sources
Run FIFO calculations from your exchange files
CryptoDeclare applies FIFO logic, shows missing-history warnings, and exports a structured annex for review.
Generate my report