FREE The only options journal that files, and says what is noise

Your options P&L,
split for tax.

FillStub is an options trading journal. It rebuilds the true lifecycle of every option contract from your broker export, splits Section 1256 against Form 8949, and puts a confidence interval on every statistic.

  • Section 1256 and Form 8949, split by underlying. No journal in the category produces either. The tax tools that do run on Windows and cost hundreds a year.
  • Every number carries its interval. A 80% win rate over 10 trades can still be a losing strategy. We say so, nobody else does.
  • Fills priced against the tape. What the spread actually cost you, per strategy and per hour. No product in either category shows this.
  • The lifecycle is the ante, not the pitch. Rolls chained, assignments into real share lots, index options settled in cash, all of it correct across brokers.
TASTYTRADE · IBKR · THINKORSWIM · ROBINHOOD    NO CARD    PARSED IN YOUR BROWSER
app.fillstub.com
SPX iron condor   2026-03-11   2026-03-11 expiry
SPX C 5840 -1 assigned -$577.77
SPX C 5845 +1 exercised +$138.23
SPX P 5785 +1 expired -$288.77
SPX P 5790 -1 expired +$351.23
open
Sell 1 @ 1.76
assignment
Removed
cash settled
-$747.00
-$747.00, not $0.00 the second row carries the cash
40 contracts to 1256 60/40 split, worksheet ready
87 rows into 43 contracts, 13 structures

What the file says, and what happened

the rows a broker writes
Sell to Open  SPXW 5880C  +176.00
Removal of option due to assignment  0.00
Cash settlement of SPXW 5880C  -747.00
read as trades: a sale, then nothing, then a mystery debit
→
one contract, one life
Short 5880 call, opened at 1.76
Assigned at expiry, settled in cash
Realised -577.77 after commissions and the settlement fee
Section 1256, not Form 8949

The chain, not the rows

open
Sell 1 @ 1.34
SOFI 30 put
assignment
Removed
at expiry
share lot
100 @ 30.00
basis $2,872.12
covered call
Sell 1 @ 0.88
rolled, one order

The premium the put collected comes out of the share basis, so the lot cost $2,872.12 and not the strike. A journal that reports the strike overstates the basis of every wheel it ever recorded.

This is the product, running

Sample data, not a real account: ten 0DTE index condors, a wheel, and one roll. Parsed through the same code your own file goes through, on this request.

The row that pays for the whole product. iron condor on 2026-03-11, 5 points wide, +$132.92 of credit against -$367.08 at risk. It went through the short strike and lost -$377.08, which is -$10.00 past its own stated maximum: index settlement carries an exchange fee no risk graph shows. And across all 10 condors here, 80% won while the average is +$30.92 with an interval from -$122.08 to +$132.92. Winning four times out of five is not the same as making money.
fillstub.com/app · sample ledger
Tax year 2026, realised
+$436.84
+$309.20 on Form 6781, Section 1256, split 60/40 whatever the holding period, from 40 contracts. +$127.64 on Form 8949 from 2 dispositions, with real holding periods and wash sales. The worksheet.
realised
+$570
all resolved positions
structures
13
87 rows, 43 contracts
rolls found
1
by shared order number
share lots
1
linked to the option that delivered them

From the file to the ledger

file
87 events
tastytrade, 21col-2024-09
→
contracts
43 chains
1 rolls inferred
→
structures
13 positions
4 settlement rows merged
→
resolutions
43 closed
0 still open
fills 44
expirations 37
fills 44 · expirations 37 · assignments 3 · exercises 2 · other 1 87 events

Positions

Realised by month, opened per month click a month to jump to its positions
OpenedUnderlyingStructureLegsEnded CreditAt riskRealised
Mar 202611 opened · realised +$382.08
2026-03-23 SPX iron condor C5890 C5895 P5835 P5840 expired +$140.00 -$367.08 +$132.92
2026-03-20 SPX iron condor C5880 C5885 P5825 P5830 mixed (assigned, exercised, expired) +$140.00 -$367.08 -$377.08
2026-03-18 SPX iron condor C5870 C5875 P5815 P5820 expired +$140.00 -$367.08 +$132.92
2026-03-16 SPX iron condor C5860 C5865 P5805 P5810 expired +$140.00 -$367.08 +$132.92
2026-03-13 SPX iron condor C5850 C5855 P5795 P5800 expired +$140.00 -$367.08 +$132.92
2026-03-11 SPX iron condor C5840 C5845 P5785 P5790 mixed (assigned, exercised, expired) +$140.00 -$367.08 -$377.08
2026-03-10 SOFI short call C33 expired +$74.00 +$72.88
2026-03-09 SPX iron condor C5830 C5835 P5775 P5780 expired +$140.00 -$367.08 +$132.92
2026-03-06 SPX iron condor C5820 C5825 P5765 P5770 expired +$140.00 -$367.08 +$132.92
2026-03-04 SPX iron condor C5810 C5815 P5755 P5760 expired +$140.00 -$367.08 +$132.92
2026-03-02 SPX iron condor C5800 C5805 P5745 P5750 expired +$140.00 -$367.08 +$132.92
Feb 20261 opened · realised +$54.76
2026-02-24 SOFI short call C32 closed rolled +$88.00 +$54.76
Jan 20261 opened · realised +$132.88
2026-01-12 SOFI short put P30 assigned +$134.00 +$132.88

All 13 structures are on this page, grouped by the month they opened. Open a row for the whole life of the position.

Per strategy, with an interval on every estimate

iron condor10 structures, 10 sessions, +$309.20
crosses zero
single3 structures, 3 sessions, +$260.52
too few sessions
-$142.480+$153.32 per lot
The bar is the 95% interval, clustered by trading day. The dot is the estimate. Zero is the line. A strategy whose bar crosses zero has not been shown to work, however many of its trades won.
StrategynMean per lotWonWin rateRealisedMax drawdown
iron condor10 / 10 sessions+$30.92 -$122.08 to +$132.928/1080.0% 50.0% to 100.0%+$309.20-$377.08
single3 / 3 sessions+$86.84 no interval3/3100.0% no interval+$260.52$0.00

Tax year 2026

Section 1256 +$309.20
Form 8949 +$127.64
Section 1256 · 40 contracts · +$309.20 Form 8949 · 2 dispositions · +$127.64

Form 6781 · Section 1256

Index and futures options. Split 60/40 whatever the holding period.

long 60%   +$185.52
short 40%   +$123.68
Line
40 contracts, net+$309.20
Short-term, 40%+$123.68
Long-term, 60%+$185.52

Form 8949 · equity options and shares

Real holding periods. Wash sales apply here and never to 1256.

Line
2 dispositions, short-term+$127.64
Long-term$0.00
Loss disallowed by wash sales$0.00

No losing disposition here has a replacement within thirty days, so nothing is disallowed.

What this worksheet does not claim

1 option position ended in assignment or exercise. Its premium is inside the share basis or proceeds and it is deliberately absent from Form 8949.

Three things no journal in this category ships

Tax output

Form 6781 and Form 8949 from the same ledger, with wash sales, share lots carrying their option's premium, and an explicit list of what an export cannot answer.

Intervals, not single numbers

Trades in one session share the day's move. Resampling by day rather than by trade roughly triples the width of an interval, and often moves it across zero.

Fills priced against the tape

Every fill compared with the quote at its own timestamp, so slippage is measured rather than assumed. Second release.

What it refuses to guess

A broker file does not say that two fills were a roll, that four separate orders were one condor, or what an open index position was worth on 31 December. FillStub labels each of those and asks, rather than picking an answer that would look finished.

Open your ledgerSee the plans