Your 1099-B form is the IRS's record of your brokerage transactions. For stocks, it's straightforward. For options, it's bewildering.
Here's why: 1099-B was designed for stock traders, not options traders. When you sell a put and it's assigned, the form shows a purchase of stock. When you sell a covered call and it's assigned, the form shows a sale. The premiums appear as confusing "adjustments" or hidden in cost basis.
This guide walks you through real 1099-B examples from Interactive Brokers and shows you exactly what each box means.
Form 1099-B Overview
Your 1099-B (Proceeds from Broker and Barter Exchange Transactions) has these key boxes:
| Box | Label | What It Contains |
|---|---|---|
| 1a | Proceeds | Sale price × quantity (gross, before cost basis) |
| 1b | Cost or other basis | Your cost to buy / premium you paid |
| 1c | Long-term or short-term | LT if held 1+ year; ST if < 1 year |
| 2 | Gain/Loss | 1a - 1b (broker's calculated gain/loss) |
| 3 | Wash sale loss disallowed | If wash sale rules apply, loss is shown here |
| 4 | Codes | Footnotes explaining the transaction type |
Real Example 1: Cash-Secured Put Expires Worthless
You sell a $420 SPY put for $0.50 premium. It expires worthless on 10/8/2025.
Your 1099-B entry shows:
Proceeds (Box 1a): $0.00
Cost or other basis (Box 1b): $0.50
Long-term or short-term (Box 1c): ST
Gain/Loss (Box 2): -$0.50
Code: Expiration / Termination
Why does it look like a loss?
The form treats the expired put like this:
- Sale proceeds: $0 (nothing sold; it expired)
- Cost basis: $0.50 (the premium you received; IRS treats this as a "cost")
- Result: $0 - $0.50 = -$0.50 (appears as a loss)
But this isn't a loss! You made $0.50 profit (minus commissions).
What your accountant/TurboTax sees:
- The form shows -$0.50 loss
- But it's marked as "termination"
- Tax software might misclassify this
How to fix it:
- In TurboTax: Manually reclassify as "Short-term Capital Gain" of $0.50
- Adjust for commissions: If you paid $0.65 commission, net gain is $0.50 - $0.65 = -$0.15 (actual loss after fees)
Real Example 2: Put Assigned
You sell a $420 SPY put for $0.50 premium on 10/1/2025. SPY drops; you're assigned on 10/22/2025.
Your 1099-B shows TWO entries:
Entry 1 (the put expiration/assignment):
Proceeds (Box 1a): $42,000 (the $420 strike × 100 shares)
Cost or other basis (Box 1b): $50 (the premium you collected)
Long-term or short-term (Box 1c): ST
Gain/Loss (Box 2): -$41,950 (looks like huge loss!)
Code: Assignment / Exercise
This looks terrifying! But here's what's really happening:
- The $42,000 "proceeds" isn't proceeds; it's the strike price × quantity
- The $50 "cost basis" is your premium
- The "loss" of $41,950 is just the mechanics of how IB reports assignments
- In reality, you just bought 100 shares at $420 - $0.50 premium = $419.50/share
Entry 2 (the stock you now own): Shows your 100 SPY shares at $420 cost basis (the assignment price).
How to handle this on your taxes:
- Ignore the huge "loss" on the 1099-B
- Your real cost basis for the stock is $420 - $0.50 = $419.50
- When you later sell the stock, calculate gain/loss using $419.50 basis (not $420)
- The $0.50 premium is already accounted for in your basis
Key point: Don't be alarmed by the scary -$41,950 loss. It's just how the form reports assignment mechanics.
Real Example 3: Covered Call Assigned
You own 100 SPY, bought at $415/share. You sell a $430 call for $0.80 premium on 10/1/2025. Call is assigned on 10/15/2025. SPY is at $432.
Your 1099-B shows TWO entries:
Entry 1 (the call assignment/exercise):
Proceeds (Box 1a): $43,000 (the $430 strike × 100 shares)
Cost or other basis (Box 1b): $41,580 ($415 cost basis + $80 premium)
Long-term or short-term (Box 1c): LT (if you held stock 1+ year)
Gain/Loss (Box 2): $1,420 (your actual capital gain)
Code: Assignment / Exercise / Sale
Here's what happened:
- You sold 100 shares at $430 strike (forced by assignment)
- Your cost basis: $415/share originally, but add the $80 premium you collected
- Effective sale: $430 + $0.80 premium = $430.80 per share
- Effective cost: $415
- Capital gain: ($430.80 - $415) × 100 = $1,580 total
But wait, the form shows $1,420, not $1,580.
The discrepancy is usually:
- The $80 premium is reported separately (or netted differently)
- Commission adjustments
- IB's specific accounting method
For taxes:
- The form correctly shows your gain as approximately $1,420
- This is taxed as long-term capital gain (if you held 1+ year) at 20% federal rate
- Tax: $1,420 × 20% = $284
What you'll do in tax software:
- Enter the $1,420 long-term gain from the 1099-B
- The software calculates tax using the long-term rate (20%)
- Done!
Real Example 4: Put Spread (Both Legs)
You sell a put spread: Short $420 put / Long $418 put, for $0.25 credit. Both expire worthless on 10/22/2025.
Your 1099-B might show:
Entry 1 (short put):
Proceeds: $0
Cost basis: $0.25 (the credit you collected)
Gain/Loss: -$0.25 (appears as loss)
Code: Termination
Entry 2 (long put):
Proceeds: $0
Cost basis: $0
Gain/Loss: $0
Code: Termination
What's really happening:
- You collected $0.25 credit for selling the spread
- Both legs expire worthless
- Your true profit: $0.25 (before commissions)
Why the form shows a loss on the short put:
- The form treats each leg separately
- Short put: Credit ($0.25) treated as cost basis; $0 proceeds = -$0.25 loss
- Long put: Cost ($0) basis; $0 proceeds = $0 gain
- Net: Appears as -$0.25 loss, but you actually made $0.25
For taxes:
- Manually reclassify as short-term capital gain of $0.25
- Or, your tax software might be smart enough to recognize this is a termination with credit
Real Example 5: Rolling a Covered Call
You roll a covered call: Close $430 call (bought back for $0.40), open new $440 call (sold for $0.65).
Your 1099-B shows:
Entry 1 (closing the old call):
Proceeds: $0.40 × 100 = $40
Cost basis: $80 (original sale price)
Gain/Loss: -$40 (shows as loss, but it's actually profit since you sold at $0.80, bought at $0.40)
Code: Closing / Buyback
This is confusing because:
- You originally sold for $0.80
- You bought back (closed) for $0.40
- True profit: $0.40
But the form shows:
- Proceeds: $40 (what you paid to close)
- Cost basis: $80 (original sale)
- Loss: -$40
The reality: This is how the form presents buybacks. The negative value represents your cost to buy back (not proceeds). Your true gain is $0.80 - $0.40 = $0.40.
Entry 2 (opening the new call):
Proceeds: $0.65 × 100 = $65
Cost basis: $0 (new sale, not purchased)
Gain/Loss: $65 (short-term gain)
Code: Opening / Sale
For taxes:
- Combine both entries: Close at -$40 (gain) + Open at $65 (gain) = Net $25 gain on the roll
- This is taxed as short-term capital gain
How to Reconcile Your 1099-B with Your Broker Statement
Step 1: Download your Activity Statement from IB
Go to Statements → Activity Statement → Download CSV.
Step 2: Export and review closed positions
Find all closed options positions. List:
- Symbol and strike
- Open price and date
- Close price and date
- Quantity
- P&L
Step 3: Match to 1099-B
For each 1099-B entry:
- Identify the position (strike, expiration date)
- Find matching entry in Activity Statement
- Verify:
- Proceeds match (strike price × quantity for assignments)
- Cost basis is reasonable (premium for sales; cost for purchases)
- Gain/loss is approximately correct
Step 4: Note discrepancies
If 1099-B doesn't match your statement:
- Commission might be netted differently
- Symbols might be formatted differently (SPY vs SPY @ 420)
- Contact IB for clarification
Step 5: Adjust for tax software
When entering into TurboTax or H&R Block:
- Reclassify obvious errors (expired puts shouldn't show as losses)
- Account for commissions (IB might not include all)
- Separate short-term from long-term by holding period
IB-Specific 1099-B Quirks
Quirk 1: Assignments Show as Negative Proceeds
When your put is assigned, IB reports the assignment as a "purchase" with negative proceeds. This looks like a loss, but it's not.
How to read it:
- Negative proceeds = You paid the strike price
- Cost basis (premium) = Reduces your cost basis
- Net = You own stock at (strike - premium) basis
Quirk 2: Commissions Might Be Reported Separately
IB sometimes reports commissions separately from P&L. Your 1099-B might not include all your commissions.
Action: Export your Activity Statement CSV to see true commissions, then adjust your 1099-B P&L if needed.
Quirk 3: Multi-Leg Orders
If you opened a spread as a single order, IB might report each leg separately (both as opening trades) rather than one spread.
What it looks like:
- Entry 1: Short $420 put at $0.60
- Entry 2: Long $418 put at $0.35
- Entry 3: Combined closing credit of $0.25
This is normal. Tax software usually handles it correctly.
Quirk 4: Partial Closes
If you close only part of a position (e.g., close 0.5 contracts of a 1-contract position), IB reports the close separately.
This creates confusion: Your original sale shows as one trade; your partial close shows as another.
1099-B Codes Explained
The "code" column in your 1099-B often includes helpful footnotes:
| Code | Meaning |
|---|---|
| A | Acquisition (you bought something) |
| D | Disposition (you sold something) |
| E | Exercise (option was exercised/assigned) |
| X | Expiration (option expired) |
| W | Wash sale loss disallowed |
| F | Fractional shares |
For options, look for codes E (exercise/assignment) and X (expiration). These tell you how to classify the transaction.
What to Do If Your 1099-B is Wrong
If your 1099-B doesn't match your expectations:
Step 1: Download your Activity Statement
Verify all your trades are listed correctly in your activity statement.
Step 2: Contact IB Customer Service
Send them:
- Your concern (specific transaction)
- Activity Statement printout (CSV with the trade)
- Your expected calculation
IB will usually correct it or explain the discrepancy.
Step 3: If IB won't fix it, file Form 8275 with your taxes
Form 8275 (Disclosure Statement) lets you explain why your tax return differs from IB's 1099-B.
Example:
- IB reported: -$41,950 loss (on put assignment)
- Your explanation: Assignment of put; no actual loss; cost basis adjusted to $419.50 instead
- File Form 8275 with your return
Tax Software Handling of 1099-B
TurboTax
- In Investment Income, select "I have a 1099-B"
- Enter manually or import from CSV
- TurboTax asks you to classify as ST or LT
- Be careful: Pre-populated data might be wrong for options
- Verify each entry before filing
H&R Block
Similar process:
- Investment Income → Brokerage Statements
- Enter data
- Verify classifications
- Lots of questions; answer carefully for options positions
Common 1099-B Mistakes
-
Not reclassifying expired options
- IB shows as loss; it's really a gain
- Manually change to short-term gain
-
Including assignment "losses" as real losses
- The -$41,950 loss on put assignment isn't a real loss
- It's just mechanics; your basis is reduced
-
Forgetting commissions
- 1099-B might not include all commissions
- Verify against Activity Statement; adjust if needed
-
Misclassifying short-term as long-term
- Options are almost always short-term
- Exception: Underlying stock held 1+ year before call assignment
-
Not separating spreads
- Multi-leg orders might appear as separate transactions
- Combine them for accurate P&L
Platform Tools: Days to Expiry
When using Days to Expiry or similar platforms:
- 1099-B reconciliation feature: Automatically checks your 1099-B against your trades
- Discrepancy alerts: Flags IB/1099-B errors
- Tax form export: Generates a summary for your accountant
- Adjustment tracking: Records manual adjustments you made
Bottom Line: Reading Your 1099-B
Key takeaways:
-
1099-B reports broker transactions; it's not your true tax outcome
- Assignments show as scary "losses"; they're not
- Expirations show as losses; they're gains
- Always reconcile against your Activity Statement
-
Reclassify obvious errors
- Expired options: Change from loss to gain
- Assignments: Explain basis adjustment in notes
-
Separate short-term from long-term
- Options are almost always short-term (37% rate)
- Exception: Stock held 1+ year, sold via call assignment (20% rate)
-
Use your Activity Statement as the source of truth
- More detailed than 1099-B
- Shows exactly what you traded and when
- Use this to verify your 1099-B
-
When in doubt, ask IB or file Form 8275
- IB customer service can clarify
- Form 8275 lets you dispute 1099-B if needed
Related Articles
Master options taxes completely:
- Complete Options Tax Guide – Full framework
- Interactive Brokers Tax Statement Guide – How to read activity statements
- Options Tax Calculator – Estimate your bill
- SPX Options Tax Treatment: Section 1256 Explained – Tax-advantaged strategies