Home › Templates › Covered call tracker

Covered Call Spreadsheet and Wheel Strategy Tracker

A free covered call spreadsheet that logs every call and cash-secured put you sell, works out net premium, premium yield, annualized return, if-called return and break-even per trade, handles rolls, and tracks each wheel cycle from put to assignment to called-away shares with an adjusted cost basis.

Download Excel template (.xlsx) 270 KB · no macros · Excel 2016+ and Google Sheets · v1.0, 27 Oct 2026

Use it in Google Sheets: choose File → Import → Upload in Sheets and pick the .xlsx, or upload it to Google Drive and open it with Google Sheets. No sign-up, no email, no add-on. The formulas are plain SUMIFS, COUNTIFS, INDEX/MATCH and EDATE.

Preview: Example Cycles tab with four fictional wheel cycles (ACME, BOLT, CRUX; all prices made up).
CycleSharesNet premiumEntry costAdjusted basisStatusRealized P/LAnnualized
ACME-1100$476.10$50.00$45.24Called away (closed)$876.1039.0%
ACME-2100$507.40$53.00$47.93Holding shares––
BOLT-1200$683.50$31.40$27.98Called away (closed)$1,403.5040.8%
CRUX-1300$281.10––Selling puts––
Example Summary tab: net premium by month opened, January to October 2026, fictional data. Total $1,948.10; April is negative (−$121.30) because of a roll.−$200−$100$0$100$200$300$400$500JanFebMarAprMayJunJulAugSepOctPut premium (net)Call premium (net)Month opened (2026)

Chart: the Example Summary tab, 15 fictional trades, $1,948.10 net premium in total. The negative April bar is a call bought back for more than it was sold for, then rolled.

What's inside the spreadsheet

TabWhat you typeWhat it calculates
Start hereNothingSteps, colour key, formulas, limits, disclaimer
TradesCycle ID, ticker, type (CSP or CC), open date, expiry, strike, contracts, premium per share, fees, stock cost per share (calls), close date, buy-back price, outcome (Open, Expired, Assigned, Closed, Rolled). 500 rows.Shares (contracts × 100), net premium, capital, days to expiry, premium yield, annualized return, break-even per share, if-called return, month opened
Wheel cyclesCycle ID, shares, starting cost per share if you already owned the shares. 50 cycles.Put and call premiums, rolls, assignment price, stock entry cost, adjusted cost basis, called-away price, status, realized P/L, days, return on capital, annualized return
SummaryYour tickers (up to 15)Totals, net premium by month (24 months) split into puts and calls, cumulative premium, per-ticker trades, premium, assignments, open contracts and average annualized return, a check for unmatched tickers, two charts
Example Trades / Cycles / SummaryAlready filled15 fictional trades in 4 cycles, including a roll, an early close and two assignments

How to use it

  1. On Trades, add one row for each option you sell. Pick CSP for a cash-secured put or CC for a covered call. Give related trades the same Cycle ID, such as KO-1.
  2. Type the premium per share as quoted (for example 1.20), and the total fees for the trade, including the buy-back if any. The sheet multiplies by 100 shares per contract.
  3. For a covered call, type your stock cost per share in column J. In a wheel, that is the strike of the put you were assigned on.
  4. When the option ends, fill in the close date, the buy-back price (0 if it expired or was assigned) and the outcome.
  5. To roll, mark the old row Rolled with its buy-back price, then add the new option on a new row with the same Cycle ID.
  6. On Wheel cycles, type each Cycle ID once and the number of shares. If the cycle starts with shares you already own, type their cost per share in column C.
  7. On Summary, type each ticker once. Check that "net premium not matched" shows $0.00.

Covered calls, cash-secured puts and the wheel

An option contract "generally represents 100 shares of the underlying stock", and the seller of a call "is obligated to sell those shares" to a buyer who exercises, according to the SEC's An Introduction to Options – Investor Bulletin on Investor.gov. When that happens, the seller receives "a notice called an assignment". The seller of a put is "obligated to buy those shares" at the strike.

The risk sits in the stock. OIC states the covered call's maximum loss "is limited but substantial. The worst that can happen is for the stock to become worthless." The same applies to a cash-secured put once you are assigned. The SEC bulletin adds that option writers "may carry an even higher level of risk" because some contracts "can expose writers to unlimited potential losses" (that applies to uncovered calls, not calls covered by shares). Before trading options, read the OCC's Characteristics and Risks of Standardized Options.

The formulas, explained

Exact formulas from the file (row 5 of Trades and Wheel cycles). Trades columns: C = type, F = strike, G = contracts, H = premium, I = fees, J = stock cost, L = buy-back price, O = shares.

FieldFormula
Net premium $ (P)=IF(OR(O5="",H5=""),"",(H5-N(L5))*O5-N(I5))
Capital $ (Q): strike × shares for a put, cost × shares for a call=IF(O5="","",IF(C5="CSP",N(F5)*O5,N(J5)*O5))
Premium yield (S)=IF(OR(P5="",N(Q5)=0),"",P5/Q5)
Annualized (T): yield × 365 ÷ days to expiry=IF(OR(S5="",N(R5)<=0),"",S5*365/R5)
Downside break-even per share (U)=IF(OR(P5="",O5=""),"",IF(C5="CSP",IF(N(F5)>0,F5-P5/O5,""),IF(N(J5)>0,J5-P5/O5,"")))
If-called return (V), calls only=IF(AND(C5="CC",N(J5)>0,N(F5)>0,P5<>""),((F5-J5)*O5+P5)/(J5*O5),"")
Cycle: assigned at (put strike)=IF($A5="","",IF(COUNTIFS(Trades!$A$5:$A$504,$A5,Trades!$C$5:$C$504,"CSP",Trades!$M$5:$M$504,"Assigned")=0,"",SUMIFS(Trades!$F$5:$F$504,Trades!$A$5:$A$504,$A5,Trades!$C$5:$C$504,"CSP",Trades!$M$5:$M$504,"Assigned")/COUNTIFS(Trades!$A$5:$A$504,$A5,Trades!$C$5:$C$504,"CSP",Trades!$M$5:$M$504,"Assigned")))
Cycle: adjusted cost basis per share=IF(OR(K5="",N(B5)=0),"",K5-H5/B5) (K = entry cost, H = total net premium, B = shares)
Cycle: realized P/L once called away=IF(OR(M5="",K5="",N(B5)=0),"",(M5-K5)*B5+H5) (M = called-away strike)

The break-even matches OIC's "starting stock price – premium received", with fees and buy-backs taken out of the premium. Annualized figures use calendar days to expiry at the time you open the trade.

Worked example from the sample data

One covered call

Row 7 of Example Trades: 100 ACME shares at a cost of $50.00, a 52-strike call sold for $0.90 with $0.65 in fees, 25 days to expiry.

$89.35Net premium: $0.90 × 100 − $0.65
1.79%Premium yield on $5,000
26.09%Annualized (× 365 ÷ 25)
5.79%If called at $52
$49.1065Break-even per share

A full wheel cycle: ACME-1

TypeOpenedExpiryStrikePremiumBuy-backFeesOutcomeNet premiumYieldAnnualizedBreak-even
CSP05 Jan20 Feb$50.00$1.20$0.00$0.65Expired$119.352.39%18.9%$48.81
CSP23 Feb20 Mar$50.00$1.05$0.00$0.65Assigned$104.352.09%30.5%$48.96
CC23 Mar17 Apr$52.00$0.90$0.00$0.65Expired$89.351.79%26.1%$49.11
CC20 Apr15 May$52.00$1.10$2.30$1.30Rolled−$121.30−2.43%−35.4%$51.21
CC13 May18 Jun$54.00$2.85$0.00$0.65Assigned$284.355.69%57.7%$47.16
  1. Two puts at the $50 strike. The first expired; the second was assigned, so the account bought 100 shares at $50.00. Put premiums: $223.70.
  2. A $52 call expired. The next $52 call was bought back at $2.30 as the stock rose (−$121.30 on that row) and rolled to a $54 call for $2.85 ($284.35). Call premiums: $252.40.
  3. The $54 call was assigned and the shares were called away. Total net premium $476.10; adjusted cost basis $50.00 − $476.10 ÷ 100 = $45.2390.
  4. Realized P/L = ($54 − $50) × 100 + $476.10 = $876.10 over 164 days: 17.52% on $5,000, or 39.0% annualized.

BOLT-1 shows a cycle that starts with 200 shares already owned at $31.40: four calls brought in $683.50, the adjusted basis fell to $27.9825, and the shares were called away at $35.00 for a realized $1,403.50. ACME-2 is still holding shares at an adjusted $47.9260 with a call open, and CRUX-1 is still selling puts.

Those percentages come from made-up prices in which every assignment worked out. If ACME had fallen to $40 while the shares were held, the cycle would show a loss well beyond the premiums.

Summary by ticker

TickerTradesNet premiumAssignmentsOpen contractsAvg annualized
ACME9$983.503122.6%
BOLT4$683.501019.6%
CRUX2$281.100325.5%
Total15$1,948.10

Common mistakes

FAQ

How do you calculate the return on a covered call?

Divide the net premium (premium received minus any buy-back cost and fees) by the capital in the trade, which is your stock cost times the number of shares. In the example, a 52-strike ACME call sold for $0.90 on 100 shares bought at $50.00 earned $89.35 net on $5,000: a premium yield of 1.79%. If the shares are called away, add the gain up to the strike: (($52 − $50) × 100 + $89.35) ÷ $5,000 = 5.79%.

How do you annualize a covered call return?

Multiply the premium yield by 365 and divide by the days to expiry. The same ACME call ran 25 days, so 1.79% × 365 ÷ 25 = 26.09%. This is a simple (not compounded) rate. It assumes you could repeat the same result all year, which is not guaranteed, so treat it as a way to compare trades of different lengths, not a forecast.

What is the break-even price of a covered call?

The Options Industry Council gives it as the starting stock price minus the premium received. For 100 ACME shares bought at $50.00 with $89.35 net premium, break-even is $50.00 − $0.8935 = $49.1065 per share. Below that, the position loses money.

What is the wheel strategy in options?

It is a repeating loop of two strategies. You sell cash-secured puts until one is assigned and you buy the shares at the strike. Then you sell covered calls on those shares until they are called away, and start again with puts. The premiums lower your effective cost, but the shares can still fall well below it.

How do you track a rolled covered call?

Record a roll as two trades. Close the old call on its row with the buy-back price and the outcome Rolled, then add the new call on a new row with the same cycle ID. The sheet then counts the buy-back cost: in the example the April ACME call shows −$121.30 and the new call $284.35, a net $163.05 for the roll.

Does selling covered calls lower your cost basis?

In this tracker, yes: adjusted cost basis = stock entry cost − total net premium ÷ shares. ACME-1 entered at $50.00 and collected $476.10 in premiums on 100 shares, so the adjusted basis is $45.2390. That is a tracking figure. Your tax cost basis follows tax rules, which treat option premiums differently; check with a tax professional.

Related tools and templates

Educational template only, not financial, tax or investment advice. Options involve risk and are not suitable for all investors. Example data is fictional: ACME, BOLT and CRUX and all prices, premiums and fees are made up. Quotes from Investor.gov (SEC) and the Options Industry Council were retrieved on 27 October 2026.