Why Would Anyone Sell a Put Option?
Why would anyone sell a put option? The premium is payment for a real obligation. Where a high win rate hides a deep tail, and when selling is a bad idea.
Why would anyone sell a put option? The seller is paid cash up front, and that cash buys a real obligation: with the stock below the strike price at expiration, the seller buys 100 shares at that strike, whatever the market price has become. The premium is the entire motivation. A seller takes it either wanting the shares at that price anyway, or holding the view that the quoted premium is larger than the move the stock will actually deliver. Order mechanics live in buying and selling put options. What follows is the case for the trade, and the places it falls apart.
What is a put seller actually paid for?
A put is a contract giving its owner the right to sell 100 shares at a fixed price, the strike, up to a fixed date, the expiration. Buyers of puts want downside protection or a position in a decline. Every one of those contracts has a seller on the other side, collecting the premium for standing ready to buy the shares at the strike. The premium is the auction price of that obligation.
The ladder below pins one real chain: AAPL puts roughly a month from expiry, strikes in $5 steps from near the money down to about 15% below it, on one fixed past session so the figures never move.
| strike | put_premium | abs_delta | iv_pct | premium_pct_of_spot | premium_per_contract | commitment_label | spot_label | session_label |
|---|---|---|---|---|---|---|---|---|
| $255 | 0.54 | 0.05 | 33 | 0.18 | $54 | $25.5k | $297.1 | Jun 17, 2026 |
| $260 | 0.67 | 0.06 | 31.1 | 0.23 | $67 | $26k | $297.1 | Jun 17, 2026 |
| $265 | 0.93 | 0.08 | 29.8 | 0.31 | $93 | $26.5k | $297.1 | Jun 17, 2026 |
| $270 | 1.2 | 0.1 | 28 | 0.4 | $120 | $27k | $297.1 | Jun 17, 2026 |
| $275 | 1.7 | 0.14 | 27 | 0.57 | $170 | $27.5k | $297.1 | Jun 17, 2026 |
| $280 | 2.31 | 0.19 | 25.6 | 0.78 | $231 | $28k | $297.1 | Jun 17, 2026 |
| $285 | 3.3 | 0.25 | 24.7 | 1.11 | $330 | $28.5k | $297.1 | Jun 17, 2026 |
| $290 | 4.85 | 0.34 | 24.6 | 1.63 | $485 | $29k | $297.1 | Jun 17, 2026 |
| $295 | 6.7 | 0.43 | 24 | 2.26 | $670 | $29.5k | $297.1 | Jun 17, 2026 |
The exact SQL behind every number
SELECT
concat('$', toString(toUInt32(round(toFloat64(strike_price))))) AS strike,
round(avg(toFloat64(option_close)), 2) AS put_premium,
round(avg(abs(delta)), 2) AS abs_delta,
round(avg(implied_volatility) * 100, 1) AS iv_pct,
round(100 * avg(toFloat64(option_close)) / avg(toFloat64(underlying_close)), 2) AS premium_pct_of_spot,
concat('$', toString(toUInt32(round(avg(toFloat64(option_close)) * 100)))) AS premium_per_contract,
concat('$', toString(round(toFloat64(strike_price) / 10, 1)), 'k') AS commitment_label,
concat('$', toString(round(avg(toFloat64(underlying_close)), 2))) AS spot_label,
formatDateTime(toDate('2026-06-17'), '%b %e, %Y') AS session_label
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND delta < 0
AND date = '2026-06-17'
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 28 AND 35
AND modulo(toFloat64(strike_price), 5) = 0
AND toFloat64(strike_price) BETWEEN toFloat64(underlying_close) * 0.85
AND toFloat64(underlying_close) * 1.005
GROUP BY strike_price
ORDER BY strike_priceOn Jun 17, 2026, with AAPL last trading at $297.1, the $295 strike put closed at $6.7 per share, or $670 for one contract of 100 shares. Read down the ladder and the pay shrinks with the cushion: the $255 strike paid $54, about 0.18% of the share price.
The abs_delta column prices that trade-off. Delta works here as the market's rough odds of the contract finishing in the money, and it reads 0.05 at the bottom strike against 0.43 at the top. A seller picking a row is picking how often the position will be right, and the premium column is what the market pays for each level of that choice.
The payoff: a capped gain against a deep loss
Written out, the shape is plain.
- The best case is fixed. The stock holds above the strike, the contract expires worthless, the seller keeps the premium. There is nothing above that number.
- Break-even sits at the strike minus the premium received.
- Below break-even the loss grows dollar for dollar with the decline, stopping only at a share price of zero. It is bounded, and the bound is the whole strike value minus the premium.
- The capital at stake is set by the strike, never by the premium.
Take the $295 line again. The seller receives $670 and accepts a commitment of $29.5k of stock. Maximum gain, the premium. Maximum loss, that commitment less the premium. A hundred to one between the two sides is ordinary here, which sets the bar: the win rate has to be high for the position to make sense at all.
Why a high win rate is not a positive expectation
A put struck well below the market expires worthless most of the time. That is a statement about how often, and on its own it says nothing about the size of the damage on the occasions it does not. The panel below measures that second half for AAPL, in overlapping 21-session windows, close to a trading month, from January 2021 forward.
| strike_cushion | expired_worthless_pct | avg_loss_when_itm_pct | avg_loss_all_windows_pct | worst_window_pct | sample |
|---|---|---|---|---|---|
| 2% below spot | 68.2 | 4.99 | 1.59 | 22.2 | 1418 windows |
| 5% below spot | 77.3 | 3.36 | 0.76 | 19.2 | 1418 windows |
| 10% below spot | 95.1 | 2.73 | 0.13 | 14.2 | 1418 windows |
| 15% below spot | 99.4 | 3.42 | 0.02 | 9.2 | 1418 windows |
The exact SQL behind every number
SELECT
concat(toString(cushion_pct), '% below spot') AS strike_cushion,
round(100 * countIf(move_pct > -1 * cushion_pct) / count(), 1) AS expired_worthless_pct,
round(avgIf(-1 * (move_pct + cushion_pct), move_pct <= -1 * cushion_pct), 2) AS avg_loss_when_itm_pct,
round(avg(if(move_pct <= -1 * cushion_pct, -1 * (move_pct + cushion_pct), 0)), 2) AS avg_loss_all_windows_pct,
round(-1 * min(move_pct) - cushion_pct, 2) AS worst_window_pct,
concat(toString(count()), ' windows') AS sample
FROM
(
SELECT (end_px / start_px - 1) * 100 AS move_pct
FROM
(
SELECT
close_px AS start_px,
leadInFrame(close_px, 21) OVER (ORDER BY date ROWS BETWEEN CURRENT ROW AND 21 FOLLOWING) AS end_px
FROM
(
SELECT
date,
max(toFloat64(close)) AS close_px
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'AAPL'
AND date BETWEEN '2021-01-04' AND '2026-09-25'
GROUP BY date
) AS daily
) AS shifted
WHERE end_px > 0
) AS windows
CROSS JOIN
(
SELECT arrayJoin([2, 5, 10, 15]) AS cushion_pct
) AS cushions
GROUP BY cushion_pct
HAVING countIf(move_pct <= -1 * cushion_pct) > 0
ORDER BY cushion_pctAt a cushion of 2% below spot, the stock finished above the strike in 68.2% of windows. At 15% below spot the figure rises to 99.4%, a win rate that flatters any description of a strategy. The remaining columns are the other half of the arithmetic. Among the windows that did breach that deepest cushion, the average breach ran 3.42% of the starting share price, and the worst single window reached 9.2%. Averaged across every window, breached or not, the cost comes to 0.02% of the share price.
That last number is the one a premium has to beat. Set it beside the 0.18% the deepest strike paid in the first panel, at a comparable cushion over a comparable month, and the two claims come apart cleanly. The win rate is a frequency. The expectation is the pay measured against the average cost. Neither one implies the other. Treat the comparison as an order of magnitude rather than a backtest: one chain on one day against five years of outcomes, with overlapping windows that are nowhere near independent trials. A sample drawn across a deeper decline would carry a heavier average cost at the same cushion.
Does the premium overstate the move it prices?
Implied volatility is the movement priced into an option, quoted as an annualized percentage. Realized volatility is the movement the daily closes then printed, on the same scale. The gap between the two is the second motivation for selling, and it is what short volatility means: paid for movement at one price, then watching a different amount of it arrive.
| month | implied_vol_pct | realized_vol_pct_next_month | vol_spread |
|---|---|---|---|
| Jan 2024 | 23.5 | 12.3 | 11.1 |
| Feb 2024 | 19.6 | 25.3 | -5.7 |
| Mar 2024 | 21 | 23.5 | -2.5 |
| Apr 2024 | 27.1 | 24.3 | 2.9 |
| May 2024 | 21.5 | 33.2 | -11.7 |
| Jun 2024 | 22 | 24.7 | -2.7 |
| Jul 2024 | 26.7 | 23.1 | 3.6 |
| Aug 2024 | 24.8 | 23.5 | 1.4 |
| Sep 2024 | 24.2 | 21 | 3.1 |
| Oct 2024 | 26.3 | 15.1 | 11.2 |
| Nov 2024 | 19.6 | 16.3 | 3.3 |
| Dec 2024 | 18.4 | 30.6 | -12.2 |
| Jan 2025 | 27.8 | 26.1 | 1.7 |
| Feb 2025 | 23.2 | 30.9 | -7.7 |
| Mar 2025 | 28.9 | 77.5 | -48.6 |
| Apr 2025 | 41.8 | 33 | 8.9 |
| May 2025 | 30.3 | 18.3 | 12.1 |
| Jun 2025 | 27.2 | 14.4 | 12.9 |
| Jul 2025 | 29.9 | 28.7 | 1.2 |
| Aug 2025 | 25.7 | 28.5 | -2.8 |
The exact SQL behind every number
SELECT
formatDateTime(i.m, '%b %Y') AS month,
round(i.implied_vol, 1) AS implied_vol_pct,
round(r.realized_vol, 1) AS realized_vol_pct_next_month,
round(i.implied_vol - r.realized_vol, 1) AS vol_spread
FROM
(
SELECT
toStartOfMonth(date) AS m,
addMonths(toStartOfMonth(date), 1) AS next_m,
avg(implied_volatility) * 100 AS implied_vol
FROM global_markets.options_greeks
WHERE underlying_symbol = 'AAPL'
AND delta < 0
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 20 AND 45
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
AND date BETWEEN '2024-01-01' AND '2026-08-31'
GROUP BY m, next_m
) AS i
INNER JOIN
(
SELECT
toStartOfMonth(d) AS m,
stddevSamp(log(close_px / prev_px)) * sqrt(252) * 100 AS realized_vol
FROM
(
SELECT
date AS d,
close_px,
lagInFrame(close_px, 1) OVER (ORDER BY date ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_px
FROM
(
SELECT
date,
max(toFloat64(close)) AS close_px
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'AAPL'
AND date BETWEEN '2023-12-01' AND '2026-09-26'
GROUP BY date
) AS daily
) AS lagged
WHERE prev_px > 0
GROUP BY m
HAVING count() >= 15
) AS r ON r.m = i.next_m
ORDER BY i.mEach row carries the average implied volatility on near-the-money AAPL puts quoted inside that month, roughly a month from expiry, against the annualized volatility of the daily closes in the month that followed. In Jan 2024 the implied reading was 23.5% against 12.3% realized. Where the implied line sits above the realized line, sellers of that month's puts were paid for more movement than the following weeks delivered. Where it sits below, they were short something cheaper than what arrived. The vol_spread column prints that gap month by month. Volatility arrives in clusters, and the negative rows tend to land together rather than spaced evenly, which makes a run of quiet months a poor guide to the next one.
Why one put pays far more than another
Same cushion, same month to expiry, very different pay. The panel takes one week of real chains across seven liquid names, at strikes about 5% below the market.
TSLA carried the widest premium of the group, 3.17% of the strike, alongside implied volatility of 44.3%. SPY paid 0.54% with implied volatility of 18.9%. The two columns rise and fall together across the panel. A fat premium is the price of a wide expected move, which makes it a bigger obligation quoted at a fair price rather than a better deal.
Two reasons anyone sells a put option
Cash secured: assignment is the plan
A cash-secured put sets the full strike value aside in cash. The seller is content to own the shares at the strike, and the premium works as a discount on that entry: assignment at the $295 strike, with $670 already collected, leaves an effective cost per share of the strike less the premium. The cost is what that cash cannot do elsewhere for the life of the contract, and the upside above the strike, along with every dividend until the shares arrive, belongs to someone else. Covered call versus cash secured put sets the two sides of that choice next to each other, and the wheel strategy covers the pattern that treats assignment as the intended outcome.
Naked: a leveraged short volatility position
A naked put posts margin instead of the full strike. The dollar loss in a decline is identical. The posted capital is a fraction of it, which makes the same move several times larger measured against the account, and the requirement grows as the stock falls, which is the part that tends to force a decision at the worst moment. What brokers require, and what happens when the requirement outruns the account, is in margin for selling naked options. For where short puts sit against the rest of the options book, how risky options trading is ranks the structures.
When selling a put option is a bad idea
- The strike was picked for the premium rather than for a price at which owning the shares is acceptable. A cash-secured put on a name the seller does not want leaves an assignment to be unwound at whatever the market offers.
- Size follows the premium instead of the commitment. One contract commits a hundred times the strike, and that is the number position size answers to.
- The premium is unusually wide and the seller has not looked for what the market is pricing inside the contract's life, such as an earnings date or a pending legal decision.
- Assignment would arrive somewhere with no room for it, including a retirement account with its own permission rules. Trading options inside an IRA covers those limits.
FAQ
Can a put I sold be assigned before expiration?
Yes. US equity options are American style, exercisable on any business day until expiry, and the seller has no say in the timing. Early assignment tends to show up on deep in-the-money contracts with little time value left. When short options get assigned early goes through the patterns, and partial assignment of short options covers getting only part of a multi-contract position.
Do I collect the dividend on a put I sold?
No. A short put is not a share position, and no dividend reaches the seller. Dividends work the other way on exercise timing: the ex-date price drop lands in the put holder's favour, and waiting keeps it, which makes early exercise of a put less likely ahead of a payment.
What happens if the stock drops hard right after I sell the put?
The loss shows up as a mark to market long before expiration settles anything. The contract can be bought back at its new, higher price, or rolled out in time; how to roll an option position walks through that. In a margin account the requirement rises alongside the move, which is often what sets the deadline.
What if the stock finishes right at the strike?
That is pin risk: a short put sitting at the money into the close may or may not be assigned, and the seller usually finds out over the weekend. Pin risk at options expiration covers the exposure, and what happens if an option expires in the money covers the settlement path.
Is selling a put safer than buying the shares?
It is a different payoff with much of the same downside. A short put struck below the market has a lower break-even than shares bought today, and it gives up all upside above the strike along with the dividends. Below the strike, the exposure tracks the stock itself.
Data notes and method
AAPL has not split since 2020, and the closes in the window from January 2021 need no split adjustment; the record is in AAPL stock split history. The 21-session windows overlap, sharing most of their days, which makes them a description of this sample rather than a set of independent trials. Put contracts are the negative-delta rows in the greeks table. Implied volatility comes from contracts that converged and traded that day, near the money, 20 to 45 days from expiry, averaged by month. Realized volatility is the sample standard deviation of daily log returns inside the following month, annualized by the square root of 252. Option premiums are daily closing marks on contracts that traded, never quotes.
Every panel here carries the SQL that produced it underneath. To run the same ladder on another ticker or another week, ask it in plain English on the Strasmore terminal.