You've read what each Form 8949 column is for, but nothing makes it click like seeing the form actually filled in with real numbers. So here's exactly that: a sample Form 8949 with three common transactions — a plain sale, a wash sale, and an RSU basis correction — each row completed column by column, with the math shown.
Follow along with your own 1099-B open and you'll be able to fill in your own rows by pattern-matching to these examples.
The Columns You're Filling In
Tired of reading?
Upload your 1099-B PDF and get CSV/TXF in 30 seconds. Free preview, $4.99 to download.
Form 8949 has eight columns per transaction. Here's what each holds:
| Column | What goes in it |
|---|---|
| (a) Description | What you sold — shares and ticker, e.g. "100 sh XYZ" |
| (b) Date acquired | When you bought it (or "Various") |
| (c) Date sold | When you sold it |
| (d) Proceeds | What you received from the sale |
| (e) Cost basis | What you paid (from the 1099-B, then corrected if needed) |
| (f) Code | A letter explaining any adjustment (blank if none) |
| (g) Adjustment | The dollar amount of the adjustment |
| (h) Gain or loss | (d) − (e) + (g) |
Column (h) is always the math: proceeds minus basis, plus the adjustment in (g). Get (d), (e), (f), and (g) right and (h) follows.
Example 1: A Simple Long-Term Sale (No Adjustment)
You bought 100 shares of XYZ on March 10, 2022 for $5,000 and sold them on June 15, 2025 for $8,000. The broker reported the basis correctly, and there's no wash sale. This goes in the long-term, Box D section (basis reported to the IRS).
| (a) | (b) | (c) | (d) | (e) | (f) | (g) | (h) |
|---|---|---|---|---|---|---|---|
| 100 sh XYZ | 03/10/2022 | 06/15/2025 | 8,000 | 5,000 | — | — | 3,000 |
No code, no adjustment. Gain = 8,000 − 5,000 = 3,000. Held over a year, so it's a long-term gain. This is the easy case, and most of your rows will look like this.
Example 2: A Wash Sale (Code W)
You bought 50 shares of ABC, sold them at a $1,200 loss on August 1, 2025, then rebought ABC within 30 days — triggering the wash sale rule. The broker flags it and reports a $1,200 wash sale loss disallowed. This is short-term, Box A.
| (a) | (b) | (c) | (d) | (e) | (f) | (g) | (h) |
|---|---|---|---|---|---|---|---|
| 50 sh ABC | 05/20/2025 | 08/01/2025 | 3,800 | 5,000 | W | 1,200 | 0 |
Without the wash sale, the loss would be 3,800 − 5,000 = −1,200. But code W disallows it: you enter W in column (f) and +1,200 in column (g) (a positive number that cancels the loss). Gain/loss (h) = 3,800 − 5,000 + 1,200 = 0. The disallowed $1,200 is added to the basis of your replacement shares. For the full mechanics, see understanding wash sales on your 1099-B.
Example 3: An RSU Sale With Wrong Basis (Code B)
Your employer's RSUs vested and you sold 30 shares. The 1099-B shows a $0 cost basis because the broker couldn't include the compensation income already on your W-2. The true basis — the fair market value at vesting — was $4,500. You sold for $4,800. This is short-term, Box A (sold soon after vesting).
| (a) | (b) | (c) | (d) | (e) | (f) | (g) | (h) |
|---|---|---|---|---|---|---|---|
| 30 sh RSU | 02/15/2025 | 03/01/2025 | 4,800 | 0 | B | −4,500 | 300 |
The broker reported basis of $0 in column (e), so you leave that as reported and use code B with an adjustment. The adjustment in (g) is −4,500 (negative, because it reduces the overstated gain). Gain (h) = 4,800 − 0 + (−4,500) = 300 — the small gain from the price moving between vesting and sale, which is correct. Without code B you'd wrongly report a $4,800 gain. See RSU cost basis wrong on 1099-B.
How These Roll Up to Schedule D
Each Form 8949 section totals into a line on Schedule D:
- Short-term rows (Boxes A/B/C) → Schedule D Part I
- Long-term rows (Boxes D/E/F) → Schedule D Part II
Schedule D nets your short-term and long-term gains and losses to a final number. See Form 8949 and Schedule D explained for how the totals flow.
Doing This for a Whole 1099-B
Three rows are easy to fill by hand. A real 1099-B with dozens or hundreds of transactions is not — that's where converting the PDF and importing the data beats manual entry. The converter fills the equivalent of these columns for every transaction, including codes and adjustments. See 1099-B with too many transactions and the full list of Form 8949 adjustment codes.
FAQ
How do I calculate column (h) on Form 8949?
Column (h) = proceeds (d) − cost basis (e) + adjustment (g). If there's no adjustment, it's simply proceeds minus basis. A positive result is a gain; a negative one is a loss.
What goes in column (f) if there's no adjustment?
Leave it blank. Column (f) only holds a code when you're adjusting the transaction — for a wash sale, a basis correction, and so on. A plain sale has no code and no entry in column (g).
Why is the wash sale gain/loss zero in the example?
Because code W disallows the $1,200 loss: the positive $1,200 adjustment in column (g) cancels the raw loss, making the net gain/loss zero. The disallowed loss shifts to the basis of your replacement shares instead.
How do I know which box (A–F) a transaction goes in?
Your 1099-B tells you — short-term covered is Box A, short-term noncovered is Box B, long-term covered is Box D, and so on. Match each transaction to the box the broker reported it under.
Do I have to fill out Form 8949 for every sale?
Generally yes for transactions with adjustments, but you can often report transactions with no adjustments as summary totals directly on Schedule D. See our guide on 1099-B summary totals.
Can tax software fill Form 8949 for me?
Yes. Import your transactions (or convert your 1099-B PDF to a file the software reads) and it fills Form 8949 automatically, including the codes and adjustments — you just verify the results.
Bottom Line
Form 8949 is repetitive once you've seen it filled in: description, dates, proceeds, basis, then a code and adjustment only when something needs correcting, with column (h) as the math. A plain sale needs no code; a wash sale uses W with a positive adjustment; a wrong-basis RSU sale uses B with a negative one. Match your own transactions to these three patterns, and for anything beyond a handful of rows, let a conversion fill them for you.
Filling out Form 8949 for a full 1099-B? Convert your 1099-B free — the converter fills every transaction's proceeds, basis, code, and adjustment, so you review a finished Form 8949 instead of typing it row by row.
By 1099-B Converter Editorial Team
The 1099-B Converter editorial team writes guides on 1099-B tax filing, broker import issues, and Form 8949 / Schedule D reporting.