OptionBasisGuides
7 min read · updated 2026-09-04

How to calculate your real cost basis on a covered call position

If you sell covered calls, the price you paid for the shares stops being the number that matters within a few weeks. Every call you sell and let expire lowers the price you are effectively in at. Every one you buy back for more than you sold it for raises it. After a year of writing calls, the cost basis your broker shows and the price you would need to sell at to walk away even can be far apart.

This guide gives you the formula, a worked example with a roll and an expiration in it, and the three mistakes that make most home-made spreadsheets wrong.

Two meanings of “cost basis”

Your broker and the IRS use tax cost basis: what you paid for the shares, adjusted only by a few specific events, tracked lot by lot. Premium from a call that expires is a short-term capital gain on its own; it does not touch the shares' tax basis.

Traders care about a different number: the adjusted cost basis, which nets premium against the shares to answer “where do I really stand on this position?”. That is the number this guide is about. Use the tax basis for your return; use the adjusted basis for decisions.

The formula

adjusted cost per share = (cost of the shares held − net option premium) ÷ shares held

Where:

Break-even goes one step further and also nets any realized gain or loss from shares you sold or had called away along the way. Sell everything at the break-even price and the whole campaign on that stock nets to zero.

A worked example

Suppose you bought 100 shares of XYZ at $140 on June 2 and then wrote calls against them:

DateTradeCash
Jun 2Buy 100 XYZ @ $140 (+$1 commission)−$14,001.00
Jun 3Sell 1 Jun 19 $150 call @ $3.50+$348.70
Jun 19$150 call expires worthless$0.00
Jun 22Sell 1 Jul 17 $155 call @ $4.00+$398.70
Jun 28Buy back the $155 call @ $1.50−$151.30
Jun 28Sell 1 Aug 21 $160 call @ $5.00+$498.70

Net premium so far is $348.70 + $398.70 − $151.30 + $498.70 = $1,094.80. Cost of the shares is $14,001.00. So:

($14,001.00 − $1,094.80) ÷ 100 = $129.06 per share

You paid $140.01 a share. After four weeks of writing calls you are effectively in at $129.06. If XYZ is trading at $135, the brokerage screen shows a loss on the shares, and you are actually up.

The three mistakes that break spreadsheets

1. Counting the roll only once

A roll is two trades: you bought the $155 call back for $151.30 and sold the $160 call for $498.70. The buyback is a debit against the old contract; the new credit belongs to the new contract. Both go into net premium. If you only record the “net credit of the roll” you will get the same total, but you lose the ability to see which contracts lost money, and one day you will record a roll as a single credit and be off by the buyback.

2. Mixing premium from shares you no longer own

If your shares got called away in March and you were assigned on a new lot in July, the calls you wrote in February belong to the March campaign. They were real profit, but they are not part of what the July shares cost you. Start the clock at the fill that took the position from zero to something, and count only contracts sold after that.

3. Forgetting the put that delivered the shares

When shares arrive by put assignment, the premium from that put is part of what you paid. Leave it out and your basis is too high, usually by a few percent, which is the whole edge of the strategy. Interactive Brokers folds it in automatically in the average price it shows; most spreadsheets do not.

Doing this across statements

The hard part is not the arithmetic. It is matching hundreds of fills to the right contract, deciding which contracts belong to the shares you hold now, and handling the odd cases: partial fills, a call sold before the statement you have, a roll that crossed a month boundary. That is exactly what a statement parser is for, and it is why OptionBasis exists. Drop in a statement, expand a stock, and you can see every contract, its outcome, and the adjusted basis it produced.

Do this on your own statement in one drop
OptionBasis reads an IBKR or Robinhood statement in your browser and works out the adjusted basis, per stock, with every roll, buyback and assignment handled. Nothing is uploaded.
Open OptionBasis
Not investment or tax advice. Cost basis here is a trading view (average-cost method); your broker's tax documents use lot-based rules. See the disclaimer.