What is cost basis method (FIFO, LIFO, specific identification)?

The rule deciding which units you are treated as selling when you hold coins bought at different prices.

Not yet verifiedHow we verify

3 min read

In this entry

The rule deciding which units you are treated as selling when you hold coins bought at different prices.

If you bought Bitcoin three times at three prices and then sold some, the gain depends entirely on which purchase the sale is matched against. The coins are identical, so the answer comes from an accounting rule rather than from anything on chain.

The rule is not always yours to pick. Some jurisdictions mandate one method, others allow a choice subject to record-keeping conditions, and the conditions are where people come unstuck.

How it works

MethodWhich units are treated as soldTypical effect in a rising market
First in, first outThe oldest unitsLarger gain, more likely long-term
Last in, first outThe most recent unitsSmaller gain, more likely short-term
Highest in, first outThe most expensive unitsSmallest gain of the three
Specific identificationWhichever lot you nominateWhatever you choose, if records support it

Illustrative comparison; availability of each method depends on your jurisdiction.

Last in, first out and highest in, first out are in substance forms of specific identification, since both require you to identify particular lots rather than simply default to the oldest.

The condition attached to specific identification is the important part. It generally requires that you identify the specific units before or at the time of the sale, with records adequate to show which lot was sold. Deciding afterwards which lot produces the best answer is not identification.

United States rules also changed the level at which this is tracked. Basis is now generally accounted for wallet by wallet and account by account rather than pooled across everything you own, which means a lot held at one exchange cannot be used to identify a sale at another. See wallet by wallet accounting.

Other jurisdictions differ substantially. Several use a pooled average cost rather than lot matching, so none of the table above applies there.

Example

Illustrative. You buy 1 BTC at 30,000, 1 BTC at 50,000, and 1 BTC at 70,000, then sell 1 BTC at 60,000. Under first in, first out the gain is 30,000. Under last in, first out it is a 10,000 loss. Under highest in, first out it is also a 10,000 loss. Under specific identification you could nominate any of the three, provided your records identified the lot at the time of sale. The sale proceeds are identical in every case, and the reportable result ranges across a 40,000 spread.

Why it matters when you buy

Every purchase creates a lot, so the record you keep at buy time is what makes any method other than first in, first out available later. Exchange statements often do not carry basis across transfers, so a coin moved between venues frequently arrives with no lot history at all. The tax pages set out treatment by jurisdiction, and crypto tax basics covers the record-keeping.

cost basis — the figure each method selects; tax lot — the individual purchase being matched; fifo — the most common default; specific identification — the method with the record-keeping condition; wallet by wallet accounting — the level at which lots are now tracked in the United States.

Questions

Which method should I use?

That depends on your jurisdiction's rules and your records, and it is a question for a tax professional rather than for RampAtlas. What is general is that any method other than the default requires contemporaneous records.

Can I change methods between years?

Some systems permit it and some do not, and switching usually has consequences for how prior lots are treated. This is jurisdiction-specific and worth confirming before filing rather than after.

Does my exchange track this for me?

It tracks what it can see. Coins deposited from outside arrive without basis, and coins withdrawn leave its records entirely, so any holding that has moved between venues needs your own tracking.