Research

Selling options against an S&P 500 index fund

7,537 cycles, 1996 to 2026. The put side, three ways of running it, the call side, and the pricing method under all of them.

The overlay sells one at-the-money put a month against a portfolio you already hold, buys it back at half its maximum profit, and resizes off whatever the account is worth that day. Run across every start day in the sample, that is 7,537 overlapping cycles.

At 25% of notionalFigure
Index alone, annual growth10.2%
With the overlay11.5%
Deepest drawdown, index alone−55.2%
Deepest drawdown, with the overlay−58.3%
Cycles that lost money13%
Worst single cycle, as a multiple of its premium20.3×
Premium retained per dollar sold26¢

The distribution is the finding, not the average. Only 13% of the sample ended in the red, which sounds comfortable until you look at the tail: a single cycle in it gave back 20.3 multiples of the credit it opened with. Nothing in the middle of that distribution warns you about its edge, which is why every sizing decision on this site is made against the edge.

26 cents is a number about one specific rule. It counts what survived to be kept out of each dollar of credit, under the close-at-half rule this backtest runs on and the tool measures you against. Running to expiry instead returns more, on 402 non-overlapping windows and therefore on a different sample as well as a different rule. Putting that larger figure beside settings nobody was running would describe a strategy this study never simulated.

The survivable range is 25 to 40 percent

Because the shares you already hold are charged margin of their own.

It is tempting to charge margin on the short put alone and treat the long book as free. It is not free: a typical broker requires 25% maintenance on the shares you hold, and that book is usually the larger position by some distance. Counting it is what puts the range at 25 to 40 percent, what leaves 65% as the largest size in the scan that survived, and what turns 100% notional from something that survives into something that takes a margin call on 2020-03-16.

This matters more than the numbers suggest. A margin call is not simply a deeper drawdown: the broker sells at the worst moment, and the account never participates in the recovery that follows. What actually goes wrong covers the mechanism.

NotionalWorst cushionOutcome
25%56%survived
50%32%survived
77%−0.3%called 2020-03-16
100%−37%called 2020-03-12

Every worst moment in that table falls on 2020-03-16, at every size. A 33-year sample containing one 2008 is not a large sample of crises.

Three ways to run the same position

Monthly, rolling continuously, or laddered across several rungs.

The strategy so far is one put a month, closed at half its maximum profit, then a wait until the next cycle. That wait is doing nothing, which invites two obvious questions: why not sell the next put immediately, and why open the whole position on one day at all.

Doing it this wayGrowth addedDeepest fallSharpeTradesStart-date luck removed
Once a month, then waitthe baseline every other figure on this site is measured on+1.23 pts−58.4%0.615359—
Roll straight back ina new put the same session the old one closes+2.13 pts−61.9%0.62471290%
Laddered, six rungsthe same notional opened in six pieces across the cycle+1.23 pts−58.4%0.6172,15176%

Rolling straight back in wins on every column in that table. It adds 0.91 points of growth for 3.46 points of extra drawdown, its Sharpe is indistinguishable rather than worse, and it removes more of the start-date luck than laddering does.

What cost does to it

Rolling trades about twice as often, so the obvious objection is that it pays the spread twice as often. Twice the trades at the same cost per trade sounds like it should settle the question by arithmetic alone.

A short straddle is the wrong thing to reason from. There the premium is the entire return, so a proportional haircut takes all of it. Here the return is mostly index exposure with premium as an increment on top, and the same haircut bites far less. Trade count alone does not carry the result across, so it is swept, one run per level:

Round-trip cost, as a share of premium0%0.5%1%2%4%
Once a month+1.23+1.19+1.16+1.09+0.96
Rolling+2.13+2.07+2.01+1.89+1.64
Laddered+1.23+1.20+1.17+1.10+0.97

At 2% rolling nets +1.89 points, and it keeps beating the monthly version until a round-trip cost of about 16% of premium. Its own edge does not reach zero until 17%, against 19% for monthly. Real round-trip costs on liquid index options are a few percent. Cost is not what rules rolling out.

What should still give you pause is the model, not the friction. The backtest hands every entry a contract exactly 30 days out on any session it likes. Real chains list monthly expiries 28 to 35 days apart.

The monthly version re-enters on a fixed grid and would meet roughly the same chain each cycle; rolling re-enters on whatever day its target happened to hit, so in practice it would repeatedly take the wrong tenor or wait, and waiting is the one thing it is defined by not doing. Its figures are an upper bound, and by an amount this backtest cannot measure.

Laddering is the one that changes something real without that caveat. Opening the same notional in pieces across the cycle changes neither the return nor the drawdown: both move by less than a hundredth of a point across every size tested. It changes one thing, which is how much your result depends on the day you happened to start. Two rungs removes 28% of that, six removes 76%, and after six the curve is flat.

Note what that is not. It is not a smoother ride: the year-to-year variation of returns is unchanged, and the drawdown does not shrink. Dispersion is worth being exact about here, because the only thing that falls is dispersion across start dates, which is easy to read as a shallower fall and is not one. Nor does it take six rungs to get: two remove more than a third of it.

All three measured at 25% notional, the same size every other figure here is quoted at, and averaged the same way over all 21 possible cycle start days.

Covered calls do not add return. They buy drawdown

The other side of the same trade, over the same thirty years.

The obvious question about a short-put overlay is whether the other side works too. It does not, and the way it fails is more useful than the failure.

Over the same 1996–2026 window, writing monthly calls against the shares and holding to expiry, no delta and no size beat simply holding the index. The best row gives up a hundredth of a point a year; the worst gives up four and a third. The loss grows with the delta and with how much of the book is written against, without exception:

call deltawrittenCAGR vs holdingworst drawdownassigned
0.15100%10.27%−0.10 pts −51.1%19%
0.20100%9.84%−0.52 pts −49.4%29%
0.30100%8.44%−1.92 pts −46.9%42%
0.50100%6.03%−4.33 pts −41.4%64%
holding the index10.36%— −55.2%—

That direction is not a quirk of this simulator. Cboe's own BXM index has underperformed the S&P 500 with dividends by 3.90 points a year over its published history, and the replication was calibrated against it before any of these figures were produced.

What the last column is buying is the point. Read the drawdown column instead of the return one and the same table says something else entirely: at the money, fully written, the worst fall goes from −55.2% to −41.4%. A covered call is not a yield instrument that happens to cap you. It is a drawdown instrument that happens to pay a premium, and it is the exact mirror of the put overlay, which buys return and pays for it in drawdown.

Friction is not what stops it. A round-trip cost of 4% of premium moves the worst row by 0.70 points and the best by 0.15. The put overlay's edge dies somewhere near a 17% cost; here there is no edge to kill. Premium is a small increment on a large share position, so a proportional haircut on premium barely registers.

Timing the write does not rescue it either

If writing every month loses to holding, the natural next question is whether writing only in the right months does not. Sell the call when volatility is rich, or when the trend is against you, and skip it otherwise. Ten rules were tested: VIX level, the volatility risk premium (VIX less the past month's realised volatility, in vol points), the 200-day average, RSI and twelve-month momentum, each in both directions, plus the VIX term structure on the shorter window it has. The two median rules compare against an expanding median of the signal's own history to that day, never a trailing window, so no early decision sees the future.

The first thing to know is what makes this question hard to answer honestly. A covered call costs you the capped upside, and writing no call costs nothing. So any rule that writes fewer calls beats writing always, automatically, with no skill involved. A rule that writes half the cycles and earns more has demonstrated arithmetic. The comparison that means something is against writing the same number of calls in different months.

So each rule is scored against its own mask rotated around the calendar, which keeps the count and the clustering exactly and destroys only the alignment with the market. All 358 rotations are run rather than sampled. The percentile below is where the real rule sits among them. Each rule is also re-run on the two halves of the window separately, against each half's own always-write baseline, because a signal that only worked in one half is not a signal.

Every row below is the same call. A 0.15 delta, written on the full share count, held to expiry, American exercise, rolled on the third Friday. Only the months it is written in change. A CAGR here is not comparable with one from a different delta, which is why the sweep further up this page varies that parameter on its own.

Read the last three columns together. They are the same measurement, in points against writing every cycle, over the whole window and then over each half. A rule that earned its full-period figure steadily shows three numbers of a similar size. A rule that shows nothing in the first half and a lot in the second has not found a way to pick months; it has found that the second half had no drawdown that failed to reverse quickly, which is a fact about 2011 to 2026 and not a rule you can run forward.

write whenwritesCAGR worst drawdownvs rotatedwhole period 1996–20112011–2026
holding the index0%10.36%−55.2%————
every cycle100%10.27%−51.1%————
VIX above its running median52%10.51%−51.3%69th+0.24+0.14+0.34
VIX below48%10.12%−55.1%31st−0.14−1.10+0.89
VRP above its running median48%10.71%−54.0%92nd+0.44−0.05+0.95
VRP below52%9.92%−52.4%8th−0.34−0.91+0.28
above the 200-day average75%10.76%−54.6%93rd+0.50−0.30+1.34
below it25%9.86%−51.8%7th−0.40−0.66−0.11
RSI(14) at or above 5066%10.96%−54.5%99th+0.70−0.04+1.47
RSI below 5034%9.67%−51.9%1st−0.60−0.92−0.23
12-month return positive79%10.01%−54.6%18th−0.26−1.15+0.69
12-month return negative21%10.62%−51.8%82nd+0.35+0.20+0.54

Half-sample columns are CAGR points against writing every cycle in that half, where always-write returned 7.41% and then 13.15%.

Read the drawdown column and most of the table collapses. Every rule that beats writing always on return has a drawdown near the index's own −55.2%, not the −51.1% that writing always produces. They are not finding richer premium. They are standing aside during the falls the call was there to cushion, which raises the return by exactly the mechanism that removes the protection. If the call is a drawdown instrument, a rule that spends the drawdown to buy back the return has sold the thing you came for.

Then the split takes the rest. The strongest rule in the table, RSI at or above 50, sits at the 99th percentile of its own rotations and is worth −0.04 points in the first half and +1.47 in the second. Above the 200-day average is the same story, −0.30 then +1.34.

These are three near-duplicate ways of saying "do not write while the market is below its recent range", and what they actually found is that 2011 to 2026 had no drawdown that failed to reverse quickly. That is a fact about the second half of the sample, not a rule.

One rule is not like the others, and it still is not enough. Writing only when VIX is above its own running median is the only rule positive in both halves, +0.14 and +0.34, and the only one that keeps the drawdown benefit: −51.3% against always-write's −51.1%. It also has a mechanism, which can be checked without running the strategy at all:

cycle opened withcyclespremium index move over the cyclepremium kept
VIX above its running median186 0.371% of spot+1.11%+0.02
VIX below1730.203% of spot+0.54% −0.24

At low volatility you are paid roughly half as much, the index still rises roughly half as much, and the call gives back about a quarter of the premium. That is where the money goes. Skipping those cycles is worth about 0.25 points a year, which is what the simulation shows.

And it is still not significant. Against its own rotations that rule sits at the 69th percentile on return, which is to say indistinguishable from pointing the same mask at a different stretch of history. Ten rules on 359 cycles will produce a 99th percentile whatever is true; this is the one with the story and the consistency, and thirty years of monthly cycles cannot separate it from noise.

The ceiling is the real answer. Suppose it is real and it delivers its full 0.25 points. Writing always trails holding by 0.10, so the timed version lands at 10.51% against holding's 10.36%: a seventh of a point, in exchange for a capped upside, a tax event several times a year and a rule that has to be right. Timing does not turn a covered call into a return strategy. It is still a drawdown instrument, and the honest way to use it is the one this page already describes.

What could not be tested, and why that is not an oversight. Index P/E and CAPE are the obvious absences. Both are valuation levels that cross their own median once or twice in thirty years, so as a regime switch they are nearly the same variable as "is it after 2013", with one or two effective degrees of freedom. That is the axis the trend rules already fail on, and 359 cycles cannot separate the two.

VIX3M begins in 2006, so the term structure was run on its own shorter window and against its own baseline: writing in contango returns 11.72% against always-write's 11.34% over those twenty years, at the 95th percentile of its rotations, while writing 92% of cycles and giving up two drawdown points. It is the same shape as the rest.

Put the two together and the call pays for the put's drawdown

If one leg buys return with drawdown and the other buys drawdown with return, the combination is worth measuring rather than assuming. It was measured:

positionCAGRvs holding worst drawdownvs holdingSharpe
holding the index10.36%— −55.2%—0.609
put overlay at 25%11.55%+1.18 pts −59.2%−3.98 pts0.617
0.15 delta call, fully written10.27% −0.10 pts−51.1%+4.05 pts 0.642
both together11.46% +1.10 pts−55.5% −0.27 pts0.644

The two legs are not run on the same rule, and the difference is easy to miss. Both are opened on the same day, once a month, on the third Friday. The put is bought back when it has made half of its maximum profit and then waits for the next month, which is what every put figure on this site is measured on. The call is held to expiry.

That is deliberate rather than an oversight. Buying a short call back at half its maximum profit means buying it back after the market has fallen, which hands you back the upside you just sold and turns the position into a different strategy. The cap is the whole cost of a covered call, and the cap only bites at expiry. BXM, the Cboe index this call is calibrated against, holds to expiry too, so measuring it any other way would break the anchor.

So a month of the pair is: open both, close the put early if it gets there, let the call run to the third Friday. If you write calls on a faster cadence than that, or close them early, none of the figures below describe what you are doing.

The call gives back 93% of the put's drawdown cost for 7% of its return. The put alone earns 1.18 points and pays 3.98 drawdown points for them. Adding the call costs 0.09 of those points and recovers 3.71 of these, landing at −55.5% against holding's −55.2%. That is the put overlay's return at the index's own drawdown, and it is the best risk-adjusted row in the study.

It is not "covered calls add return". They subtract at every delta, and the combination earns less than the put alone. The call is a drawdown instrument being paid for out of the put's return. Going further out of the money does not improve it either: at 0.30 delta the same combination gives up 0.72 points a year against holding.

What is not measured, and why none of this is on the tool yet

Assignment, and the tax it forces. The 0.15 delta call is assigned in 19% of cycles and in 97% of calendar years, and at a 0.30 delta in 42% of cycles and every year without exception. Every figure above is before tax. Somebody holding an index fund with a large unrealised gain who is assigned realises that gain, at once, in that tax year: the covered-call equivalent of a margin call, an outcome the strategy's own success forces on you. No yield figure shows it and the returns above do not either.

An early-exercise rule has to test that the call is in the money. Comparing the coming dividend against the option's remaining time value is not enough on its own: on a cheap far-strike call the time value decays below the dividend while the contract is still worthless to exercise, because exercising it buys shares above the market price. Counting those as assignments overstates the rate, and at a 0.15 delta it overstates it by 99 contracts in 118.

No return moves either way, which is what makes it easy to miss. An out-of-the-money call settles at zero whether it is recorded as exercised or not, so the P&L is unaffected and nothing else on the page disagrees with it. The check is the shape of the series: assignment rises with the delta, 19% to 64%, because deeper in the money must be exercised more often. A count that is flat across the delta is a count that never looked at the strike.

Cash settlement, and the rule it does not get you out of

None of this is tax advice, and it was not written by a tax professional. It describes United States federal rules in general terms and applies them to nobody. Whether any of it touches your situation depends on facts this site never sees. Take it to somebody qualified before you act on it, and read the terms.

The obvious way out of the assignment problem is to write the call on something that cannot deliver shares. XSP is the Mini-S&P 500 index option: a tenth of SPX, the same notional as one SPY contract, European exercise, and cash settled. Nothing is ever delivered. It is also a Section 1256 contract, which is taxed 60% long-term and 40% short-term whatever the holding period, and marked to market at year end.

On the first question that works, and it works completely. A cash settled option cannot take your shares, so there is no sale of the stock, so the unrealised gain it carries is not realised. The event this whole section is about does not happen. What replaces it is a settlement in cash on the option itself and a year-end mark, which is a tax event of a different kind: smaller, annual, and not tied to the size of a position you may have held for twenty years.

On the second question it does not work, and the reason is worth understanding. Writing a call against stock you own creates what the code calls a straddle: two positions that offset each other. There is a specific exception for the ordinary case, the qualified covered call, and it is why writing SPY calls against SPY shares is normally untroubled. That exception is written for an option on the stock you hold. An index option is not an option on your shares, so the exception does not reach it.

The next question is whether the two are related enough to be a straddle at all, and there is a mechanical test for it. Treasury regulation 1.246-5 asks whether your holdings and the stocks behind the index position substantially overlap, and sets the line at 70% by value. SPY against the S&P 500 is not a marginal case. It is essentially total overlap, which is the entire point of owning it.

So the likely answer is that it is a straddle, and one with a complication. One leg is a Section 1256 contract and the other is not, which is its own category with its own elections. Losses on one side can be deferred while the other is still open, and the position stops being two things you can think about separately.

And there is a cost that runs the opposite way to the intuition. Section 246(c) stops the clock on a share's holding period for any period in which you have diminished your risk of loss by holding an offsetting position, and that clock is what decides whether a dividend is a qualified dividend taxed at the lower rate.

The exception to that rule is, again, the qualified covered call. An index option written against an ETF is not one, so a programme of index calls against SPY may cost you the qualified rate on SPY's dividends, turning them into ordinary income. On a large share position held for the dividends as well as the growth, that is not a footnote.

Which leaves both routes carrying something. Writing SPY calls against SPY shares fits the qualified covered call exception, keeps the dividend treatment, and can deliver your shares. Writing XSP calls against those shares can never deliver them, and gives up the exception that made the first route simple. Neither is free, and which one is worse depends entirely on the size of the unrealised gain you are protecting, how much of your return is dividends, and a bracket. Those are your numbers, not ours.

This is why none of it is in the tool. A calculator that told you what assignment costs would have to take a position on which of these applies to you, and that is a determination about a person rather than arithmetic on numbers somebody typed. The research can say what the rules are and where the fork is. It stops there deliberately.

Sources for the paragraphs above, so they can be checked rather than trusted: 26 U.S.C. § 1092 for straddles and the qualified covered call definition, 26 C.F.R. § 1.246-5 for the 70% substantial-overlap test, 26 U.S.C. § 246(c) for the holding-period suspension behind qualified dividends, Rev. Rul. 2002-66 on stock portfolios against index options, and Cboe on XSP for the contract's own terms.

Rolling instead of being assigned, and what it is actually worth

Every figure above is already the rolling path. The simulator never sells shares: at expiry it settles the short call at its intrinsic value and keeps the stock, which is what rolling is. The assignment percentages are how often you would face the decision, not a different set of returns.

The strike moves when it rolls. This is not rolling out at the same strike to defend a position. The expiring call settles at whatever it is worth, which realises its loss, and the next one is written fresh at the target delta measured from wherever the price now is. If the market has run and the call finished deep in the money, the new strike is higher, not the old one pushed out a month.

That is because, before tax, rolling and assignment are the same trade. Paying the option's intrinsic value and delivering shares worth more than the strike for the strike are one number. What genuinely differs is the tax, and the share round trip: delivery means the position leaves and has to be bought back.

0.15 delta callCAGRworst drawdown Sharpe
roll, re-covering on the next monthly expiry10.27% −51.1%0.642
roll, re-covering immediately after an early call 10.28%−51.1%0.642
assignment, 10bp share round trip10.02% −51.2%0.629
assignment, 25bp share round trip9.64% −51.3%0.609

Rolling is worth 0.25 to 1.36 points a year over delivering, depending on the delta and what the share round trip costs, and that is before any tax at all. At a 0.30 delta with a 25bp round trip the friction alone is larger than the whole strategy. Two commissions and a share spread on the entire position, two to five times a year, is not a rounding error.

Re-covering immediately after an early call, rather than waiting for the next monthly expiry, is worth 0.02 points at a 0.15 delta and 0.14 at a 0.30. The model otherwise leaves the book uncovered under 1% of sessions at the far strike and a real writer would not. At a 0.15 delta it costs nothing in drawdown to collect. On that strongest version the calls return 10.28% against holding's 10.36%, giving up a twelfth of a point for 4.1 drawdown points.

What rolling does not do is make the tax go away. It converts a realised gain on the shares into a realised loss on the option, which is a different amount in a different category, and it engages the qualified-covered-call and straddle rules, which can defer that loss and suspend the holding period on the shares underneath it. That needs a cost basis and a bracket to answer, which is arithmetic on numbers a reader would type rather than anything a backtest can settle. It is the open question in this study.

The equity leg is not costed. Assignment means shares going out and being bought back: two commissions and the share spread on the whole position, two to five times a year. The cost figures above are option costs and are the smaller half.

Strikes are continuous here. The delta target is hit exactly rather than rounded to a listed strike, so these are upper bounds on precision in the same way the continuous-rolling figures are.

All of which is why the calculator still sizes one thing: a monthly at-the-money short put. The covered-call figures are research, not a product, until the tax question has a measured answer.

Where the option prices come from

The method under every figure above, and the bug that stopped it reproducing itself.

There is no free record of what S&P 500 options actually traded at going back that far, so every contract in this backtest is priced from VIX with Black-Scholes. That introduces a bias, and the bias runs one way.

VIX is not the price of the option this strategy sells. It is a variance swap rate, computed across the whole strip of out-of-the-money strikes, and on an index with steep put skew it sits above at-the-money implied volatility. Pricing an at-the-money put at VIX therefore collects more premium than the market would have paid, on every cycle, for thirty-three years.

So the pricing is calibrated against a published index that actually ran the trade. Cboe's PUT, the S&P 500 PutWrite Index, sells one-month at-the-money SPX puts monthly, holds them to expiry and collateralises them fully with Treasury bills. Free daily history since 1996. It is the same option on the same schedule, and because it holds no shares at all it carries no equity exposure, so a gap between a replication of it and the published index is the option leg and almost nothing else.

Uncalibrated, a replication of PUT returned 12.50% a year against the index's 8.51%. Solving for the volatility that reproduces PUT gives 88.2% of VIX, which at a mean VIX of 20.2 implies at-the-money volatility of 17.8: a gap of 2.38 volatility points, the textbook size of the variance-swap convexity premium on this index. Every figure on this page is measured with that calibration applied, at entry and at mark.

One limitation is measured rather than suspected, and it runs the other way. This backtest has no listed expiry calendar: it opens a contract every 21 trading sessions, on a grid that drifts against the third-Friday schedule real options actually use.

On the same trade, PUT run on its own calendar falls −37.1% where this grid falls −35.0% averaged across every start day. Averaging recovers about half of it and no more. So the drawdown figures here are roughly two points shallower than a real expiry schedule would produce, and the honest reading of every one of them is that the true cost is slightly worse.

The backtest starts where PUT starts, so nothing is extrapolated. A calibration solved on one window and applied to a longer one carries an assumption across the difference. This one does not: both begin in August 1996 and end together, so every cycle measured here sits inside the window the pricing was checked on.

That costs three and a half years of history, which is a real price. It is worth paying because those years were doing very little work: they contain no crisis, and both of the events the drawdown figures actually rest on, 2008 and 2020, are comfortably inside the shorter window. The trade is a smaller sample for a number with no assumption inside it.

It is a calibration and not a measurement, so it is worth saying what it absorbs. PUT pays real bid/ask spreads and rolls on the third Friday rather than on a fixed grid of sessions, and this single factor is doing the work of those differences too. It absorbs a difference in the strike as well. PUT sells the listed strike closest to but not greater than the index, so it rounds down every month and is never in the money; this backtest writes a strike exactly at the spot price, which is on average a little above that.

A higher strike on a short put collects more and risks more, so these figures describe a marginally richer and marginally riskier contract than the index they are solved against. Its own replication now matches PUT's annual return to two decimal places and still runs about four points shallower on drawdown, which is roughly the size of what is left over. py putwrite.py in the research repository reproduces the whole comparison.

What the returns are measured on

Every growth figure on this site is a total return. The underlying series has dividends reinvested, so the baseline is not price appreciation, and it sits meaningfully above it. If you are holding a figure here against your own account, compare it with a total return rather than with what the share price did.

The edge over buy-and-hold is not flattered by that. Both sides of every comparison run on the same series, so the dividends are in both numbers and cancel in the difference. What they do change is the level each side starts from.

Cash never sits idle. In the covered-call study the premium collected, the dividends paid and anything left over from buying a contract back are all swept into the underlying at the next session's price, and the share count grows accordingly. The buy-and-hold benchmark is the same simulator with nothing written, so it sweeps the same way. The covered-call result is therefore not an artefact of premium being left in cash: it is reinvested, it compounds, and the strategy still gives up more in capped upside than the premium is worth.

The options themselves are priced off the price index, not the total-return one, and that is deliberate rather than an inconsistency. A contract does not pay its holder the dividend, so pricing one off a series that assumes reinvestment would put the forward too high. The shares compound with dividends and the contracts are priced without them, which is what happens in an account. data/run.json records all of this under data_source.

Which contract you write it on

Every figure on this site is measured on the S&P 500, and there are five ways to sell an option on it. They differ in one contract's size, in how they are taxed, and in what turns up in your account if one is exercised. None of that is a matter of opinion, so here it is.

This does not tell you which to pick. The two things that usually decide it, your broker's per-contract fee and how tight the chain is on the day, are things this page cannot see. What it can do is stop the tax treatment and the settlement being a surprise.

ContractSize vs SPYTaxExerciseSettles in
SPY1×Ordinary short-termAmerican100 shares
SPYM0.12×Ordinary short-termAmerican100 shares
XSP1×Section 1256, 60/40EuropeanCash
MES0.5×Section 1256, 60/40EuropeanCash
SPX10×Section 1256, 60/40EuropeanCash

Size is one contract as a multiple of one SPY contract, from the multiplier and the index level each one tracks. It is exact and does not depend on the price on any given day.

SPY

Ordinary short-term gains. American exercise, so early assignment is possible. But for a SHORT PUT the trigger is a deep in-the-money contract with almost no extrinsic value left, not an upcoming dividend. Dividends make early assignment of a put LESS likely, not more: exercising early forfeits the dividend. Physically settled, so you wake up long 100 shares per contract and your SPY position is suddenly oversized.

SPYM

Ordinary short-term gains, American exercise, physically settled in 100 SPYM shares. Same early-assignment rule as SPY: deep in the money with no extrinsic left is the trigger, not the dividend. One contract is about an eighth of a SPY contract, which makes it the finest notional adjustment available on an S&P 500 ETF. Verify the chain before you rely on it: SPYM is a very large fund whose options were thinly traded under its old name SPLG, and this tool cannot see current open interest. A big fund does not imply a liquid option chain, and the two come apart here. Pull up the chain and check the spread and the open interest before sizing anything real.

XSP

Section 1256: 60% long-term / 40% short-term regardless of holding period, which at most brackets is worth more than the bid/ask you give up. European exercise and cash settlement, so there is no assignment surprise and no share delivery.

MES

Section 1256 60/40, cash settled. Notional per contract is roughly half SPY's, which is the whole reason it is on this list: it is the only way a six-figure account can size below 50% notional without rounding to zero.

SPX

Section 1256 60/40, European, cash settled. One contract is ten SPY contracts: usable above roughly $1.5M, meaningless below it.

Running it yourself

Three steps, and Restrike does the arithmetic in each.

Size it

Enter what the account is worth and the share of it you want the contracts to cover. Restrike works out the contract count, the strike at the money and the credit, from the figures you enter and from nothing else. Open the sizing screen.

The put overlay screen: contract count, margin requirement and the
             market fall that would close the position
The consequence sits directly beneath the size: the requirement, the cushion, and how far the market can fall before your broker closes it for you.

Stress it

See what the worst month on record does to your cushion before you are in it, not after. The shock test runs your position against a −32.8% fall and shows how far the market can move before your broker steps in, so you can pick a size you are comfortable holding through it.

Repeat it

Buy it back, re-strike at the money, resize. The expiry calendar tells you what is coming and the position log keeps an honest scorecard, with open positions kept separate because they are still real money and have not settled anything yet.

What it is written on


What this is

The contracts are always on the S&P 500. Your portfolio does not have to be. Every contract this tool sizes is written on that one index and every figure on this site is measured on it, but what you hold against it is yours: index funds, individual stocks, or a mix. The tool works out how much faster or slower your book moves than the index you are short, and every cushion figure follows from that. A book that falls harder than the index is simply one that can carry less.

You can run the other side of it, or both. The tool sizes and tracks a covered call against shares you already hold, with its own scorecard, its own assignment alert and its own place in the log. Nothing about that is a recommendation: the research measured covered calls over the same thirty years and every delta and every size gave up return against simply holding the index.

What they bought was a shallower worst fall. That is a real thing to want and it is a poor way to make money, and both halves are on the research page with the drawdown printed beside every return.

The one-index limit is deliberate, and it is also load-bearing. The conversion between SPY, SPYM, XSP, MES and SPX works because they all track the same index, which is exactly why a fund tracking a different one must never be treated the same way. More on both of those.

← Every study  ·  Open the tracker →