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.
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.
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".
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.
| priority | why |
|---|---|
| 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. |
| notional | vs a traditional plan | vs a Roth |
|---|---|---|
| 25% | 55 years | 38 years |
| 40% | 33 years | 19 years |
| 65% | 20 years | 5 years |
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.
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.
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.
| 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 |
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.
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.
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.
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.