More Delta Means More Yield, and More Risk. How We Found a Middle Ground
20 August 2026 · 12 min read
We wanted more yield out of the same book. Selling deeper delivers it and carries more risk: a deeper strike sits closer to the money and is likelier to be assigned. So we modelled where the middle ground sits. We ran every combination of volatility bucket, delta and deployment against our stress engine, and the lowest-risk books that gross 2–3% of NAV are unlevered, hold roughly 25 names, and sit in the calmer half of the universe at about 0.30–0.40 delta. The question then became how to reach 0.30 delta safely.
The obstacle is that 0.30 delta does not mean the same thing on every stock. Across 301 names the 0.30 rung prices at a median 0.3265 chance of assignment, and a 0.30 delta on a broad index fund is a different trade from a 0.30 delta on a single name before earnings. So we target a chance of assignment instead of a delta, and use a separate set of rules for which companies may carry it. Under those rules only 13 of the 301 may sell a 0.30-delta put, and 197 are capped at 0.10.
Most people who sell cash-secured puts settle on a delta and then apply it to everything. Ten delta if they are cautious, thirty if they want the premium. The number becomes a habit, applied to a semiconductor cyclical and a dividend aristocrat with equal confidence.
So we built a score to set depth name by name, ran it across 301 stocks, and then overrode most of the result.
What the algorithm is for
For any stock you might wheel there is a ladder of strikes you could sell, and the usual way to pick one is by its delta. Sell the 0.30. Sell the 0.10.
A delta is not a probability. It approximates one, and the gap widens as strikes get deeper. The number that counts when you sell a put is the chance the stock finishes below your strike, because that is the chance you end up owning the shares.
So the target is set as a budget rather than a label: find the strike whose chance of assignment sits at or under a set figure, which for us is around 30% at the deepest. The algorithm turns that budget into a specific strike on a live chain.
Two things have to hold for that to work. You need to know which names may carry a 30% budget at all, and you need an assignment probability worth trusting.
The yield modelling is also what rules out the alternative. Staying shallow and reaching for high-volatility underlyings produces the same premium at materially higher modelled crash loss, so selling deeper on steadier names is the safer of the two routes to the same number.
Underneath this sits a tradeoff score. It rates each rung on premium collected, what you give up when the stock runs past your strike, and the cost of being assigned into a company that keeps falling. Every rung from 0.10 to 0.30 is computed, stored and displayed, so you can see what the rung you did not take would have paid.
Assignment is not the hazard. If you sold a put at a price you were happy to pay, assignment is the intended outcome. What you want to avoid is being assigned on a company that keeps falling, and that is a question about the business. So depth comes down to which companies you are willing to own. The first half of that problem is choosing the names at all.
What it feeds into
The screener has an Auto mode. Pick a delta yourself and you see every name at that depth. Turn Auto on and you get one row per ticker, at the depth chosen for that specific name. The other rungs stay computed and visible, so you can audit the choice.
Everything below describes what is live in that mode today.
What we expected to see
Two things. First, that a 0.30-delta strike would carry roughly a 30% chance of assignment, close enough to treat the label as the budget. Second, that a score weighing premium against risk would spread names across the ladder by itself, putting fragile businesses on shallow strikes and durable ones on deep strikes.
Neither held.
What it actually did
The delta label overshoots the budget. At the 0.30 rung the chance of assignment prices above 30% for most names, with a median of 0.3265. Read the label as the budget and you overspend it on most names.
The score sent almost everything to the deepest rungs anyway. Measured across the universe on 2026-08-19, the uncapped score put 80% of names in the 0.25–0.30 range, whatever the company underneath happened to be. Broad index funds, names we would not want to own on margin, and peak-earnings cyclicals all came out at the same depth.
The reason is structural. Premium rises with depth faster than the risk terms fall, so across the universe the premium term moved the score roughly four times as much as the risk terms did. Reweighting does not fix that. A single score has no way to express "0.10 on a peak cyclical, 0.30 on a compounder", because weighing two quantities against each other produces one rule applied to every name. Different companies need different rules, and that takes a gate.
So depth is now capped per name by an explicit policy, evaluated in order, first matching rule wins. The score still ranges freely below the cap, and a name already scored shallow is untouched. Nothing is excluded, so every name stays visible and tradeable, with the reason for its cap attached.
The rules, in the order they fire:
- E — earnings land on or before this expiry. Capped to 0.10 for that cycle only. This is the one time-varying rule, and a name crosses it about four times a year with nothing about the company having changed.
- R1 — a broad, unleveraged equity index fund. May sell to 0.30. There is no single-name earnings surprise to be wrong about.
- R2 — the deep strike already carries a real cushion. If the 0.30 strike sits 20% or more below spot, it may sell to 0.30.
- R3 — a mega cap that is not expensive and not living off peak earnings. Above $1T, trailing P/E under 40, and current earnings under 5x their through-cycle average.
- RV — everything else, judged on realised volatility. Under 35% realised gets 0.15. At or above it gets 0.10.
Run against the live universe today, that produces:
| cap | names |
|---|---|
| 0.30Δ | 13 |
| 0.15Δ | 91 |
| 0.10Δ | 197 |
By rule: E 38, R1 6, R2 1, R3 6, RV 250.
Four names in five are held below where the score would have put them. The thirteen allowed to the 0.30 rung are AAPL, AMZN, DIA, GOOGL, IWM, META, MRNA, MSFT, NOBL, QQQ, SPY, TSM and XLF, each with a sentence attached explaining why. GOOGL reads "a $4.22T company at a trailing P/E of 17.3, earning 1.1x its through-cycle average". MRNA is there on the cushion rule rather than on quality: its 0.30-delta strike sits 67% below spot, which is what high volatility does to strike spacing.
R2 fires for exactly one name out of 301. At a median 31 days to expiry a 0.30-delta strike usually sits around 5% out of the money, so a 20% cushion at that depth is rare by construction. The rule almost never binds.
Spending the budget instead of reading the label
With the caps in place a rung still has to be picked within each cap, and the first version took the deepest allowed. Given the median above, that overspent the budget on most names: set a ceiling of roughly 30% and the rung that fits under it is usually the 0.20 or the 0.25.
Auto now selects within the cap on the chance of assignment rather than on the delta label. The label only names a position on the ladder. The assignment probability is the quantity the cap was written to limit.
Delta and assignment probability are not the same number. The correct risk-neutral figure is N(-d2), which sits above the absolute value of a put's delta, and it moves again once a volatility smile is present.
The assignment estimate is weakest at the deepest strikes
The correction that accounts for the volatility smile is least stable at the deepest strikes, so those rungs are the ones we trust least. Auto is currently held at 0.25 while that estimate is repaired, even for the thirteen names the policy would allow to 0.30. Every rung is still computed, persisted and displayed, so the 0.30 figure remains visible and you can see it converge.
The ceiling has a cost, and it is small. It moves six of the thirteen; the other seven were already selecting shallower than 0.25 on their own. Across the six names it moves, it costs a median of 2.5% a year in annualised premium. XLF actually gains 2.5%.
Next steps
The ceiling comes off when the estimate at the deepest strikes can be trusted. The obvious way to establish that is to check it against outcomes: sell enough puts at a modelled 30% and count how many are assigned.
We cannot do that yet. The history is short, and consecutive expiry cycles on the same name are heavily correlated, because volatility clusters and trends persist. The effective sample is therefore far smaller than the row count suggests. Counting outcomes would produce a number quickly. It would not produce one worth acting on for years.
The alternative is to estimate the distribution from current option prices instead of from past outcomes. The approach is a risk-neutral density built from the whole option chain, using the Breeden–Litzenberger relationship: the distribution of where a stock finishes is recoverable from how option prices change across strikes. The assignment probability derived from it can then be checked against no-arbitrage. If the implied distribution goes negative anywhere, no answer is returned.
It runs in shadow at the moment: computed and recorded on every refresh, ranking nothing, changing no number you see. It has to match or beat the live estimator before it replaces it.
Where the method comes from
Douglas Breeden and Robert Litzenberger published "Prices of State-Contingent Claims Implicit in Option Prices" in the Journal of Business in 1978 (vol. 51, pp. 621–651), five years after Black and Scholes. Their result: the price of a claim paying $1 if the underlying finishes between two given levels follows from the second partial derivative of the call pricing function with respect to strike.
The intuition is a butterfly spread. Buy one call at K−h, sell two at K, buy one at K+h. That structure pays nothing unless the stock lands near K. Shrink h and scale the position by 1/h², and the payoff converges on a spike at K, so its cost converges on the discounted probability of finishing there. Run that at every strike and you have the whole distribution the market is pricing, without assuming any model for it.
Written for puts, which is the side a put seller is on:
P(S_T < K) = e^(rT) × ∂P/∂K
The chance of finishing below your strike is the rate at which put prices rise as you step up the strike ladder, compounded forward to expiry. The density is the second derivative. The cumulative probability is the first. We only need the first. Differentiating twice amplifies quote noise far more than differentiating once.
Why the volatility skew after 1987 matters here
For the years after Black–Scholes, S&P 500 implied volatilities sat relatively flat across strikes, and a single-volatility model described the strike dimension reasonably well. That changed with the October 1987 crash. Since then, index options have shown a persistent negative relationship between implied volatility and strike: out-of-the-money puts trade at higher implied volatilities than out-of-the-money calls. Mark Rubinstein documented the pattern and its post-crash time variation in "Implied Binomial Trees" (Journal of Finance, 1994), fitting observed prices exactly rather than imposing a functional form on volatility.
That skew is why the method matters to anyone selling puts. Once implied volatility varies by strike, there is no longer "the" volatility for a name, and a probability computed from the at-the-money figure describes a strike you did not sell. The distribution the market is actually pricing has a fatter left tail than a single-volatility model produces, and Breeden–Litzenberger estimates that distribution from the prices instead of assuming it.
What makes it hard in practice
The theory assumes a continuum of strikes and exact prices. Real chains offer neither.
- Strikes are discrete, so the derivative has to be estimated across gaps that are wide on low-priced names.
- Quotes carry bid–ask spread, and differentiating divides by the strike step, so spread noise is amplified rather than averaged away. This is the reason the standard approach fits and smooths in implied-volatility space, where the curve is genuinely smooth, then differentiates the fitted result instead of differentiating raw prices.
- The wings are unobservable. Beyond the listed strikes the distribution is extrapolation, so any figure quoted out there is a modelling choice rather than a measurement.
- The result can be inadmissible. A fitted curve can imply a negative density or a cumulative probability that decreases as the strike rises, both of which are arbitrage violations. That is useful, because it gives you a test: an assignment probability derived this way can be checked against no-arbitrage and refused when it fails. A single-volatility number offers no such check.
What "risk-neutral" does and does not mean
This is the risk-neutral distribution, and it is not a forecast. It is the distribution implied by prices, and prices embed a variance risk premium: buyers pay more for downside protection than realised frequencies alone would justify, which is the same premium a put seller is collecting.
So a risk-neutral probability of assignment is not a prediction that assignment happens that often. It is what the market is charging for the event. For a seller that is arguably the more useful of the two, because it is priced in the same units as the premium you are being paid. It is not a claim about what the stock will do.
What it has shown so far
Measured on real chains:
- Where the density validates, adjacent rungs on the same expiry disagree about which strike is likelier to be assigned zero times out of 217. This is an internal consistency check rather than a claim about accuracy: it says the estimator does not contradict itself, not that its probabilities are right. The current estimator disagrees with itself on 18.7% of comparable pairs. That consistency is structural. Every rung on an expiry is read off one distribution.
- Where it validates, it mostly confirms the existing number, landing within a few percent on names like GOOGL, NVDA and AMZN.
- Steep index smiles, SPY among them, do not validate at all under the current fit. Those names stay on the existing estimator. SPY is one of the names the 0.25 ceiling was put in place for, so the ceiling will not come off for everything at once.
One measurement caveat: option quotes pulled outside US market hours are largely one-sided, so any coverage statistic gathered overnight measures the hour rather than the method.
None of this is advice about what you should sell. It is a description of how one screener arrives at a depth, what it got wrong when the score was the only input, and what is still unfinished. The numbers here come from a specific universe on a specific date, and the rules encode one particular set of opinions about which companies are worth owning at a discount. Yours may reasonably differ, which is why every rung stays on screen.
If you want to see what depth your own watchlist gets, and why, the screener is here.
Common questions
- What delta should I sell for cash-secured puts?
- There is no single answer that survives contact with a real watchlist, which is the point of this post. A 0.30-delta put on a broad index fund and a 0.30-delta put on a cyclical trading at peak earnings are the same number describing two very different situations. Depth is better treated as a question about the company: how far the strike sits below spot, whether earnings land before expiry, and whether you would be content owning the shares if assigned. In our universe of 301 names, only 13 clear the bar for the 0.30 rung, and 197 are held at 0.10.
- Is a higher delta put riskier?
- It carries a higher chance of assignment, but assignment is not itself the risk if you wanted the shares at that price. The risk that matters is being assigned on a company that keeps falling, which is a question about the business rather than about the Greek. That distinction is why a delta cap based on the underlying's characteristics does more work than a single delta applied across a watchlist. A 0.30-delta put pays roughly three times the premium of a 0.10-delta put on the same name and expiry, and that premium is compensation for a real difference in outcomes.
- Why does a premium-weighted score always choose the deepest strike?
- Because premium rises faster with depth than most risk terms fall. Measured across our universe on 2026-08-19, an uncapped score that weighed annualised premium against a risk term sent 80% of names to the 0.25-0.30 range regardless of what the company was, with the premium leg outvoting the risk leg roughly four to one. A scoring function alone cannot express a rule like 'shallow on a peak cyclical, deep on a compounder', because the score has no way to know that the two deserve different treatment. That requires a separate gate.
- What is the Breeden-Litzenberger formula?
- Breeden and Litzenberger showed in 1978 that the market's own distribution of where a stock finishes is recoverable from option prices across strikes. The second derivative of the call price with respect to strike gives the discounted risk-neutral density, and the first derivative gives the cumulative probability. For puts the useful form is P(S_T < K) = e^(rT) x dP/dK: the chance of finishing below a strike is the rate at which put prices rise as you step up the strike ladder, compounded to expiry. The intuition is a butterfly spread, which pays out only if the stock lands near one strike, so its cost is the discounted probability of landing there.
- What is a risk-neutral density and is it a forecast?
- It is the distribution of outcomes implied by option prices, and it is not a forecast. Prices embed a variance risk premium, meaning buyers pay more for downside protection than realised frequencies alone would justify, which is the same premium a put seller collects. So a risk-neutral probability of assignment is what the market charges for that event rather than a prediction that it happens that often. For a seller it is arguably the more useful number, because it is quoted in the same units as the premium being received.
- Does delta equal the probability of assignment?
- No, and the gap matters more as strikes get deeper. Delta approximates the probability an option finishes in the money, but the correct risk-neutral figure is N(-d2), which sits above the absolute value of a put's delta. Once a volatility smile is present the picture changes again, because the implied volatility at the strike differs from the at-the-money figure. On our 0.30 rung the chance of assignment prices above 30% for most names, with a median of 0.3265, which is why choosing a rung by its delta label and choosing it by its assignment probability give different answers.
Read next
- Technical Thoughts
Your Option Book Is a Knapsack Problem (The Hard Kind)
Allocating capital across option positions makes portfolio optimization a knapsack problem, of the multi-dimensional, integer, class-constrained kind that has no efficient exact solution. Here is what our optimizer gives up to answer it anyway.
- Technical Thoughts
A Mechanical Way to Pick Which Stocks to Wheel
Most wheel candidate lists are habit, not analysis. Here's what happened when I made the selection mechanical — scored on diversification, not on premium.
- Technical Thoughts
Wheeling a Toppy Market — and a Bottomy One: What Actually Changes
When the market feels toppy, the danger isn't the premium — it's complacency. When it feels bottomy, the premium is fear. Here's what a wheeler changes in each, and what to leave alone.