River can show an estimated cost. BasisFix computes a different one from the rows you import.
Not tax advice · reviewed 25 October 2026
River’s Cost Basis column
River is not tax software. Their help center describes an estimated basis inside the account, and two CSV downloads. The result of running those CSVs through BasisFix is a review with a tax pro. Confirm the headers on the file you downloaded. This page describes the columns their help listed and the columns BasisFix actually uses.
Two files, two jobs
Account Activity is the ledger. Help text lists Date, Reference Code, Transaction Type, sent and received amounts, a fee, Total, Method, Source, Destination, Cost Basis, and Bitcoin Price. Transaction types include Buy, Sell, Send, Receive, Auto Withdrawal, Mining Payout, Cash Deposit, Cash Withdrawal, Referral Reward, Internal Transfer, and Interest Payout.
Bitcoin Activity is the tagged list: Date, sent and received amount and currency, fee, and a tag such as Buy, Sell, Mining, Withdrawal, Income, or Interest. Income on that file is how a referral shows up. Interest is Bitcoin Interest on Cash.
The row-by-row mapping BasisFix uses is on River CSV to Form 8949. Read that page for buys, sells, and the fictional 2024 totals. This page is only about whose basis number you are looking at.
What River says the estimate is
- The default method in their help is FIFO. You can choose LIFO or HIFO going forward.
- Cost Basis is blank when River does not know the lot.
- Bitcoin you deposited can show the deposit date as the acquisition date until you enter the real one.
- River describes the estimate as a reference. It is not a figure they report to the IRS, and they do not guarantee it.
- Their HIFO description for sends prefers lots whose basis is unknown. That is a different rule from a sale-only HIFO.
What BasisFix reads
BasisFix detects Account Activity when it sees a Date UTC column, a Transaction Type, and sent plus received amount columns. Split headers (Sent Amount and Sent Currency) work too. An optional Fair Market Value USD column supplies income and a declared receive basis.
It does not read Cost Basis, Bitcoin Price, Total, Method, Source, or Destination. Those cells can sit in the file and change nothing. Basis is recomputed:
- A buy’s basis is the USD you sent, plus a USD fee. A fee charged in bitcoin reduces the coins in the new lot.
- A sell’s proceeds are the USD you received, minus a USD fee. A bitcoin fee increases the quantity sold.
- Interest, mining, and a referral reward become ordinary income at the fair-market-value column, and each opens a lot at that value. See bitcoin interest income.
- A receive matched to a send keeps the original basis and the original acquisition date. An unmatched receive uses Fair Market Value USD only when that column has a number. Otherwise the lot has no basis.
Why the two HIFO figures diverge
On a sale, BasisFix’s HIFO consumes the open lot with the highest known USD basis per unit. Lots with no basis go last. On a send that does not match a receive, BasisFix does not consume any lot. The coins stay in the River account and a warning is raised. River’s help, by contrast, describes sends under HIFO as taking unknown lots first. A withdrawal can therefore move different coins in River’s screen than in this worksheet. Do not “reconcile” the two by overwriting one with the other. Pick the records you can defend.
Method choice on a sale is covered in HIFO and FIFO for bitcoin. A blank dollar amount is covered in missing basis.
Questions
Does BasisFix import River’s Cost Basis column?
No. BasisFix recomputes basis from buy, income, and matched-transfer rows. A Cost Basis figure River printed is ignored, even when the column is present.
What does a blank River cost basis mean?
River’s help describes that column as blank when the lot is unknown. A blank is not zero. BasisFix flags a missing dollar amount and leaves that disposal out of the gain total.
Will River’s HIFO match this worksheet?
Not on a withdrawal. River’s help describes HIFO for sends as preferring lots with unknown basis first. BasisFix does not consume lots on an unmatched send at all.