Restrike

Buy it back, re-strike at the money, resize. Every month. Terms
Detail

Account

Equity
Blended beta
Open notional
Effective leverage
Requirement

This cycle

Contract
Credit collected
Mark now
Break-even at expiry
Distance to the strike

Running P/L

Overlay contribution
Premium P/L, all closed cycles
Cycles closed · won
Cents kept per premium dollar
Buy and hold, same span
Buy and hold + overlay
Annualised contribution
Span
0 backtest +2.0%/yr +5%/yr
How this tool is meant to be used

It is a monthly loop with one number in it. Roughly every four weeks: check the window is open, take the contract count off your current equity, sell it, then wait for the 50% target — which historically arrives after about nine trading days, not thirty.

Most of the time the answer really is "sell 3 SPYM puts." That is the product, not a shortcoming of it. What the tool is actually protecting you from is narrower than it looks:

Sizing drift. The count comes off current equity every cycle. Accounts grow, people keep selling the same number of contracts, and leverage creeps up without a decision ever being made. Recomputing is the whole discipline.

Granularity. One SPY contract is 77% of a $100k account. Which instrument, and how many, is genuinely not obvious, and getting it wrong is not a rounding error.

The ceiling. Run the Shock test once, find the notional that survives a 22% gap with the requirement doubled, then never think about it again.

Quitting during a normal bad run. One cycle in eight loses money. The log scores each loss against 1,095 losing cycles on record so a bad month reads as ordinary instead of as evidence.

Position, Margin, Shock test and Notes are setup and justification. You touch them when something changes, not monthly.

Inputs

Size the position 30%
0 = backtest mode
Notes on these inputs
Inputs persist in this browser. ATM implied vol is the mid IV of the put you are actually selling — take it from the chain, not from VIX, unless the expiry happens to sit 30 days out. Your broker's chain shows both.

The order

Sell
Credit received
Premium per share
Given up to the spread
Contracts
Notional
Actual vs target notional
Cash needed if assigned
Breakeven at expiry
Close-at-50% target (debit)

What you are actually levered

Effective leverage
Put delta (per share)
Added SPY-equivalent exposure
Total SPY-equivalent exposure
Why notional isn't leverage
Notional overstates leverage. An at-the-money put carries roughly half a share of delta, so a position at 30% notional adds about of SPY-equivalent exposure, not 30%. That gap is why the notional number and the leverage number are both shown here — people argue about the wrong one.

Premium in context

Credit as % of equity
Annualized, if repeated every cycle
Cycles per year at this DTE
Implied 1-sigma move over the hold
Assignment probability (rough, N(-d2))
What this number isn't
The annualized figure is gross premium if every cycle expired worthless. It is not a return forecast and you will not keep it.

Backtested at these settings, the 50% profit target hit after a median of 9 trading days, and only 17% of cycles ran the full term. Plan around being flat well before expiry rather than around the expiry date — and expect the next contract to be available sooner than the calendar suggests.

Holdings

About beta
Shares and price are yours to type; beta is a starting estimate you should overwrite if you have a better one. It is not decoration — it is what converts "SPY falls 22%" into "your book falls 25%", and every margin number on the other tabs runs on it.

Account equity

Total market value
add a holding to drive equity from here
Holdings
Cash / non-equity
At risk in the market
Open overlay P/L
Equity including the put

What your book actually does

Blended beta to SPY
If SPY falls 10%, your book falls
If SPY gaps 22%, your book falls
What that does to every other tab

Cushion right now

Equity minus requirement, as % of equity
Equity
Maintenance requirement
Excess
The margin formula
Short put modelled as the Cboe strategy-based rule: mark + max(pct×underlying − OTM amount, 10%×strike), where pct is 20% for equity and ETF options and 15% for broad-based index options. Added to that is the maintenance requirement on the long SPY shares, which is the larger of the two and the one most calculators leave out. Portfolio margin, if you have it, is risk-based and much lower — this models the strategy-based case.

Open position check

Mark to close
Intrinsic
Extrinsic remaining
Open P/L
Early assignment risk

Where it breaks

Margin call at roughly
Worst 30-day fall, 1990–2024-32.8%
Your break vs that
How the break point is solved
Falling price and rising vol both raise the requirement, so the break point is solved with the put re-marked at a higher IV as SPY drops. Set the response to zero to see the price-only answer — it will look far safer than it is.

Overnight shock test

Every size, every cost

Reading this table
Each cell is your cushion the morning after, at that notional and that maintenance requirement. Actual is what you can really hold once contracts round to whole numbers — when several target rows collapse to the same actual, that is the granularity problem, not a bug. CALLED means equity is below the requirement and the broker liquidates at the worst possible moment. The default is a 22% overnight gap with maintenance sweeping to 40% — deliberately unfair, worse than October 1987, and the point is that a size which survives it is a size you can stop thinking about.

This is a point-in-time shock, not a historical path. The path version — rolling the whole strategy day by day through 1990–2024 with a daily margin check — is overlay.py --stress, and it is the one that produced the 25–40% survivable band. Use this screen for "what if tonight", use that one for "what size do I run".
Fill tax-advantaged space first. A dollar that can go into a 401(k) or IRA is worth more there than here, and it is not close. Everything below applies only to money with nowhere better to go.

What the edge is worth over time

Why a 401(k) beats this, and by how much

An employer match is an instant 50% on the money against roughly two points a year from the overlay — about 21× bigger, guaranteed, on day one.

Even with no match, a traditional plan's deduction lets you invest ~47% more up front. At 25–40% notional this strategy takes 33 to 55 years to catch it. A Roth is closer and still wins for 19 to 38 years.

You also cannot run this inside those accounts. Retirement accounts are not permitted to borrow, so any options trade requiring margin is prohibited. Cash-secured puts are allowed, but that means holding cash instead of shares — a different strategy, and historically a worse one.

Two honest exceptions: money you will need before 59½, and money with no tax-advantaged home left. The second case is what this tool is for.

The order your money should go in

prioritywhy
1. 401(k) to the full match An instant 50% on the money. Nothing competes.
2. Max the tax-advantaged space Traditional or Roth, per your bracket now versus later.
3. A conservative bridge, if retiring early Money you spend within 10 years does not belong in a strategy with a −58% drawdown.
4. This strategy Long-horizon taxable money with nowhere better to go.

Years for this to catch tax-advantaged space

notionalvs a traditional planvs a Roth
25%55 years38 years
40%33 years19 years
65%20 years5 years
Same take-home pay given up either way. At a 32% marginal rate a pre-tax plan lets you contribute $14,706 for every $10,000 of take-home, a 47% head start that compounds. 2026 space per person under 50: $24,500 401(k) + $7,500 IRA + $4,400 HSA, and up to $72,000 total into a 401(k) if your plan allows after-tax contributions.
What this is and is not

This is arithmetic on a backtested figure, not a forecast. It takes the index return and the overlay edge measured over 1993–2026 and compounds them forward. Neither number is a prediction, and the future does not have to resemble a 34-year sample that contained exactly one 2008.

The edge is read off your notional using the measured curve: about 0.6 points at 10% notional, 1.5 at 25%, 2.4 at 40%, 3.8 at 65%. It grows roughly in line with size, which is the honest way of saying most of it is leverage rather than skill.

The drawdown column is not decoration. Every extra point of edge in this table was bought with a deeper hole and a shorter distance to a margin call. A projection that shows only the upside of leverage is the oldest way to mislead someone with a spreadsheet.

What is left out: commissions, the fills you actually get, dividends reinvested imperfectly, any year you skip cycles, and the possibility that you stop after a bad month. The last one is the largest and the least modellable.

Expiries

Don't chase an exact DTE
Highlighted row is the expiry closest to your target DTE. Open window is target ±5 days, and anything inside it is fine.

Do not chase an exact DTE. Monthly expiries are 28–35 days apart, so an exact 30-day entry usually does not exist. The backtest cannot resolve 28 from 30 days apart at all, and the median cycle closes after about 13 calendar days anyway, so entry precision is washed out long before expiry. Sell the monthly nearest your target, in whatever part of the window you happen to be looking.

Market holidays are not modelled; when a Friday is a holiday the expiry moves to Thursday. Check the chain.

Add a closed cycle

 
 
 
The two underlying prices only drive the benchmark column. They do not affect P/L — leave them blank if you do not have them.

Scorecard

Overlay P/L
Cycles logged
Won / lost
Premium collected
Premium paid back
Cents kept per dollar 
Overlay vs SPY alone
SPY over the same span
Overlay contribution
Worst single cycle
Span
Annualized contribution
backtest 28¢ 100¢
Log a cycle to see where it sits.
Reading the scorecard
Overlay contribution is premium P/L as a percent of the equity you had on at the time — the number that answers "is this worth doing at all". If it is negative over a long span, the honest move is to stop, and this column exists so that you find out rather than assume. A dozen cycles is not a verdict; the backtest lost money in two of three bear years and still finished ahead.

Cycles

The whole thing in one line: you sell crash insurance once a month on an index you already own. It has paid about 1–2 points a year and costs you 6 extra points of drawdown. Both halves are the deal — there is no version where you get the first without the second.
Implied beat realized
83%
of 8,424 cycles since 1993
Edge, after costs
+1.5 to 2.5
points of annual return
Worst drawdown
−58%
against −52% for the index alone
Cycles that lose
13%
one or two a year, and they are large

Start here

What the strategy is

You own an S&P 500 index fund. Once a month you also sell a put on that index — a contract that pays someone else if the market falls below a set price before a set date. They pay you up front for it. If the market drifts sideways or up, which it usually does, you keep that money. If it falls hard, you pay out more than you were paid.

That is the whole thing. You are selling crash insurance to people who want it, on an index you already own. The contract runs about a month, you buy it back when it has made half its money, and you sell a fresh one at the current price.

Why there is anything to collect

Option prices are set by implied volatility — the market's estimate of how much things will move. Over 34 years that estimate came in higher than what actually happened 83% of the time, by an average of 3.7 volatility points. It was positive in 33 of 34 years; 2008 was the exception.

People overpay for crash protection for the same reason they overpay for every other kind of insurance: being wrong about it is not survivable, so they pay a premium to not find out. Selling into that gap is the entire edge. It is well documented, it is not a secret, and it is not large.

What it adds and what it costs

it adds
Roughly 1.5 to 2.5 points of annual return after costs and tax
At 25–30% notional, about a point a year against holding the index alone in the same taxable account
it costs
Deeper drawdown: −58% against −52% for the index on its own
Lost money in two of the last three bear markets
13% of individual cycles lose — one or two a year
About 40% of the edge is leverage, not premium, and you can get leverage without options

Three things it is not

It is not a hedge. It loses money when the market falls. That is when the puts you sold pay out, and it happens at the same moment your shares are dropping. If you want protection, this is the opposite of it.

It is not income. The premium is not a dividend or a yield. It is payment for a risk you accepted, and roughly 28 cents of every dollar collected survived after the losing months were settled.

It is not timing. Every rule tested for when to sell — high VIX, an inverted volatility curve, a drawdown, price below the 200-day average — turned out to be noise once the results were adjusted for the fact that scary periods pay more premium anyway. There is no clever version of this.

Who should not run it

Anyone with unused 401(k) or IRA space, which beats this by a wide margin and cannot host it anyway. Anyone who would sell during a drawdown, because being forced or frightened out at the bottom is how this fails. Anyone who needs the money inside ten years. Anyone whose account is too small to size below 50% notional in a contract they can actually trade. And anyone who wants an exciting return, because one to two points a year is the honest number and no amount of optimisation moved it.

Checks and provenance

Pricing and margin math, re-checked against the backtest on every loadrunning…
This page re-implements the same formulas overlay.py used to produce every figure quoted here. On load it prices six reference contracts and four margin cases and compares them against the values that backtest produced. If that line is ever red, do not trust the numbers on the other tabs.
Where these defaults came from

The parameters this tool defaults to, and where they came from:

What the tool will not do. It will not tell you when to sell. Every regime filter tested — VIX above 25, VIX/VIX3M above 1.00, drawdown depth, price below the 200-day — failed once premium was normalized and the sample was split in half. Filtering turned out to be a clumsy way of trading smaller: gating on VIX > 25 at 30% notional lands in the same place as always-on at roughly 8%. If you want less risk, type a smaller notional.

A correction worth knowing about. Every cushion figure this project published before 2026-08-23 was optimistic, because the backtest charged margin on the short put and treated the long SPY book as free. It is not — 25% at a typical broker, and it is the larger position. Including it moved the safe band from 40–50% notional down to 25–40%, and turned 100% notional from "survives" into "called on 2008-10-10". The formula itself was also wrong in two smaller ways, both of which turned out to be worth well under a point. Set the long-maintenance field to 0 to see the old numbers.

What it cannot see. Your broker's actual requirement, your tax situation, assignment mechanics on the day, fractional contract granularity, or the fact that brokers raise requirements in exactly the week you need them not to. The shock test is the answer to that last one: assume they do, and size so it does not matter.

Where this sits in the order of operations. Below an employer match, below maxing a 401(k) or IRA, and below paying off anything expensive. The overlay is for taxable money that has nowhere better to go — and it cannot be run in a retirement account anyway, since those cannot borrow and any margin trade is prohibited there.

Honest expected edge, backtested, after costs and taxes: roughly 1.5 to 2.5 points of CAGR over holding SPY alone — and around 40% of that is the leverage, not the premium. Hypothetical results, past data, no promises.