FIFO sells the oldest lot. HIFO sells the highest known cost. Neither one fills in a missing price.
Not tax advice · reviewed 25 October 2026
HIFO and FIFO for bitcoin
Notice 2014-21 treats convertible virtual currency as property. Bitcoin is the example in that notice. A sale is a capital gain or loss equal to proceeds minus the basis of the units you disposed of. FIFO and HIFO are two ways to point at those units. The worksheet either method produces here is a review with a tax pro.
What each method does in BasisFix
Lots live in one account. A sale on River does not consume a lot that is still at Coinbase. Inside the account:
- FIFO takes the oldest open lot first, by acquisition date.
- HIFO takes the highest known USD basis per unit. Lots with no USD basis are used only after every known lot.
A long-term row requires the UTC sale date to fall after the one-year anniversary of the acquisition date. A sale on the anniversary is short-term. A February 29 anniversary falls on February 28.
The year changes. The coins do not.
HIFO tends to attach more basis to this year’s sale, so this year’s gain is lower and a later sale of the cheaper lots is higher. If you eventually sell every coin and every lot had a real cost, the gains add up to the same lifetime number. HIFO did not manufacture basis. It chose a lot.
That identity breaks when a lot has no cost. BasisFix excludes an incomplete disposal from the gain total and still closes any known lots that disposal validly consumed. FIFO and HIFO can exclude different rows. Read the warnings before comparing the two net numbers.
Fictional samples, so the direction is visible
These figures come from invented files in this repository. They are not a market and not your account.
| Sample | FIFO | HIFO |
|---|---|---|
| River Account Activity, 2024 sale of 0.02 BTC | Short-term gain 690.00. Basis 500.00 from the 2023 lot. | Short-term gain 388.00, using the higher-basis 2024 lot. |
| Classic mixed sample, all years, included rows only | Net 11710.50 | Net 7409.50 |
Load one River sample at a time. The Account Activity fixture and the Bitcoin Activity fixture share the account name river. Together they pool, and the 2024 net is no longer 690.00.
River’s HIFO is not this HIFO
River’s help describes HIFO for sends as preferring unknown lots first, and it lets you change method going forward. BasisFix does not spend lots on an unmatched send. Details are on River’s Cost Basis column. If you need a record of exactly which lot was named, use specific identification instead of a silent toggle.
Questions
Does HIFO create a higher basis?
No. HIFO chooses the existing lot with the highest known USD cost per unit. The lot’s cost does not change. A later sale of the cheaper lots recognizes the gain HIFO deferred.
Are FIFO and HIFO the same over the life of the stack?
When every lot has a known cost and you eventually dispose of all of them, the lifetime gain matches. The methods change which year reports it. Lots with missing basis can make the yearly totals diverge in a different way, because an incomplete disposal is left out of the total.
Can I switch to HIFO after I see the FIFO result?
BasisFix will recompute either method from the same file. Whether a tax pro can defend the switch depends on identification records made for the sale, not on which button produced a smaller number. Specific identification is the worksheet’s way of naming the lots.