Realized vs unrealized, the 1099-B and record keeping
Lesson 4 · about 10 min
Education, not tax advice: rules, rates and thresholds change every year, so confirm anything you plan to act on with a qualified tax professional.
Your platform shows a P&L that moves every second. The tax system only cares about the moment you close. This lesson separates the two, then reads a 1099-B line by line and lays out the records that make April boring.
Realized vs unrealized
A gain or loss is realized when you sell, close, or otherwise dispose of the position. Until then it is unrealized, and for ordinary stock, crypto and equity options it has no tax consequence at all. You can be up $50,000 on December 31 and owe nothing on it; you can be down $50,000 and deduct nothing.
The exceptions are the marked-to-market regimes: Section 1256 contracts (futures, broad index options) are treated as sold at fair value on December 31 whether you close or not, and a trader who has made the Section 475(f) election is marked to market on everything covered by the election. Modules 2 and 3 handle those. For now: for most instruments, no close means no tax event.
Two consequences follow:
- Your platform's year-to-date P&L is not your taxable income. It mixes open and closed positions and knows nothing about wash sales or lot methods.
- Timing closes is a legitimate lever. Realizing a loss in December and a gain in January moves tax between years. Module 5 covers how to do that without tripping the wash sale rule.
Reading the 1099-B
Every US broker sends a Form 1099-B (usually as part of a "consolidated 1099") by mid-February, and files the same data with the IRS. The IRS matches it to your return by computer. The key boxes:
| Box | What it says | Why it matters |
|---|---|---|
| 1a | Description and quantity | Identifies the sale |
| 1b | Date acquired | Start of holding period |
| 1c | Date sold | End of holding period |
| 1d | Proceeds | Sale amount, net of commissions |
| 1e | Cost or other basis | May be blank for noncovered lots |
| 1g | Wash sale loss disallowed | Added back; see Module 2 |
| 2 | Short-term / long-term | Which Form 8949 box the sale goes in |
| 3 | Basis reported to IRS? | "Covered" if yes |
Two lines at the top of Form 8949 summarize what the broker did and did not tell the IRS: covered sales (basis reported, Box A or D) and noncovered sales (basis not reported, Box B or E). If a sale shows proceeds and no basis, you supply it.
Worked example. A 1099-B shows one line: proceeds $12,400, basis $11,000, wash sale disallowed $600, short-term. The reportable gain is not $1,400. It is $12,400 − $11,000 + $600 = $2,000, because the $600 loss disallowed on an earlier trade was added to this lot's basis, and the form reports it separately so the IRS can see the adjustment. Your software puts $600 in the adjustment column with code W.
Futures and other Section 1256 contracts do not appear on the 1099-B lines above; they arrive in a separate section with a single aggregate profit or loss that flows to Form 6781.
What the 1099-B gets wrong
Brokers only see their own account. They cannot see wash sales across two brokers, across your spouse's account, or between a taxable account and an IRA. They apply the wash sale rule to "identical" securities (same CUSIP) while the law says "substantially identical". They may report basis from a transfer as zero. None of this is malice; it is the limit of what one institution can know. The obligation to get it right is yours, which is why the next section exists.
Key idea: Only closed positions are taxable (outside the mark-to-market regimes). The 1099-B is the IRS's copy of your closes; it is usually right within one account and incomplete across accounts, so your records must be able to reconcile it.
The record-keeping system
Keep, for every account and every year:
- Every 1099 (B, DIV, INT, MISC, NEC, DA) as a PDF. Download them; brokers purge portals.
- Year-end and monthly statements, which show open positions and basis at snapshots.
- A trade-level export (CSV) of every fill. This is what wash-sale software and CPAs actually use.
- Purchase confirmations for anything that might be transferred or is noncovered.
- Crypto: exports from every exchange and wallet, including transfers between your own wallets, because a transfer is not a sale but the receiving side needs the basis.
- A running log of anything that adjusts basis: exercises, assignments, splits, spin-offs, return-of-capital distributions.
Retention: the general IRS statute is three years from filing, six years if income is understated by more than 25%, and unlimited if a return was never filed. Basis records should be kept for as long as you hold the position plus the statute, which for a long-held asset can mean decades.
Try it: Create a folder for the current tax year with one subfolder per account. Download last month's statement and a trade-level CSV into each. Set a monthly calendar reminder to repeat this. If you do nothing else from this course, this habit alone removes most of the pain from tax season.
Recap
- Unrealized gains and losses are not taxed (except under 1256 or 475 mark-to-market).
- The 1099-B reports each sale's proceeds, basis, holding period and disallowed wash-sale losses; the IRS gets a copy.
- Reportable gain = proceeds − basis + disallowed wash-sale loss.
- Brokers cannot see across accounts and may report missing basis; reconciling is your job.
- Keep all 1099s, statements, trade-level exports and basis adjustments for the holding period plus the statute of limitations.