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.
Turn 1099-B Confusion Into A Reconciliation Workflow
Days to Expiry helps you compare broker tax forms against actual trade history so strange assignment and expiration entries are easier to explain.
Use this guide to understand what the form is trying to say, then validate those entries against portfolio history and broker activity instead of trusting the surface presentation.
Reconcile Strange Entries
Compare 1099-B lines against actual assignments, expirations, and closes before assuming the form tells the full story.
Use Trade History As Context
Review the sequence behind each tax form entry instead of interpreting each box in isolation.
Prepare Cleaner Notes
Make it easier to explain discrepancies to your CPA when the broker form is mechanically correct but economically confusing.
Tax-Aware Net Income Calculator
Calculate your true take-home income after taxes and fees. Understand the real yield on your option strategies.
Total premium collected before taxes/fees
Total capital securing positions
Short-term rate: 24% (most option premiums)
Transaction Fees
Fee impact: 0.2% of gross income
Gross Income
$3,000
6% yield
Fees
-$7
Taxes (24%)
-$718
Net Income
$2,275
4.55% net yield
Tax Bracket Sensitivity Analysis
| Tax Region | Tax Rate | Net Income | Net Yield |
|---|---|---|---|
| Federal (22%) | 22% | $2,335 | 4.67% |
| Federal (24%)(Current) | 24% | $2,275 | 4.55% |
| TX/FL (No State) | 24% | $2,275 | 4.55% |
| Federal (32%) | 32% | $2,036 | 4.07% |
| Federal (35%) | 35% | $1,946 | 3.89% |
| NY (High) | 35% | $1,946 | 3.89% |
| CA (High) | 37% | $1,886 | 3.77% |
Shows how your net income changes across different tax jurisdictions
Tax Disclaimer: This calculator provides illustrative estimates only. Tax treatment varies by jurisdiction, income level, and individual circumstances. Consult a qualified tax professional for personalized advice. Options premiums are typically taxed as short-term capital gains in the US.
Discover real options to generate tax-efficient income
How Days to Expiry Helps With 1099-B Reconciliation
The 1099-B is a reporting artifact. It is useful, but it is not the clearest explanation of what you actually traded. That is why options traders get stuck on assignments, expirations, and odd-looking basis adjustments.
Days to Expiry helps close that gap:
- Use Portfolio View to review the underlying trade sequence behind the tax form entry.
- Use Interactive Brokers Options if the source records live in IBKR and you need a cleaner way to inspect them.
- Use this guide to interpret the 1099-B line items so the broker form and your trade history tell the same story.
Practical next step: Take one confusing 1099-B line, identify the assignment or expiration event behind it, and verify you can trace that event through the broker activity and your portfolio review workflow.
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
Treat 1099-B As A Summary, Not As The Whole Explanation
Use broker records and portfolio history to explain the line item before you decide what it means for taxes.
The fastest way to get lost in tax forms is to interpret them without context. Days to Expiry helps you bring the underlying trade sequence back into view before you finalize the tax story.
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
Apply The Tax Framework