Cost Basis After Assignment, Worked Through a Whole Cycle
Premium reduces your basis, and the adjustment compounds across cycles. Here is the full arithmetic.
Worth reading first: What Actually Happens on Expiration Day
Course contents73 lessons · 28 questions
You sold a $100 put, collected $250, and got assigned. Your broker's position screen now says you own 100 shares at $100.00.
That number is wrong for every purpose you care about. Your shares cost you $97.50, and every covered call you write from here will drop that figure further. Keeping track of it is the difference between knowing what a wheel earned and guessing.
Step through a complete cycle
Advance one step at a time and watch the effective basis move underneath the position. Notice that no single trade ticket ever reports it.
Sell another $105 call
- +$250
1Sell the $100 put
30 days out. $10,000 of cash set aside as collateral.
- −$10,000
2Assigned at $100
Stock closed at $94. You buy 100 shares at the strike.
- +$180
3Sell the $105 call
Written against the shares you now own, above your basis.
4Call expires worthless
Stock finished at $101. You keep both the shares and the credit.
- +$180
5Sell another $105 call
Second cycle against the same shares.
- +$10,500
6Called away at $105
Stock finished at $108. The shares are sold at the strike.
Watch the basis line. It starts at $100.00 less the put credit, then drops again with every call written. By the time the shares are called away at $105.00, the profit is the gap between the sale price and a basis no single trade ticket anywhere records.
Why the broker's number differs from yours
The broker records a share purchase at the strike, because that is literally the transaction that occurred. The premium was a separate, earlier event on a different instrument.
Economically the two are one trade. You agreed to buy at $100 and were paid $2.50 per share for making that agreement, so the shares cost you $97.50 net.
Effective basis = strike − premium collected (per share)The first adjustment. Every subsequent credit against the same shares reduces it further.
It moves again with every call
The adjustment is not a one-off. Every covered call written against those shares reduces the effective basis by its premium, whether the call expires worthless or is bought back.
| Event | Cash | Effective basis | Note |
|---|---|---|---|
| Sold $100 put | +$250 | — | No shares yet |
| Assigned at $100 | −$10,000 | $97.50 | Strike less the credit |
| Sold $105 call | +$180 | $95.70 | Basis drops again |
| Call expired | $0 | $95.70 | Keep shares and credit |
| Sold $105 call | +$180 | $93.90 | Second cycle |
| Called away at $105 | +$10,500 | — | Profit: $105 − $93.90 = $11.10/share |
A wheel cycle on 100 shares. Each row shows the basis after that event.
The final row is the payoff for tracking this properly. The shares sold at $105 against a basis of $93.90 — a profit of $1,110, of which $610 came from premium and $500 from the share appreciation. Neither number is visible on any individual ticket.
Three decisions that depend on it
Which covered call strike is safe. The rule is never to write below your basis. Believing your basis is $100 when it is $95.70 means rejecting perfectly good $97 strikes — or worse, believing a $99 strike is above water when the arithmetic says otherwise in the opposite direction.
Whether the position is actually underwater. Shares bought at a $100 strike and now trading at $96 look like a loss. Against a $93.90 basis they are a gain. Same position, opposite conclusions, and one of them might prompt you to sell.
What the cycle earned. Any return figure computed against the wrong basis is wrong, and always in the flattering direction if you use the strike.
Keeping it straight by hand
In a spreadsheet, the workable approach is one row per share lot rather than one row per trade, with a running basis column that every related option credit updates.
It works. It is also where manual tracking starts getting genuinely difficult, because the link between an option trade and a share lot is a relationship a flat table cannot express well — which is the subject of where spreadsheets stop working.
Partial assignments make it harder again: 100 of your 300 shares assigned means splitting the lot, and the premium has to be allocated across the right portion.
What can go wrong
Using the strike as the basis. Overstates your cost and understates the position's performance.
Forgetting the adjustment compounds. After six cycles the gap between the strike and the real basis is substantial.
Mixing the tax basis and the economic basis. Keep both and know which question each one answers.
Losing the link when shares are called away. The chain ends there, and if you have not recorded the basis at that moment the cycle's result is unrecoverable.
Key takeaways
- After assignment your effective basis is the strike less the premium collected, not the strike.
- Every covered call written against those shares reduces the basis again — the adjustment compounds.
- Your broker's number is the tax basis and is correct for tax; the economic basis is what performance decisions need.
- Three decisions depend on it: which call strike is safe, whether the position is underwater, and what the cycle earned.
- Track it per share lot with a running column, and record it at the moment shares are called away.
Check your understanding
1. You sold a $50 put for $1.80 and were assigned. What is your effective cost per share?
2. You then write two covered calls for $1.20 and $0.90, both expiring worthless. What is the basis now?
3. Why does using the strike as your basis mislead you?