Wash Sales
Complete guide to wash sales and how TaxFormatter detects them
The REST API reference, plus guides for the dashboard uploader.
Complete guide to wash sales and how TaxFormatter detects them
A wash sale happens when you sell an asset at a loss and buy the same or substantially identical asset within 30 days (before or after the sale).
Jan 15: Buy 1 BTC at $40,000
Jan 20: Sell 1 BTC at $35,000 (Loss: $5,000)
Jan 25: Buy 1 BTC at $36,000 ← WASH SALE
The $5,000 loss is disallowed.
The wash sale rule prevents tax loss harvesting abuse. Without it, you could:
The rule covers trades within 30 days before to 30 days after the sale:
Day 1: Buy BTC
Day 16: Sell BTC at loss ← SALE DATE
Days -30 to +30 matter
Day 20: Buy BTC ← WASH SALE (within 30-day window)
Day 46: Buy BTC ← OK (outside 30-day window)
When you upload your CSV, we:
Day 16: Sell BTC at loss
Day 47: Buy BTC ← No wash sale (outside 30-day window)
Day 16: Sell BTC at loss
Day 20: Buy ETH instead ← No wash sale (different asset)
TaxFormatter formats your export and, in the dashboard's AI Insights panel, lists sell-then-rebuy patterns worth a second look. It does not adjust cost basis or annotate rows — report the adjustment in your tax software or with your tax professional.
Report all sales on Form 8949 (Sales of Capital Assets). In the description column, note:
"BTC wash sale (see wash sale disallowance)"
Carry totals to Schedule D (Capital Gains and Losses).