Column (f) on Form 8949 accepts a single letter — or a combination of letters — and that letter changes the meaning of your entire entry. Pick the wrong one and you're either under-reporting income or triggering an IRS notice. Pick the right one and the adjustment in column (g) flows to Schedule D cleanly.
Most tax software hides this complexity behind a wizard ("Is your cost basis incorrect? Was this a wash sale?"), but sometimes the wizard picks wrong, or you need to understand what the code actually means to verify TurboTax's choice. This post is a complete reference to every adjustment code the IRS accepts on Form 8949, with examples and the situations where each applies.
What Columns (f) and (g) Actually Do
Tired of reading?
Upload your 1099-B PDF and get CSV/TXF in 30 seconds. Free preview, $4.99 to download.
Form 8949 has nine columns, but the two that matter for adjustments are:
- Column (f) — Code. A letter (or letters) telling the IRS why you're adjusting the numbers on this row from what the broker reported.
- Column (g) — Amount of adjustment. A dollar amount that changes the gain or loss from what the raw proceeds minus cost basis would calculate.
A positive number in column (g) increases the gain (or decreases the loss). A negative number decreases the gain (or increases the loss). The code in column (f) explains why.
If column (f) is blank, no adjustment is being made and column (g) should be blank or zero.
The Complete Code Table
From the IRS Form 8949 instructions:
| Code | Meaning | Most common use |
|---|---|---|
| B | Basis reported to IRS is incorrect | RSU / ESPP adjustments, broker error |
| T | Broker reported short/long-term classification is incorrect | Misclassified holding period |
| N | Nominee — you received a 1099-B but someone else owned the asset | Custodial accounts, joint ownership |
| H | Sold a main home; exclude qualifying gain | Home sale exclusion |
| D | Accrued market discount on a debt instrument | Bond adjustments |
| Q | Qualified small business stock exclusion | Section 1202 QSBS sales |
| X | Qualified opportunity zone investment deferral | OZ fund investments |
| R | Rollover gain on an empowerment zone asset | Empowerment zone |
| W | Wash sale loss disallowed | Most common adjustment |
| L | Nondeductible loss (related party, personal use) | Related party sales |
| E | Selling expenses or option premium not reflected | Commissions, option premiums |
| S | Loss from sale of small business stock | Section 1244 ordinary loss |
| C | Collectibles (28% rate gain) | Art, coins, precious metals |
| O | Any other adjustment requiring an explanation | Catch-all |
| M | Multiple transactions reported as totals (summary entry) | Summary totals |
You can combine codes when more than one applies. The IRS accepts multi-letter combinations like BW, TO, or EL.
Code W — Wash Sale Loss Disallowed
Wash sale loss disallowed
By far the most common adjustment code. Used when a loss on the sale was disallowed under the wash sale rule (IRC §1091) because you bought a substantially identical security within 30 days before or after the loss sale.
- Column (g) value: the amount of the loss being disallowed (entered as a positive number)
- Broker typically pre-populates this when reporting the 1099-B
See our deep dive on wash sales on Form 8949 for the full treatment.
Form 8949 Code B Explained (Incorrect Cost Basis)
Code B is the second most common adjustment code after W, and it's the one most likely to matter to anyone who works at a company that pays in stock. It means: "the basis my broker reported to the IRS is wrong, and I'm correcting it on this row."
When you enter Code B in column (f), the amount in column (g) is the difference between your correct basis and the broker-reported basis, expressed as a signed number. If the reported basis was too low (the typical case), your correct basis is higher, the gain should be lower, and column (g) is negative. If the reported basis was too high, column (g) is positive — reducing an overstated loss or turning a phantom loss back into a real gain.
Three scenarios drive most real-world Code B filings:
Scenario 1 — RSU sales where the 1099-B shows $0 or low basis. When your RSUs vest, the fair market value at vest becomes your cost basis for tax purposes, and that amount is already on your W-2 as compensation income. But brokers are blocked by IRS rules from including compensation income in the 1099-B basis, so they report $0 (or just the tiny purchase amount if it was a broker-sponsored plan). The gap between $0 and your true vest-FMV basis is what Code B corrects. Without the correction you'd be taxed twice on the same income — once on the W-2 and again on the 1099-B sale. See our RSU cost basis wrong guide for the step-by-step including where to find the right number in your broker's supplemental data.
Scenario 2 — ESPP shares where compensation income was excluded. Employee Stock Purchase Plans work similarly. The discount you got on the purchase (and sometimes the spread between purchase price and market at purchase) is compensation income reported on your W-2, but the broker reports only the actual purchase cost as basis. Code B bridges the gap so you're not paying ordinary-income tax on the discount and capital-gains tax on the same dollars. See the ESPP cost basis double-counted fix for qualifying/disqualifying disposition mechanics.
Scenario 3 — Broker error or transfer-in discrepancy. When shares transfer between brokers, basis information sometimes gets lost or garbled in the handoff. You might see a 1099-B with basis reported that's simply wrong — a number the receiving broker guessed because the sending broker didn't transmit it. If you have your own records (trade confirms, statements from the sending broker, DRIP reinvestment history), you use Code B to report the correct number.
One gotcha: Code B requires you to actually file Form 8949 line-by-line for the affected transactions. You cannot use summary-entry treatment on Schedule D for any row carrying Code B, even if all other rows in the same box could be summarized. That's because the IRS needs to see the adjustment being made — a summary line has no way to encode "this basis was wrong."
If you also have a wash sale on the same lot (common with RSUs you sold at a loss and then rebought in the next ESPP window), combine with Code W to get BW — see the multi-letter combinations section below.
Other Common Adjustment Codes (T, N, E, L, M)
Code T — Holding Period Is Incorrect
The broker classified a transaction as short-term but it should have been long-term (or vice versa). Rare, but happens when brokers incorrectly track the acquisition date after transfers, corporate actions, or partial exercises.
- Column (g) value: often zero (you're just changing the classification, not the dollar amount)
- You enter the transaction in the correct Form 8949 box (A vs D, B vs E) and use Code T to signal the override
Code N — Nominee
You received a 1099-B for a sale, but you weren't the actual owner of the asset. Common in:
- UTMA / UGMA custodial accounts where the 1099-B comes to you but the minor is the owner
- Joint accounts where only one holder receives the 1099-B but the gain should be split
You'll need to file Form 1099-B (yes, issue your own) to allocate the gain to the real owner. Code N flags the adjustment in your own return to zero out the piece that isn't yours.
Code E — Selling Expenses or Option Premium
Used when your reported proceeds or cost basis didn't include commissions, fees, or option premiums that should be factored in.
- Example: you sold 100 shares for $10,000 gross but paid a $25 commission. The 1099-B might report $10,000 as proceeds, but the effective proceeds are $9,975. Use Code E with a $25 negative adjustment.
- Second example: you wrote a covered call for $200 premium, it was assigned, and the assignment premium wasn't rolled into the stock sale proceeds. Use Code E to add the $200.
Modern 1099-Bs usually include commissions in proceeds automatically. Code E is mostly needed for option premium adjustments and unusual broker reporting gaps.
Code L — Nondeductible Loss
You're reporting a loss that's not deductible under IRS rules. Most common scenarios:
- Sale of personal-use property (your car, jewelry) at a loss
- Related party sale under Section 267 (sold to a family member at a loss)
- Loss on the sale of a personal residence (unless a disaster)
Column (g) is positive (increases the gain / eliminates the loss) — you're adding back the disallowed portion.
Code M — Multiple Transactions (Summary)
Used when you're entering summary totals for many transactions rather than listing them individually. TurboTax auto-applies this when you use the summary entry flow.
Column (g) is typically zero unless you're also applying a different adjustment on top of the summary.
See our summary totals in TurboTax guide.
Multi-Letter Combinations
When more than one adjustment applies, enter the codes together with no spaces:
- BW — Basis was incorrect AND there was a wash sale (common with RSUs in the same year as a wash sale on the same stock)
- BO — Basis incorrect and a non-standard adjustment (you'd explain the "other" portion in a statement)
- EL — Selling expense adjustment and nondeductible loss (related party sale with commission)
- TO — Holding period change plus other adjustment
Column (g) in multi-code entries should be the net of all the adjustments being applied. Some tax software asks you to enter each code with a separate adjustment amount and computes the net automatically.
Auto-Applied vs Manual Codes
TurboTax and other tax software apply some codes automatically based on imported 1099-B data and user responses:
- W — applied automatically when a wash sale is detected in the import or reported on the 1099-B
- B — applied when you check the "cost basis is incorrect" box
- M — applied when you use summary entry
- D — applied for bond adjustments the broker reports
Other codes require manual selection through the "enter adjustment" flow:
- N, H, L, E, T, S, C, O, Q, X, R
If you know you need one of the manual codes, use the "I need to enter adjustments" path in TurboTax rather than the standard transaction entry.
Worked Examples
Example 1 — RSU with basis adjustment:
- Proceeds: $10,000, Reported basis: $0, Holding period: short
- Your adjusted basis: $9,500 (FMV at vest from supplement)
- Code: B
- Column (g): −$9,500 (negative, reducing the reported $10,000 gain to $500)
- Reported gain: $500
Example 2 — Wash sale:
- Proceeds: $5,000, Basis: $5,500, Loss: −$500
- $300 of the loss was disallowed under the wash sale rule
- Code: W
- Column (g): $300 (positive, reducing the loss from $500 to $200)
- Reported loss: $200
Example 3 — Combined RSU basis and wash sale on same lot:
- Proceeds: $8,000, Reported basis: $0
- Adjusted basis: $9,000 (creates a $1,000 loss)
- $400 of that loss is a wash sale
- Code: BW
- Column (g): −$9,000 (from B) + $400 (from W) = −$8,600
- Reported loss: $600
Example 4 — Nondeductible related party loss:
- Proceeds: $4,000, Basis: $5,000, Loss: −$1,000
- Sold to a brother, Section 267 related party rule disallows the loss
- Code: L
- Column (g): $1,000 (positive, eliminates the entire loss)
- Reported loss: $0
FAQ
Which code do I use if my broker reported a wash sale but I disagree?
If you think the broker's wash sale is incorrect, contact the broker first and ask for a corrected 1099-B. If they won't correct it, you can use Code O (other) with an attached explanation, but this invites IRS scrutiny. Usually it's easier to accept the broker's reporting unless there's a clear factual error.
Can I use a code not on the IRS list?
No. The IRS only accepts the codes listed in the Form 8949 instructions. If none fit, use Code O and attach a written explanation.
Does TurboTax show me the adjustment code it applied?
Yes, in the worksheet view (not the interview view). Look at the Form 8949 worksheet for each transaction to see column (f) and (g).
What if I have a wash sale on an RSU sale with an RSU basis adjustment?
That's a BW combination code. Apply both adjustments in the same row. TurboTax's wizard handles this if you check both the "cost basis is incorrect" box and the "wash sale" box for the same transaction.
Do I have to use codes at all?
No. If the 1099-B data is correct as reported, you don't need any adjustment codes. Leave columns (f) and (g) blank and the gain or loss is computed from the raw proceeds minus basis.
Where can I see the IRS's official explanation of each code?
IRS Form 8949 instructions, available as a free PDF at irs.gov. Look for the "Adjustment codes" table in the instructions — it's updated each tax year.
Bottom Line
Form 8949 adjustment codes exist because the raw proceeds-minus-basis math doesn't always equal the correct taxable gain or loss. The common codes — W for wash sales, B for incorrect basis, M for summary entry — cover 95% of real filings. The rarer codes handle edge cases like related party sales, nominee situations, and small business stock.
When in doubt, enter the transaction through TurboTax's wizard and verify in the worksheet view that the code it picked matches what you expect. If the wizard picks the wrong code, the manual "enter adjustments" path lets you override it.
Have 1099-B transactions with multiple adjustments you need to flag? Convert your 1099-B PDF free — extract every transaction including wash sales and original basis, then apply the right adjustment codes cleanly in TurboTax. Faster than the wizard, fewer mistakes.
By Jakob Johnson
Writes guides on 1099-B tax filing, broker import issues, and Form 8949 / Schedule D reporting for 1099-B Converter.