Strasmore Research
Learn Matt ConnorBy Matt Connor

How to Calculate Covered Call Returns

How to calculate covered call returns: net debit, break even, static return and return if called, worked through one contract, plus the annualized catch.

To calculate covered call returns you need four numbers: net debit, break-even, static return, and return if called. All four come from three inputs: the price paid for 100 shares, the premium collected on the one call sold against them, and that call's strike. The example below derives each in order, then adds the dividend and the annualization step.

What is a covered call, and which return do you mean?

A covered call is 100 shares you own plus one call sold against them. The call gives its buyer the right to buy those shares at a fixed price, the strike, until it expires, and the price you take for it, the premium, is cash in your account from day one. The mechanics live in how a covered call works. What follows is the arithmetic.

"The return" stays ambiguous until you name the ending you are pricing:

  • Net debit: the stock outlay minus the premium credit, the cash the position actually cost.
  • Break-even: net debit divided by 100 shares, the expiration price under which the position is worth less than it cost.
  • Static return: what the position earns with the stock at exactly today's price at expiration, the call worthless and the shares still yours.
  • Return if called: what it earns with the stock at or above the strike and the shares sold at that strike.

One contract covers 100 shares, so a premium quoted at $1.00 pays $100.00.

How to calculate covered call returns: a worked example

Take a made-up stock at a round $50.00 and a call 30 days out, struck at $52.50, quoted at $1.00. The shares cost $5,000.00. The call credits $100.00.

  • Net debit: $5,000.00 minus $100.00 is $4,900.00, or $49.00 a share.
  • Break-even: $49.00 at expiration.
  • Static return: at an unchanged $50.00 the call expires worthless and the $100.00 premium is the whole result, which is 2.04% over 30 days.
  • Return if called: assignment at $52.50 sells the shares for $5,250.00. The $250.00 of share gain plus $100.00 of premium is $350.00 on $4,900.00, or 7.14% over 30 days.

Both percentages use net debit as the denominator, the cash still at risk once the credit lands. Some brokers quote the same returns against the full $5,000.00, which prints smaller figures; the gap is the premium itself. The mirror-image position, selling a put with cash set aside, is compared in covered call vs cash secured put.

Where the premium in the numerator comes from

The premium is a market price. Its size tracks how much movement the option market prices into the stock over the life of the contract, an expectation quoted as an annualized percentage and known as implied volatility. Five household names, measured the same way through July 2026:

QueryMedian implied volatility on 20 to 45 day near-the-money calls, July 2026
The exact SQL behind every number
SELECT
    underlying_symbol AS symbol,
    round(100 * quantileDeterministic(0.5)(toFloat64(implied_volatility), cityHash64(ticker)), 1) AS median_iv_pct,
    count() AS contract_count
FROM global_markets.options_greeks
WHERE underlying_symbol IN ('AAPL', 'MSFT', 'NVDA', 'KO', 'SPY')
  AND date >= '2026-07-01'
  AND date <  '2026-08-01'
  AND iv_converged = 1
  AND volume > 0
  AND delta > 0
  AND days_to_expiry BETWEEN 20 AND 45
  AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
GROUP BY underlying_symbol
ORDER BY median_iv_pct DESC
Run this yourself

Median implied volatility ran from 43.4% on MSFT down to 13.4% on SPY across the 5 names, on calls with 20 to 45 days left and strikes within 5% of the stock. A 2% static return on the calmest of those names and a 2% static return on the fastest are not the same trade: the second is paid for a much wider range of 30-day outcomes. Liquid versus volatile options separates those two ideas.

Why an in-the-money strike front-loads the return

Now sell the $47.50 call on the same $50.00 stock, quoted at $3.20. That price splits into $2.50 of intrinsic value, the amount the stock already sits above the strike, and $0.70 of time value.

  • Net debit: $4,680.00, or $46.80 a share.
  • Break-even: $46.80, a 6.4% cushion under the stock, against 2.0% on the $52.50 call.
  • Static return: an unchanged $50.00 leaves the call in the money, so the shares go at $47.50. Proceeds of $4,750.00 against a $4,680.00 debit is $70.00, or 1.50%.
  • Return if called: the same 1.50%. Every ending at or above $47.50 pays $70.00 and nothing more.

The entire return on an in-the-money covered call is its time value, $0.70 a share here, and it is collected at any expiration price above $47.50. That is the front-loading: a smaller maximum, banked from a lower entry, with a 5% fall available before the number changes at all. The $52.50 call offers 7.14% and needs a 5% rally to pay it. Assignment day itself is described in what happens if an option expires in the money.

The two endings do not carry equal odds. Delta, the rate at which an option's price moves with the stock's, doubles as a rough market-implied chance of finishing in the money. Sorted by strike distance, for AAPL calls through July 2026 with 20 to 45 days left:

QueryAAPL call delta by strike distance, 20 to 45 days to expiry, July 2026
The exact SQL behind every number
SELECT
    multiIf(
        moneyness < -0.075, '7.5% to 10% in the money',
        moneyness < -0.025, '2.5% to 7.5% in the money',
        moneyness <  0.025, 'within 2.5% of the stock',
        moneyness <  0.075, '2.5% to 7.5% out of the money',
                            '7.5% to 10% out of the money') AS strike_band,
    round(quantileDeterministic(0.5)(toFloat64(delta), cityHash64(ticker)), 2) AS median_delta,
    count() AS contract_count
FROM
(
    SELECT
        ticker,
        delta,
        toFloat64(strike_price) / toFloat64(underlying_close) - 1 AS moneyness
    FROM global_markets.options_greeks
    WHERE underlying_symbol = 'AAPL'
      AND date >= '2026-07-01'
      AND date <  '2026-08-01'
      AND iv_converged = 1
      AND volume > 0
      AND delta > 0
      AND days_to_expiry BETWEEN 20 AND 45
      AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) <= 0.10
)
GROUP BY strike_band
ORDER BY min(moneyness)
Run this yourself

Median delta ran from 0.86 in the 7.5% to 10% in the money band to 0.17 in the 7.5% to 10% out of the money band. Read as a rough probability, the deep in-the-money calls were priced as more likely than not to be assigned, and the far out-of-the-money calls as unlikely to be. A static return quoted on a low-delta strike is a number the market expects you to collect, and the return-if-called on that same strike is one it does not.

How do you annualize a covered call return?

A 30-day static return of 2.04% is usually quoted as an annualized 24.8%: 2.04 multiplied by 365, divided by 30. The arithmetic is trivial. The assumption inside it is the part worth saying out loud. Multiplying by 12.17 assumes twelve more months exactly like this one, with the same premium at the same distance from the stock, the shares never called away, and no month spent out of the market. The 7.14% called case annualizes to 86.9%, which assumes something stronger still: that the stock clears the strike every month and is bought back higher each time.

The premium half of that assumption is measurable. Below is the median implied volatility on near-the-money AAPL calls, month by month, over the two years to July 2026.

QueryMedian implied volatility on near-the-money AAPL calls, by month
The exact SQL behind every number
SELECT
    formatDateTime(toStartOfMonth(date), '%Y-%m') AS month,
    round(100 * quantileDeterministic(0.5)(toFloat64(implied_volatility), cityHash64(ticker)), 1) AS median_iv_pct
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
  AND date >= '2024-08-01'
  AND date <  '2026-08-01'
  AND iv_converged = 1
  AND volume > 0
  AND delta > 0
  AND days_to_expiry BETWEEN 20 AND 45
  AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
GROUP BY toStartOfMonth(date)
ORDER BY toStartOfMonth(date)
Run this yourself

The series opens at 23.3% in 2024-08 and finishes at 28.4% in 2026-07, with 24 monthly readings drawn in the panel. Those months are not copies of one another, and neither was the premium on offer in each. Annualizing is a scale for comparing holding periods of different lengths, and it stops being one the moment the headline is read as a yearly return. Quote the period return with its day count first.

How dividends and early assignment enter the math

A dividend paid while the shares are still yours belongs in the numerator. Suppose the $50.00 stock trades ex-dividend for $0.35 inside the 30-day window and you hold through that date. The static return becomes $100.00 of premium plus $35.00 of dividend on a $4,900.00 debit, 2.76% rather than 2.04%.

That qualifier carries weight. American-style equity options can be exercised on any business day before expiration, and a call holder's incentive to do it early concentrates on the day before the stock trades ex-dividend, when exercising captures a dividend the contract itself does not pay. A call with little time value left against a dividend larger than that time value is the standard early-exercise candidate. The shares then leave at the strike before the ex-date and the $35.00 never arrives. Ex-dividend dates and options sets out the timing, and American vs European options covers which contracts can be exercised early at all.

What the return calculation cannot show

Every figure so far describes one date, expiration, and one position carried to it. Two things sit outside that frame.

The first is the upside handed over. Above the strike the shares are worth the strike, whatever the screen prints. The panel below takes AAPL month by month across the two years to July 2026 and plots the stock's own move against the same move capped at 5%, the shape of a covered call written 5% out of the money and carried to expiration each month.

QueryAAPL by month: the stock's move against the same move capped at 5%
The exact SQL behind every number
WITH monthly AS
(
    SELECT
        toStartOfMonth(toTimeZone(window_start, 'America/New_York')) AS m,
        toFloat64(argMax(close, window_start))                       AS last_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'AAPL'
      AND window_start >= '2024-07-01'
      AND window_start <  '2026-08-01'
    GROUP BY m
)
SELECT
    formatDateTime(m, '%Y-%m')                                AS month,
    round(100 * (last_close / prev_close - 1), 2)             AS stock_pct,
    round(least(100 * (last_close / prev_close - 1), 5.0), 2) AS called_away_pct
FROM
(
    SELECT
        m,
        last_close,
        lagInFrame(last_close) OVER (ORDER BY m ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_close
    FROM monthly
)
WHERE prev_close > 0
ORDER BY m
Run this yourself

In 2026-07 the uncapped series measured 6.35% and the capped series 5%. Across the 24 months drawn here, the two lines sit on top of each other in every falling month and part company in every month that clears the cap. A premium adds the same flat amount to both lines. It never changes their shape.

The second is the downside, which the premium softens without removing. Break-even at $49.00 on a $50.00 stock is a 2% cushion. A 20% fall leaves the position roughly 18% under water, and the call expiring worthless is the smallest thing that happened that month. The variant that spends part of the premium on a floor is set out in covered call vs collar. The version that keeps selling premium after assignment is the wheel strategy, and funds running the write on a fixed schedule are unpacked in covered call ETFs explained.

FAQ

How do you calculate the static return on a covered call?

Divide the premium collected by the net debit, then state the holding period next to it. A $1.00 premium on a $50.00 stock is $100.00 on a $4,900.00 net debit, 2.04% over 30 days, and it holds only if the stock finishes below the strike.

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

The share price paid minus the premium per share. A $50.00 stock with a $1.00 premium breaks even at $49.00, and under $49.00 at expiration the combined position is worth less than it cost.

Do you calculate covered call returns on net debit or on the full stock price?

Net debit is the cash left at risk once the credit arrives, and it is the denominator used throughout this page. Quoting against the undiscounted stock cost prints a slightly smaller percentage, and the two differ by exactly the premium.

Is an annualized covered call return a yield?

No. It is one period's return multiplied by 365 and divided by the days in that period, and it assumes the same premium is available in every future period with the shares never called away. Read it as a scale for comparing holding periods.

What happens to the return if the call is assigned early?

The dollars stay the same and the holding period shortens, so the annualized figure rises while the cash result does not move. When early assignment lands the day before an ex-dividend date, the dividend drops out of the numerator entirely.


How these panels are built

The three options panels read daily per-contract greeks, keep only rows where the implied volatility solve converged and the contract traded that day, and isolate calls by keeping positive delta. Near the money means a strike within 5% of that day's underlying close. Medians are computed deterministically, so re-running a fixed window returns the same figure. The monthly price panel uses the last recorded price in each month, and the capped series applies a 5% ceiling to that same move.

Every panel here carries the exact SQL that produced it, so open one to see the filters. The same questions can be asked in plain English on the Strasmore terminal.

#covered calls#options#return calculation#annualized return#assignment