Monday after monthly expiry: calmer or wilder?
Does the Monday after monthly options expiry have a bigger or smaller range than other Mondays? A test on SPY and QQQ, 2018–2024, and how large a difference it could have missed.
In plain words: nobody placed a trade and no trade is simulated on this page. It measures recorded prices, so a result here is not a trading result and no profit is implied.
In this article 8 sections
The short answer
Neither showed up. Across nearly seven years, none of 12 tests on SPY and QQQ found a bigger or smaller range on the Monday after monthly options expiry than on other Mondays, or on the expiry Friday itself. A range is a day’s high minus its low.
That is not proof of no difference. With one Monday a month, the Monday tests could only have seen a change of about a fifth to two-fifths, and the Friday tests about an eighth to a quarter, depending on how strictly you allow for running many tests. A smaller change could be there and unseen.
This tests the calendar alone, not walls or flips, and range shows how far price travelled, not which way. SPY and QQQ options began expiring on other weekdays inside these years, so it may not describe today’s Mondays.
What to do with this
- Plan the Monday after monthly expiry the way you plan any other Monday, reading that day’s expected move on your Prism chart as you would on any other day. On range, this study gives no reason to treat it differently.
- Be slow to believe “expiry Monday is always wild” or “always quiet”. Seven years of monthly Mondays cannot rule out a change of roughly a fifth, so ask any such claim how many months it counted and what interval it gave.
- Count the events under any backtest or hold-rate claim about that Monday. These years held at most 70 monthly expiries with a Monday after that could be used, so a result resting on a handful of them is a story, not a measurement.
- If you keep the log below, treat it as a note, not a rule: 20 months could only show a gap of about 51.2% wilder, and 100 months about 20.3%. Even a real gap would only say how far price tends to travel that day, not which way.
Range against its controls, by test
SPY and QQQ, 2018–2024, one pair per expiry month
The prices are recorded history. The expected move is rebuilt after the fact from each prior session’s recorded at-the-money implied volatility, so it can differ from the figure a live Prism by GEXfreak chart drew that morning. No trades are involved.
SPY
QQQ
17 other names: context only, earnings not excluded
Dot: the effect. Line: its 95% interval. Dashed band: the smallest detectable shift, the smallest real difference this test would have flagged four times in five (each test on its own). A line that crosses zero did not detect a difference; a wide band means a small one could have been missed.
By calendar year: SPY vs next two Mondays, expected move
Descriptive only: 6 to 9 months a year, never a finding. Under each year: months above their controls out of the months in that year.
Table, method and data source
| Test | Months | Effect | 95% interval | Months above / below | Smallest detectable shift | Call |
|---|---|---|---|---|---|---|
| SPY | ||||||
| vs next two Mondays, expected move | 55 | +0.4% | −13.9% to +15.7% | 23 / 32 | 23.6% | not detected |
| vs next two Mondays, ATR14 | 55 | 0.0% | −15.7% to +18.4% | 28 / 27 | 27.6% | not detected |
| vs same-month Mondays, expected move | 64 | +5.9% | −8.8% to +22.1% | 32 / 32 | 23.1% | not detected |
| vs same-month Mondays, ATR14 | 64 | +5.0% | −12.8% to +27.4% | 30 / 34 | 31.2% | not detected |
| Friday vs same-month Fridays, expected move | 74 | −3.9% | −12.2% to +5.4% | 32 / 42 | 14.0% | not detected |
| Friday vs same-month Fridays, ATR14 | 74 | −6.6% | −16.2% to +4.7% | 29 / 45 | 17.1% | not detected |
| QQQ | ||||||
| vs next two Mondays, expected move | 61 | −5.6% | −18.2% to +8.9% | 28 / 33 | 22.5% | not detected |
| vs next two Mondays, ATR14 | 61 | −4.6% | −18.4% to +10.7% | 30 / 31 | 24.4% | not detected |
| vs same-month Mondays, expected move | 69 | +1.9% | −10.9% to +16.0% | 36 / 33 | 20.7% | not detected |
| vs same-month Mondays, ATR14 | 69 | +0.2% | −13.6% to +15.3% | 37 / 32 | 23.0% | not detected |
| Friday vs same-month Fridays, expected move | 77 | −1.2% | −9.1% to +7.2% | 37 / 40 | 12.5% | not detected |
| Friday vs same-month Fridays, ATR14 | 77 | −4.6% | −13.1% to +4.5% | 35 / 42 | 14.1% | not detected |
| 17 other names (context only) | ||||||
| vs next two Mondays, expected move | 61 | −4.9% | −9.9% to +0.5% | 21 / 40 | 8.0% | not detected |
| vs next two Mondays, ATR14 | 61 | −3.8% | −10.5% to +3.1% | 25 / 36 | 10.6% | not detected |
| vs same-month Mondays, expected move | 69 | +0.9% | −3.9% to +6.0% | 34 / 35 | 7.3% | not detected |
| vs same-month Mondays, ATR14 | 69 | −0.3% | −6.4% to +6.2% | 32 / 37 | 9.4% | not detected |
| Friday vs same-month Fridays, expected move | 77 | −1.6% | −5.1% to +2.0% | 38 / 39 | 5.4% | not detected |
| Friday vs same-month Fridays, ATR14 | 77 | −2.4% | −6.5% to +1.9% | 37 / 40 | 6.4% | not detected |
More columns: middle month, adjusted smallest detectable shift, p-values
| Test | Middle month | Smallest detectable shift, adjusted | Sign-test p | Corrected p |
|---|---|---|---|---|
| SPY | ||||
| vs next two Mondays, expected move | −10.1% | 32.3% | 0.28 | 1.00 |
| vs next two Mondays, ATR14 | +2.2% | 38.0% | 1.00 | 1.00 |
| vs same-month Mondays, expected move | +3.6% | 31.6% | 1.00 | 1.00 |
| vs same-month Mondays, ATR14 | −2.5% | 43.3% | 0.71 | 1.00 |
| Friday vs same-month Fridays, expected move | −3.7% | 18.9% | 0.29 | 1.00 |
| Friday vs same-month Fridays, ATR14 | −6.6% | 23.3% | 0.08 | 0.98 |
| QQQ | ||||
| vs next two Mondays, expected move | −7.7% | 30.7% | 0.61 | 1.00 |
| vs next two Mondays, ATR14 | −2.6% | 33.5% | 1.00 | 1.00 |
| vs same-month Mondays, expected move | +1.6% | 28.3% | 0.81 | 1.00 |
| vs same-month Mondays, ATR14 | +5.3% | 31.5% | 0.63 | 1.00 |
| Friday vs same-month Fridays, expected move | −1.4% | 16.9% | 0.82 | 1.00 |
| Friday vs same-month Fridays, ATR14 | −6.4% | 19.1% | 0.49 | 1.00 |
| 17 other names (context only) | ||||
| vs next two Mondays, expected move | −5.5% | 10.1% | 0.02 | 0.13 |
| vs next two Mondays, ATR14 | −5.7% | 13.3% | 0.20 | 0.60 |
| vs same-month Mondays, expected move | −1.8% | 9.1% | 1.00 | 1.00 |
| vs same-month Mondays, ATR14 | −3.5% | 11.8% | 0.63 | 1.00 |
| Friday vs same-month Fridays, expected move | −1.0% | 6.7% | 1.00 | 1.00 |
| Friday vs same-month Fridays, ATR14 | −2.6% | 8.0% | 0.82 | 1.00 |
- One pair per event month: the event session against the mean of its control sessions. The effect is exp(mean of ln(range ÷ yardstick) for the event minus the same for its controls) − 1, so +10% means the event's range ran about 10% bigger against its yardstick than its controls' did.
- A session's range is its regular-hours high minus low. The yardstick is either the rebuilt expected move (prior close × at-the-money implied volatility ÷ √252) or ATR14 (the mean true range of the 14 prior sessions). Both are known before the 09:30 ET open. The 95% interval resamples months in runs of three (20,000 resamples). The p-value is a sign test: it counts months above and below their controls and flips the sign of each pair independently (100,000 shuffles), ignoring how far above or below. The many-tries correction is Benjamini-Hochberg at 5% inside each group of tests.
Data receipt: 12 sources, built 2026-09-28
Each source is fingerprinted with SHA-256, so a changed file changes the fingerprint. A single file shows its own hash; a source of several files shows one hash of their names and hashes.
- SPY daily prices, regular hours ·
b07df140c15ec92f… - QQQ daily prices, regular hours ·
98b03f4add721f50… - Daily prices, regular hours, 17 other names (17 files) ·
7c4fe5ff6a93e98a… - SPY implied-volatility rows, prior-close price and volatility (yearly files 2018 to 2024) (7 files) ·
d981be107fe1813c… - QQQ implied-volatility rows (yearly files 2018 to 2024) (7 files) ·
93dbbdadc82e0f81… - Implied-volatility rows, 17 other names (yearly files 2018 to 2024) (119 files) ·
beb0489622bd5f8a… - Frozen test plan, written before any outcome was read ·
3fbd29c2a768f2eb… - Frozen event calendar ·
e03b0d97de5ab3ab… - Published results of the 18 tests ·
eb9d44e26f3a48c6… - Study report ·
9bb1371c59979662… - Program summary of the four monthly studies and their test count ·
8f8497c9c8573486… - Shuffling-test and interval routines (files checked against the hashes frozen in the plan) (2 files) ·
ec4c0e6d1c3f0239…
How we tested
We took recorded daily prices for SPY and QQQ from May 2018 to December 2024 and marked every monthly options expiry (80). For each one we compared the Monday after (the event) with ordinary Mondays: the two Mondays two and three weeks later, and the other Mondays of the same month. We also compared the expiry Friday with the month’s other Fridays. Each range is divided by a yardstick known before the open, so calm and wild spells compare fairly, and one month gives one comparison.
70 expiries had a Monday after that was a full trading day (nine market holidays and one early close dropped) and 78 had an expiry Friday (two fell on a Thursday). Months without a usable yardstick drop out too, so each SPY and QQQ test uses 55 to 77 months; the figure’s table gives each count.
A test counted as detected only if its 95% interval left out zero and it still beat chance after allowing for the tests run alongside it: 12 for SPY and QQQ, 6 for 17 other names, kept as context. None did.
For scale, SPY’s range on the 65 event Mondays averaged 1.25% of the prior close, against 1.18% on 141 ordinary Mondays. That raw gap is inside the noise: the same-month test, against the expected move, gives +5.9%, with an interval of −8.8% to +22.1%.
Check it yourself with Prism and a spreadsheet
This log rebuilds one comparison: SPY’s Monday after expiry against the next two Mondays, each range measured as a share of the prior close. It needs no option data. It is not one of the 18 tests as run, which divide by the expected move and so need an implied-volatility history you cannot get, so it is a rougher, wider test of the same question. The log is optional: it shows how much a log you build yourself can swing by chance.
Each month needs nine prices: the high, low and previous close of three Mondays, from your broker’s daily chart with extended hours off (regular session, 09:30 to 16:00 ET). Filling in a year of past months is 108 prices; going forward, add one row a month. For a session just ended, the prior-day high and low on the Prism by GEXfreak chart give you the high and low; the previous close comes from your broker chart.
| Column | What to write | Where it comes from |
|---|---|---|
| A | First day of the month | Type the first month, then let the sheet count on |
| B | Expiry Friday | The third Friday of that month, from a formula |
| C | The Monday after | Three days after B |
| D | Range of the Monday after, as a share of the prior close | The day’s high, low and previous close on a daily chart |
| E | The same for the Monday two weeks later | The same three values, 14 days after C |
| F | The same for the Monday three weeks later | The same three values, 21 days after C |
| G | Average of the two controls, in logs | A formula on E and F |
| H | Difference: D against G, in logs | A formula on D and G |
Fill it in and read it
Formulas are for row 2; fill them down. The worked row is the month of the expiry on 17 May 2019, recorded SPY prices.
- 1. Months. A2 is the first of your first month (1 May 2019 here) and A3 =EDATE(A2,1). B2 =A2+MOD(6-WEEKDAY(A2),7)+14 is the third Friday, and C2 =B2+3 the Monday after. Worked row: B = 17 May 2019, C = 20 May 2019.
- 2. Ranges. For D, E and F type =(high-low)/prior close from your daily chart, formatted as a percent. Leave the whole row empty if C was a holiday or a shortened session. Leave E or F empty if that Monday was a shortened session, followed a holiday Friday, or sat in a week holding the next monthly expiry (for F, when F2+4 equals the next row’s B). Worked row: D2 =(285.43-283.12)/285.90 = 0.81%; E2 (3 June 2019) =(276.55-273.09)/275.37 = 1.26%; F2 (10 June 2019) =(290.82-288.87)/287.63 = 0.68%.
- 3. Compare. G2 =IFERROR(AVERAGE(LN(E2),LN(F2)),IFERROR(LN(E2),IFERROR(LN(F2),""))) averages the logs of the controls (a log makes a doubled range and a halved range equal and opposite), and H2 =IFERROR(LN(D2)-G2,"") is the month’s difference. Worked row: G = −4.6853, H = −4.8184 − (−4.6853) = −0.1330 as the sheet computes it, which is −12.5%: about an eighth calmer than its controls.
- 4. Effect and count. =EXP(AVERAGE(H:H))-1 is the effect, and =COUNTIF(H:H,">0") counts months above their controls. For reference, the study’s 55 SPY months (months without a usable expected move dropped) give +0.5% with 27 above. Your log keeps the months the study dropped, so its count and effect will differ.
- 5. Interval. =EXP(AVERAGE(H:H)-1.96*STDEV(H:H)/SQRT(COUNT(H:H)))-1 is the low end, and the same with + is the high end. The study’s months give −15.6% to +19.7%. If your interval includes zero, your log found no difference.
- 6. Smallest gap. =EXP(2.8016*STDEV(H:H)/SQRT(COUNT(H:H)))-1 is the smallest wilder gap your log could have seen, and =1-EXP(-2.8016*STDEV(H:H)/SQRT(COUNT(H:H))) the smallest calmer one. The constant is 1.96 (the 95% interval) plus 0.8416 (catching a real gap four times in five). The study’s 55 months give 28.3%.
| Months logged | About how long | Smallest gap it could see | What follows |
|---|---|---|---|
| 20 | 1.7 years | 51.2% wilder or 33.9% calmer | A note, not evidence. Only a large gap would show, so plan the day as usual whatever the log says. |
| 50 | 4.2 years | 29.9% wilder or 23.0% calmer | Still only a big gap would show. If your interval includes zero, nothing in your log separates that Monday from any other. |
| 100 | 8.3 years | 20.3% wilder or 16.9% calmer | A gap of a fifth would show; a 10% gap still needs about 377 months. If your interval leaves out zero, average H by year (AVERAGEIFS on H with the year of A) and see whether one or two years drive it. |
Limits
This measures range only: no walls, flips, direction or trades. The window ends 31 December 2024 and this page uses no later data; cutting these years again by year, name or expiry type would not be a fresh test. The controls include sessions after each event, so it describes history and is not a live comparison. SPY and QQQ options now expire on other weekdays too, which began inside the window, and the study does not split on that.
The next-two Mondays are early-month Mondays (all 79 of the ordinary ones that could be used fell in the first two weeks of a month), so a month-start effect could pose as an expiry effect. The expected move is rebuilt afterwards from recorded option data, not the figure Prism drew that morning, and near an expiry its implied-volatility input can switch to a different expiry date, so the yardstick itself may be part of any effect (which expiry it read is not recorded): the implied-volatility part alone ran from −3.1% to +1.2% across the six SPY and QQQ tests, every interval including zero. The option prices behind it changed source on 28 March 2023, which no test splits on. ATR14 is a weaker second check because the event Monday’s 14-day window always holds its own expiry week (100% of event windows, against 73% of controls), and which way that bias runs is not known. The test plan was frozen before any result was read, but the freeze is the study’s own record, not an outside registry. Changing how months are resampled moves each interval end by at most 3.6 points, and leaving out 2020 keeps every SPY and QQQ Monday interval including zero.
Three patterns are hints, not findings. All six expiry-Friday estimates leaned calmer (1.2% to 6.6%), but they share dates and none passed. The 17 other names (2 funds and 15 stocks whose data covers the whole window; earnings days kept in, so context, not a second confirmation) leaned calmer against the next two Mondays, the closest call in the study (leaving out 2020, its interval runs −11.1% to −0.6% before the allowance for many tests): 40 of 61 months below their controls, chance level 0.02 on its own and 0.13 after allowing for the tests in its group. SPY’s 16 quarterly months (March, June, September, December) averaged −27.0% against +14.4% in the other 39; that split was chosen after seeing results and never tested, so leave it alone.
This study is one of four run together (34 tests in all), so about 1.7 raw results under 0.05 would appear by luck alone; the correction here counts only this study’s tests, inside each group. The sizes above are approximate and probably a little small. Your log measures range against price, not the expected move, so it drops the calm-versus-wild adjustment, its interval is wider than the study’s and it will not match the figure digit for digit.
Sources and editorial notes
Read the primary references and editorial policy
Published by GEXfreak. Prism by GEXfreak is the chart product these guides describe. Every figure comes from recorded market history: prices, option open interest and recorded sessions. Where a figure shows trade results, the trades are back-tested, not placed. This is product education, not independent investment research.
Each figure lists its data sources and their SHA-256 fingerprints under “Table, method and data source”. The references below explain the statistics and the disclosure wording used on this page. They do not endorse GEXfreak or these studies.
- Weekly Options (frequently asked questions) — Options Industry Council (OCC). Publication date not stated. Checked .
- Controlling the False Discovery Rate: A Practical and Powerful Approach to Multiple Testing — Y. Benjamini and Y. Hochberg, Journal of the Royal Statistical Society: Series B 57(1): 289–300 (Oxford Academic). Published 1995. Checked .
- Confidence Limits for the Mean — NIST/SEMATECH e-Handbook of Statistical Methods. Publication date not stated. Checked .
- 17 CFR § 4.41: Advertising by commodity pool operators, commodity trading advisors, and the principals thereof — Code of Federal Regulations, Title 17 (Cornell Law School LII). Publication date not stated. Checked .
For the product’s calculation and data boundaries, read Prism’s methodology.
Open the workspace.
Sign in to open the workspace. The figures on this page are recorded prices and a rebuilt expected move, not a live book.
Create an account to save your layout; review current access conditions on the pricing page.