Wheel Cost Basis
Adjusted cost basis for shares acquired by assignment, netting the option premium you have already collected against what the shares cost.
If you run the wheel - sell a cash-secured put, take assignment, then write covered calls against the shares - your broker's reported cost basis tells only half the story. Brokers credit the assigned put's premium against the lot (a $220 strike sold for $10.25 a share lands as a $209.75 average cost), but they have no memory of the covered calls you've written since.
Wheel cost basis composes that missing half. On the Stocks page it adds an Adjusted basis column and, in each holding's row expansion, a panel that shows exactly how the number was built.
Wheel cost basis is rolled out gradually and isn't enabled for every organization yet. If the Adjusted basis column isn't on your Stocks table, it isn't available for your account. It also lives inside the Stocks page, so it's unavailable wherever Stocks is.
The number
adjusted basis = (shares x average cost)
- realized option premium on the ticker
- manual premium adjustmentThe per-share figure shown in the column is that total divided by your share count.
-
Shares x average cost is the assigned cost - what the lot cost you, exactly as it appears in the Avg cost and Total cost columns. On an assigned lot this figure already has the put's premium netted out of it by your broker.
-
Realized option premium is the realized P&L of every closed option on that underlying: puts you sold that expired worthless or that you bought back, calls that expired worthless, calls you bought back at a profit or a loss. Losses count too, so a call you bought back for more than you sold it raises the adjusted basis.
The one thing it excludes is the premium from a put you were assigned on. Your broker already subtracted that premium when it priced the shares, so counting it again here would subtract it twice and understate what the lot cost you. The assignment still appears in the premium ledger, marked as already reflected in the cost, so you can see the full history without it being double-applied.
-
Manual premium adjustment is premium you tell us about yourself, covering history we never synced. See Manual premium adjustment below.
The result can be negative, and that isn't an error - on a long-running wheel the premium collected can exceed what the shares cost. It's shown as-is rather than being floored at zero.
This is not a tax figure. It's a trading number: what these shares effectively cost you, to weigh against the strike of your next covered call. Your broker's reported basis is what the IRS cares about. The assigned put's premium is already inside that basis, which is why we don't subtract it again; the covered-call premium we add on top is treated separately for tax and is not part of it.
The Adjusted basis column
The column sits alongside the rest of the Stocks table and can be hidden or reordered from the column-customization menu like any other. Four states:
| What you see | What it means |
|---|---|
| A dollar figure | The composed per-share basis. May be negative. |
| - | This symbol has no option history at all, so there's nothing to adjust. Most holdings look like this. |
| Calculating | We don't yet have everything the figure needs - usually the P&L cache is still being built for the org. |
| A figure with an ⚠ icon | Some option history is missing, so the figure may be off in either direction. See Partial history. |
We deliberately show Calculating rather than $0.00 when premium isn't
fully known. A confident zero is worse than an honest blank when you're
picking a strike off it.
Holdings priced in more than one currency show Calculating too - mixing currencies into one basis would produce a number that means nothing.
The wheel panel
Click a holding with option history to expand the row. Under the per-account breakdown you get the full derivation, in the order the decision actually gets made:
Assignment origin
A single line naming where the shares came from, when we can identify it:
Shares assigned from a $12.50 put sold on 3 Apr 2026 (collected $148.00 premium).
This resolves from the assignment link on the stock trade back to the short put that produced it. When more than one assignment contributed, the most recent one is named. Holdings you entered by hand, or shares you simply bought, have no origin line.
Premium ledger
Every closed option on the underlying, most recent first, with its realized P&L in green or red. Labels describe the contract by how it closed:
- CC $12.50 expired / CC $12.50 closed - a short call, the covered call leg of the wheel.
- Short put $50.00 closed - a put you sold and bought back.
- Short put $50.00 assigned - the put that produced your shares. Its premium is already inside the broker's cost for the lot, so it is shown here for the history but is not subtracted again.
- Long call / Long put - contracts you paid for. They appear because they're option P&L on the same ticker, and they move the basis the same way any other realized premium does.
- Call / Put without a side - an expiration. Expiry carries no direction signal, so we don't guess one.
The ledger lists the ten most recent entries; anything beyond that is summarized as "N more not shown". The total, though, is over every closed option, not just the ten displayed.
Everything in the panel covers every account in your organization holding that symbol. If the same ticker is wheeled in two accounts, you're looking at the combined picture, not one account's slice.
Open covered-call premium (at risk)
The premium currently sitting in open short calls on the underlying, reported separately and not subtracted from the adjusted basis. Until the call expires or you buy it back, that premium isn't yours and the shares are still encumbered. Folding it in early would flatter the basis and tempt you into a strike you can't actually justify.
Partial buy-backs are handled: a short call half closed contributes only its remaining contracts.
Adjusted basis per share, and distance from price
The headline figure repeats at the bottom of the panel, followed by Above adjusted basis by or Below adjusted basis by against the holding's current market price. That comparison is the practical output of the whole panel: above means a covered call at or near the money doesn't lock in a loss, below means it does.
The line is omitted entirely when either side is unknown - no live quote, or a basis still calculating - rather than showing a placeholder.
Manual premium adjustment
Your broker's history only goes back so far (see Connecting a brokerage for each broker's window), so premium collected before that boundary is invisible to us. If you know what it was, enter it.
In the panel, under Manual premium adjustment, click Edit:
- Amount - dollars of premium we couldn't see. A positive number reduces the adjusted basis, exactly the way collected premium does. Enter a negative number to push the basis up.
- Note - free text for your own reference, e.g. "premium collected before I connected this broker". Shown next to the amount afterwards.
Clear removes the adjustment. Clearing always works, even if the feature is later switched off for your account, so you can never be stuck with a correction you can't remove.
Recording an adjustment also tells us you've accounted for the gap, so the partial-history warning below stops showing for that symbol.
Partial history
When a symbol's first synced option trade sits right at the edge of what we hold for that brokerage connection, its premium history is almost certainly truncated by the broker's lookback window rather than by when you actually started trading it. The panel says so, and names the boundary:
Partial history: synced trades for this connection only go back to 12 Feb 2025, and this symbol's first trade sits right at that edge. Premium collected before then is not included in this adjusted basis.
The same condition puts the amber ⚠ icon next to the figure in the table.
Treat a flagged figure as unreliable in either direction, not as a safe maximum. The basis nets realized P&L, and realized P&L on a closed option can be negative - a covered call bought back for more than you sold it, or a long option that expired worthless. Most wheel history is net premium collected, so the missing entries usually would have pulled the basis down, and the figure you're seeing is higher than the truth. But a single losing buy-back in the missing window pushes the other way, and the displayed figure would then be lower than your real effective basis - which is the dangerous direction, because it's the one that talks you into a covered call below what the shares actually cost you.
Don't infer the direction. Enter what's missing as a manual premium adjustment and the figure becomes trustworthy again.
The warning is deliberately conservative and won't fire when we can't demonstrate the boundary - for instance when a symbol's own history predates the connection's, which happens when the same ticker is held at a second broker or was backfilled by hand.
Where the numbers come from
Realized premium is read from the same computed P&L that drives the Dashboard and Trades pages, so the ledger can't disagree with the rest of the app. Open short-call premium is read from your live positions rather than from raw trade rows, so partial closes and rolls are already netted out.
Ticker changes are followed: if a symbol was renamed by a corporate action, premium collected under the old ticker still lands on the holding.