The short answer

The last quarter hour of a month-end session moved farther than usual, and this study could not tell which way. Before the closing cross (the auction that sets the official close), SPY’s middle month-end window moved 0.18% of its price against 0.12% on ordinary days of the same month, about 1.5 times as far. QQQ agrees.

Up and down came out even, 39 months each. The test could only have seen a lean about as large as the average window move, so “not detected” does not mean “no lean”.

Part of the size gap comes from Fridays and a few other special days. With those set aside the gap is about half, and too few months remain to tell it from zero.

What to do with this:

  • The typical month-end window travels farther, but the gap is small in dollars. SPY’s middle (median) window was 18 basis points (bp, hundredths of a percent) against 12 bp on ordinary days, a gap of about 6.5 bp, or $0.38 at the recorded 15:45 price on 31 December 2024 ($586.27). The plain average is 27 bp against 15, pulled up by one day, 28 February 2020 (280 bp).
  • These are net changes from 15:45 to 16:00. The swing inside the window was larger, and this page gives no number for it. The study also did not look at whether a level holds, so it says nothing about what price did at a Prism wall, flip or expected-move edge.
  • Treat direction as unknown: the study could not have seen a lean below 24 to 27 bp (allowing for its 8 tests), so “not detected” is not “no lean”.
  • In a back-test, report month-end sessions apart from ordinary days: Fridays and a few special days (listed under Limits) carry part of the gap.
REAL HISTORICAL DATA

The last 15 minutes of month-end against ordinary days

SPY and QQQ · 78 month-ends · May 2018 to December 2024

Nothing on this figure is a trade: it measures recorded prices.

1. The eight gaps, month-end minus ordinary days

Each dot is the average gap over 78 months; the line is its 95% range. The shaded band on the direction rows is the smallest lean the test would have caught four times in five, at the bar set by the 8 tests run together.

Market
Unit
−0.2−0.10.0+0.1+0.2◀ month-end smaller or lowerbigger or higher ▶Month-end window minus its ordinary days, in ATRSize: how far the window moved, either waySPY vs ordinary daysdetected+0.097SPY vs neighbour daysdetected+0.087Direction: which way it moved, up minus downSPY vs ordinary daysno difference detected−0.004SPY vs neighbour daysno difference detected−0.018
  • Detected after correction
  • No difference detected
  • Smallest lean caught 4 times in 5
SPY: on month-end days the window moved +0.097 ATR (about +11.8 bp) more than on ordinary days, range +0.052 to +0.145, and was bigger in 51 of 78 months against a chance level of 41%. Direction: −0.004 ATR, range −0.061 to +0.056, no difference detected for the 15 minutes before the closing cross; a lean would have needed to be about 0.17 ATR (24 bp) to be caught four times in five.

2. The same gap year by year, against ordinary days

Months in each year are printed under the year. Whiskers are 95% ranges. Descriptive only: no test was run on a single year, and each has 8 to 12 months.

Year
Size gap (ATR)
−0.2−0.10.0+0.1+0.2+0.3+0.4+0.520188 mo201911 mo202012 mo202112 mo202212 mo202312 mo202411 mo
Direction gap (ATR)
−0.3−0.2−0.10.0+0.1+0.2+0.3+0.4+0.520188 mo201911 mo202012 mo202112 mo202212 mo202312 mo202411 mo
  • SPY
  • QQQ
Pick a year, or tap a year on a chart, to read its numbers. Against ordinary days the size gap is positive in 6 of 7 years for SPY and 6 for QQQ; the direction gap is positive in 3 for SPY and 4 for QQQ.

3. One month, day by day

The same 15 minutes on the month-end day and on its ordinary days. Open any of the 78 months; it opens on the latest.

Market
Compare with
Show
mean of the ordinary daysTue, Dec 31month-end0.034Tue, Dec 100.041Tue, Dec 170.060Window move in ATR (size, without its sign)
In December 2024 the SPY window on the month-end day (Tue, Dec 31) moved 0.034 ATR. On its 2 ordinary days (Tue, Dec 10, Tue, Dec 17) it averaged 0.051 ATR, so the month-end was not bigger. Put the “month-end” label on one of these 3 days at random and it would come out bigger than the average of the other days in 1 of 3 cases: that is this month’s chance level.

The numbers

The eight tests: months the month-end window was bigger (size) or higher (direction) than its ordinary days, against the chance level; the average gap in ATR and in basis points; and the p-values
TestMonths above / belowChance levelAverage gap (ATR)95% range (ATR)Average gap (bp)pAdjusted pResult
SPY size vs ordinary days51 / 2741%+0.097+0.052 to +0.145+11.8under 0.0002under 0.0002detected
SPY size vs neighbour days52 / 2643%+0.087+0.050 to +0.124+10.4under 0.0002under 0.0002detected
SPY direction vs ordinary days41 / 3751%−0.004−0.061 to +0.056+0.40.720.83no difference detected
SPY direction vs neighbour days32 / 4648%−0.018−0.081 to +0.050−1.80.230.37no difference detected
QQQ size vs ordinary days50 / 2843%+0.078+0.041 to +0.118+13.6under 0.0002under 0.0002detected
QQQ size vs neighbour days52 / 2645%+0.065+0.035 to +0.096+11.5under 0.0002under 0.0002detected
QQQ direction vs ordinary days40 / 3851%+0.006−0.039 to +0.053+1.60.900.90no difference detected
QQQ direction vs neighbour days36 / 4249%−0.002−0.055 to +0.053−0.80.640.83no difference detected
Every month-end, by year, method and data source
Every month-end window in basis points of the 15:45 price: size, signed direction, and the average size on its ordinary days, with the ordinary days used and the calendar tags
Month-endTagsOrdinary days usedSPY sizeSPY directionSPY ordinary-day sizeQQQ sizeQQQ directionQQQ ordinary-day size
Thu, May 31, 2018May or NovemberMay 10, May 17, May 248.3−8.35.95.3−5.36.3
Fri, Jun 29, 2018FridayJun 8, Jun 2236.4−36.411.237.8−37.814.3
Tue, Jul 31, 2018noneJul 10, Jul 17, Jul 242.8−2.89.85.7−5.712.1
Fri, Aug 31, 2018FridayAug 10, Aug 244.1+4.12.34.8+4.83.0
Fri, Sep 28, 2018FridaySep 7, Sep 146.5+6.53.18.2+8.24.0
Wed, Oct 31, 2018noneOct 10, Oct 17, Oct 2426.5−26.549.230.0−30.065.8
Fri, Nov 30, 2018Friday, May or NovemberNov 95.2−5.230.113.0+13.026.2
Mon, Dec 31, 2018noneDec 10, Dec 1727.3+27.334.330.6+30.642.0
Thu, Jan 31, 2019noneJan 10, Jan 17, Jan 2418.2+18.28.923.2+23.29.1
Thu, Feb 28, 2019noneFeb 7, Feb 14, Feb 218.1−8.121.15.8−5.819.5
Fri, Mar 29, 2019FridayMar 8, Mar 227.8+7.816.68.3+8.315.0
Tue, Apr 30, 2019noneApr 9, Apr 16, Apr 2310.2+10.27.711.8+11.89.9
Fri, May 31, 2019Friday, May or NovemberMay 10, May 242.5−2.512.05.7−5.710.1
Fri, Jun 28, 2019Friday, Russell dayJun 7, Jun 1420.3+20.311.922.3+22.311.9
Wed, Jul 31, 2019Fed dayJul 10, Jul 17, Jul 2448.2−48.26.845.3−45.310.0
Fri, Aug 30, 2019FridayAug 9, Aug 235.8+5.820.317.0+17.024.5
Mon, Sep 30, 2019noneSep 9, Sep 16, Sep 238.4−8.46.13.7+3.79.0
Thu, Oct 31, 2019noneOct 10, Oct 17, Oct 2419.2+19.25.618.6+18.67.0
Tue, Dec 31, 2019noneDec 10, Dec 177.5+7.54.56.1+6.13.7
Fri, Jan 31, 2020FridayJan 10, Jan 241.9+1.914.50.7−0.714.5
Fri, Feb 28, 2020FridayFeb 7, Feb 14279.8+279.811.8282.6+282.69.9
Tue, Mar 31, 2020noneMar 10, Mar 17, Mar 2421.7−21.773.515.2−15.259.9
Thu, Apr 30, 2020noneApr 9, Apr 16, Apr 2312.1+12.115.630.7+30.718.8
Fri, May 29, 2020Friday, May or NovemberMay 8, May 227.9+7.97.97.3+7.37.0
Tue, Jun 30, 2020noneJun 9, Jun 16, Jun 238.9+8.932.420.7+20.730.5
Fri, Jul 31, 2020FridayJul 10, Jul 2454.8+54.813.751.0+51.014.4
Mon, Aug 31, 2020noneAug 10, Aug 17, Aug 2437.9−37.911.139.8−39.816.6
Wed, Sep 30, 2020noneSep 9, Sep 16, Sep 239.3+9.332.96.4+6.432.2
Fri, Oct 30, 2020FridayOct 9, Oct 2356.1+56.111.751.8+51.816.2
Mon, Nov 30, 2020May or NovemberNov 9, Nov 16, Nov 2314.4+14.445.413.0+13.049.3
Thu, Dec 31, 2020noneDec 10, Dec 1715.3+15.37.018.5+18.516.5
Fri, Jan 29, 2021FridayJan 8, Jan 2227.5−27.519.437.0−37.021.5
Fri, Feb 26, 2021FridayFeb 5, Feb 1276.5−76.514.586.4−86.417.6
Wed, Mar 31, 2021noneMar 10, Mar 17, Mar 2411.8−11.818.420.3−20.321.0
Fri, Apr 30, 2021FridayApr 9, Apr 2314.3+14.319.412.7+12.721.5
Fri, May 28, 2021Friday, May or NovemberMay 7, May 1412.6−12.64.117.9−17.96.0
Wed, Jun 30, 2021noneJun 9, Jun 16, Jun 236.3−6.310.89.3−9.39.4
Fri, Jul 30, 2021FridayJul 9, Jul 239.1+9.13.15.8+5.84.9
Tue, Aug 31, 2021noneAug 10, Aug 17, Aug 242.4−2.410.50.5−0.59.8
Thu, Sep 30, 2021noneSep 9, Sep 16, Sep 2350.3−50.315.845.8−45.813.0
Fri, Oct 29, 2021FridayOct 8, Oct 2214.2+14.22.326.2+26.22.9
Tue, Nov 30, 2021May or NovemberNov 9, Nov 16, Nov 2328.2−28.26.23.8−3.86.1
Fri, Dec 31, 2021FridayDec 1031.6−31.615.130.6−30.620.6
Mon, Jan 31, 2022noneJan 10, Jan 2437.3+37.377.351.5+51.588.3
Mon, Feb 28, 2022noneFeb 7, Feb 1469.3+69.310.792.2+92.211.2
Thu, Mar 31, 2022noneMar 10, Mar 17, Mar 2457.7−57.718.356.0−56.017.3
Fri, Apr 29, 2022FridayApr 8, Apr 2249.0−49.044.858.1−58.147.3
Tue, May 31, 2022May or NovemberMay 10, May 17, May 2423.9−23.910.238.1−38.18.5
Thu, Jun 30, 2022noneJun 9, Jun 16, Jun 2311.9+11.930.24.3−4.333.8
Fri, Jul 29, 2022FridayJul 8, Jul 2215.6−15.623.218.8−18.815.5
Wed, Aug 31, 2022noneAug 10, Aug 17, Aug 2459.2−59.211.073.3−73.313.4
Fri, Sep 30, 2022FridaySep 9, Sep 2367.3−67.312.175.4−75.49.5
Mon, Oct 31, 2022noneOct 10, Oct 17, Oct 2427.4−27.415.823.2−23.216.8
Wed, Nov 30, 2022May or NovemberNov 9, Nov 16, Nov 2341.8+41.85.061.4+61.48.7
Fri, Dec 30, 2022FridayDec 9, Dec 2334.6+34.620.357.2+57.223.2
Tue, Jan 31, 2023noneJan 10, Jan 17, Jan 2441.0+41.014.345.3+45.322.6
Tue, Feb 28, 2023noneFeb 7, Feb 14, Feb 2118.6−18.613.520.9−20.915.5
Fri, Mar 31, 2023FridayMar 10, Mar 2430.1+30.118.427.2+27.219.7
Fri, Apr 28, 2023FridayApr 1416.6+16.62.919.8+19.82.8
Wed, May 31, 2023May or NovemberMay 10, May 17, May 2426.6−26.610.229.8−29.87.0
Fri, Jun 30, 2023FridayJun 9, Jun 2314.4−14.46.815.9−15.98.4
Mon, Jul 31, 2023noneJul 10, Jul 17, Jul 2429.0+29.011.028.2+28.213.1
Thu, Aug 31, 2023noneAug 10, Aug 17, Aug 2427.5−27.513.834.8−34.812.4
Fri, Sep 29, 2023FridaySep 8, Sep 228.0+8.012.26.0+6.018.2
Tue, Oct 31, 2023noneOct 10, Oct 17, Oct 245.0+5.014.94.0+4.014.6
Thu, Nov 30, 2023May or NovemberNov 9, Nov 1620.6+20.66.632.9+32.95.6
Fri, Dec 29, 2023FridayDec 8, Dec 220.8+0.87.11.7−1.74.8
Wed, Jan 31, 2024Fed dayJan 10, Jan 17, Jan 2412.4−12.415.48.6−8.617.6
Thu, Feb 29, 2024noneFeb 8, Feb 15, Feb 228.7−8.75.86.6+6.67.6
Thu, Mar 28, 2024noneMar 7, Mar 14, Mar 2118.3−18.319.416.3−16.321.1
Tue, Apr 30, 2024noneApr 9, Apr 16, Apr 2349.7−49.714.468.6−68.617.9
Fri, May 31, 2024Friday, May or NovemberMay 10, May 2467.6+67.65.464.6+64.64.5
Fri, Jun 28, 2024Friday, Russell dayJun 7, Jun 1414.9−14.912.033.5−33.512.7
Wed, Jul 31, 2024Fed dayJul 10, Jul 17, Jul 2427.9−27.913.622.2−22.220.5
Fri, Aug 30, 2024FridayAug 9, Aug 2334.5+34.59.543.9+43.911.2
Mon, Sep 30, 2024noneSep 9, Sep 16, Sep 2336.2+36.25.944.7+44.79.6
Thu, Oct 31, 2024noneOct 10, Oct 17, Oct 2440.5−40.55.635.8−35.87.0
Tue, Dec 31, 2024noneDec 10, Dec 174.4−4.43.121.5−21.55.9
Average gap against ordinary days by calendar year, in ATR, with 95% ranges. Descriptive: no test was run on any single year.
YearMonthsSPY sizeQQQ sizeSPY directionQQQ direction
20188−0.023 (−0.120 to +0.075)−0.025 (−0.099 to +0.042)−0.012 (−0.116 to +0.077)+0.022 (−0.047 to +0.089)
201911+0.076 (−0.032 to +0.216)+0.047 (−0.020 to +0.130)+0.004 (−0.172 to +0.146)+0.024 (−0.093 to +0.121)
202012+0.138 (−0.050 to +0.404)+0.101 (−0.042 to +0.317)+0.161 (−0.062 to +0.445)+0.134 (−0.031 to +0.355)
202112+0.096 (+0.009 to +0.200)+0.067 (+0.003 to +0.142)−0.120 (−0.272 to +0.012)−0.089 (−0.204 to +0.013)
202212+0.079 (−0.033 to +0.182)+0.096 (+0.007 to +0.181)−0.054 (−0.192 to +0.085)−0.036 (−0.154 to +0.092)
202312+0.085 (+0.025 to +0.142)+0.071 (+0.016 to +0.125)+0.044 (−0.050 to +0.135)+0.022 (−0.053 to +0.095)
202411+0.194 (+0.066 to +0.354)+0.155 (+0.051 to +0.274)−0.058 (−0.251 to +0.182)−0.033 (−0.196 to +0.152)
  • Ranges in the eight-test table resample runs of 3 months in a row, 50,000 times; the by-year and by-group ranges resample single months, 20,000 times. The size tests also clear a stricter bar, 0.05 ÷ 34 = 0.0015, which counts all 34 tests from the 4 calendar studies of this kind that we ran, of which this study is 8 (the largest size p was 0.00009).
  • Basis points are descriptive and unadjusted. For SPY direction against ordinary days the basis-point gap has the opposite sign from the ATR gap: ATR scales each month's move by that month's ATR and basis points by price, so an average near zero can differ in sign.
Data receipt: 16 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.

  • Study event and control calendar (160 rows) · e6b7302ba144f7d9…
  • Study plan, fingerprinted in the study run record · 27e8c8ab6a6bdb05…
  • Study results, one run · 5c6ce2c645a07339…
  • Study report · 6b0552ed3ed3cad5…
  • Study plan, written form · 5e4a8eb74bf17222…
  • Study runner · e2311288dc9c86e5…
  • Study statistics code (copied, hash-checked) · 0248db292e36b303…
  • Shared resampling code (copied, hash-checked) · 8d04765f345d535d…
  • Shared p-value capacity check (copied, hash-checked) · 9334c9a62268ca18…
  • Study test count and record of looks · 7cad25d4eba64134…
  • Study log of looks (one run on the outcomes) · 6603011473dccf1a…
  • Research program log rows read (test counts when the plans were fixed) · bb97c484fc8072fb…
  • SPY daily prices, regular hours · b07df140c15ec92f…
  • SPY one-minute prices, regular hours (80 files) · f96f748da6205975…
  • QQQ daily prices, regular hours · 98b03f4add721f50…
  • QQQ one-minute prices, regular hours (80 files) · 6970e6880835fdf7…

How we tested

The events are the last regular session of each month, May 2018 to December 2024: 80 months, less 29 November 2019 and 29 November 2024, which closed at 13:00 and have no full last 15 minutes, leaves 78 for each of SPY and QQQ. Prices are recorded one-minute bars.

Each month-end is compared with the average of its ordinary days, one to three a month, and separately with the session before and after it. Within each month we shuffled which day counts as the month-end 100,000 times to see how often chance alone matches the real gap, and allowed for the 8 tests run together (two ETFs, size and direction, two comparisons).

Check it yourself

A log of your own cannot confirm this study for years (see the table under What a small log can say), so treat the study as your reference. Steps 1 to 4 give one month-end’s window size in bp, to set beside the 18 and 12 above; do them that evening, while the month’s earlier weeks are still on your chart. Steps 5 and 6 keep a log.

One sheet, one row per session, a month-end row first and then its ordinary days:

The log’s columns: what to write and where it comes from
ColumnWhat to writeWhere it comes from
ADateThe session’s date
BRole: ME or ORDME for the month-end, ORD for one of its ordinary days (steps 1 and 2)
CMonth, such as 2024-12Formula on the date, the same on every row of one month-end
DPrice at 15:45Your one-minute chart: close of the bar ending 15:45 ET
EPrice at 16:00Same chart: close of the last regular bar, not the official closing price
FSize, bpFormula on D and E
GDirection, bpFormula on D and E
HSize gap, bpFormula, month-end rows only
IDirection gap, bpFormula, month-end rows only

The steps

Worked lines use SPY in 2024-12, a recorded month-end, with its recorded bar closes to the cent.

  • 1. Pick the last regular session of a month, not a 13:00 half day. Type its date in A, ME in B and, in C, =TEXT(A2,"yyyy-mm"). Worked: 31 December 2024, a Tuesday, so C is 2024-12.
  • 2. Add its ordinary days below it, ORD in B: the same weekday in the other weeks of that month, skipping the first three sessions, the third Friday (monthly options expiry) and any 13:00 half day. Use the ones still on your chart, at least one. Worked: that month’s Tuesdays were the 3rd (in the first three sessions, skipped), the 10th (used), the 17th (used), the 24th (a 13:00 half day, skipped) and the 31st (the month-end itself).
  • 3. Read D and E in Eastern time. D is the close of the bar ending 15:45 (some platforms stamp it 15:44) and E the close of the last regular bar (stamped 15:59). Worked: row 2 is 31 December 2024 (ME): D 586.27, E 586.01; row 3 is 10 December 2024 (ORD): D 602.70, E 602.87; row 4 is 17 December 2024 (ORD): D 604.03, E 604.24.
  • 4. Fill F with =ABS(E2-D2)/D2*10000 and G with =(E2-D2)/D2*10000, copied down. Worked: row 2 F 4.43, G −4.43; row 3 F 2.82, G +2.82; row 4 F 3.48, G +3.48.
  • 5. On the month-end row only, H is =F2-AVERAGEIFS(F:F,C:C,C2,B:B,"ORD") and I is =G2-AVERAGEIFS(G:G,C:C,C2,B:B,"ORD"). Worked: H is 4.43 minus the average of 2.82 and 3.48, +1.28 bp; I is −4.43 minus the average of +2.82 and +3.48, −7.58 bp. The figure’s month view uses ATR, where this month-end was not the bigger one (recorded ATR $7.59 against $4.12 and $3.46), so bp and ATR can disagree on one month.
  • 6. After each month-end read =AVERAGE(H:H), your size gap, and =3.8*STDEV(H:H)/SQRT(COUNT(H:H)), the smallest size gap your log could see four times in five (STDEV is the spread of the gaps; 3.8 is the study’s multiple for one test, 4.8 for its 8 tests). The same two formulas on I do it for direction. Worked with the study’s 78 SPY month-ends: STDEV of H was 37.0 bp, so 3.8 × 37.0 ÷ √78 = 15.9 bp; for I, 45.0 bp gives 19.4 bp.

What a small log can say

A log fills slowly: one month-end is one event, and SPY, QQQ and every stock on the same day are one event, not many. The table gives the smallest gap a log of each length could see four times in five, scaled from the spread of the study’s SPY gaps (yours will differ; step 6 recomputes it). One very large day, 28 February 2020, widens that spread (22.7 bp without it against 37.0), so the size bars are cautious. The lean column allows for one test only; the study’s bar, with 8, was 24 to 27 bp.

The smallest gap a month-end log could see, four times in five, at 20, 50 and 100 months
Months loggedAbout how longSmallest size gap seen (bp)Smallest lean seen (bp)What it lets you say
201.7 years31.538.2Nothing about this ticker yet. It can only see a size gap bigger than the whole average window move, so read every result as “cannot tell” and keep the study as your reference.
504.2 years19.924.2A size gap larger than this would show. The study’s is smaller, so a log this long cannot check it. Direction is still unknown.
1008.3 years14.117.1Close to the study’s size gap: a log this long can start to check it for this ticker, not settle it. A lean below this could still hide, so keep direction as unknown.

Limits

No difference detected in the 15 minutes before the closing cross is not “no difference”. The direction tests could only have seen a lean of about 24 to 27 bp, larger than the whole size gap, so a smaller lean could be there unseen. The counterweight: all four direction 95% ranges sit between −0.081 and +0.056 ATR, so a lean as large as SPY’s size gap (+0.097 ATR) is outside every one. The 95% ranges describe these months, not later ones.

  • Coverage: the window stops before the closing cross, so the study cannot say what the auction itself did. It covers two large ETFs and 78 month-ends; no trade, cost, wall or flip is involved. The four size tests are one finding measured four ways. On the two left-out 13:00 month-ends SPY’s last 15 minutes moved +0.011 ATR on 29 November 2019 and −0.138 ATR on 29 November 2024. In 3 of the 78 months only one ordinary day was available to compare with.
  • Calendar: the size gap is not shown to come from the date. A Friday month-end can carry extras the match does not remove, such as option expiries and index reviews, and this study did not measure which. 32 of the 78 month-ends are Fridays, 12 fall in May or November (the MSCI index review months: the month, not the day of the change), 3 were Fed decision days (31 July 2019, 31 January 2024 and 31 July 2024) and 2 were Russell reconstitution days, the yearly rebalance of the Russell indexes (28 June 2019 and 28 June 2024). Fridays are not the whole story: other weekdays still show a positive gap. With all of those set aside 36 month-ends remain and the gap is about half, with a range that reaches zero: on that few months the study cannot tell the calendar from luck. Quarter-end months carry the smaller gap, but the ranges overlap, so the data neither supports nor rules out quarter-end rebalancing.
  • Method: the bars for a smaller log assume monthly gaps roughly bell-shaped, and one very large day widens their spread. The “smallest lean caught 4 times in 5” bars come from a simulation read from the study, not re-run here. Reading your own log after every month-end and stopping when a gap looks large finds luck; read it at the sizes in the table.
  • Timing: the study’s plan was set before its results were opened, but the only record of that order is the study’s own log, not the shared record of all our studies.
Size gap against ordinary days by calendar group, in ATR, with 95% ranges (descriptive: no test was run on any group)
GroupMonthsSPY size gapQQQ size gap
All month-ends78+0.097 (+0.052 to +0.145)+0.078 (+0.041 to +0.118)
Fridays32+0.135 (+0.043 to +0.249)+0.115 (+0.044 to +0.206)
Other weekdays46+0.071 (+0.018 to +0.125)+0.052 (+0.012 to +0.092)
None of Friday, May or November, Fed day, Russell day36+0.050 (−0.006 to +0.107)+0.041 (−0.001 to +0.085)
Quarter-end months27+0.042 (−0.004 to +0.091)+0.042 (+0.003 to +0.082)
Other months51+0.126 (+0.055 to +0.208)+0.097 (+0.042 to +0.160)

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.

For the product’s calculation and data boundaries, read Prism’s methodology.

All resources
REAL HISTORICAL DATA

Beat the naive trade first

What the stock paid anyway.
9 stocks · 2018–2024 · bar: share of five-session windows that ended higher · dashed line: half · price only
REAL PRICES · REBUILT LEVELS · BACK-TESTED TRADES

How many trades until you know?

Four times the trades halve the doubt.
±0.0±0.2±0.4±0.6±0.8±1.020501002005001,0002,000All trades, 15:45: 312 trades, ±0.23RThrough 28 March 2023 (fallback prices): 222 trades, ±0.29RFrom 29 March 2023 (native prices): 90 trades, ±0.37RQuarterly months (Mar, Jun, Sep, Dec): 102 trades, ±0.36ROther months: 210 trades, ±0.31RAAPL: 49 trades, ±0.48RINTC: 29 trades, ±0.74RMSFT: 60 trades, ±0.46RNKE: 26 trades, ±0.65RNVDA: 71 trades, ±0.42RTSLA: 49 trades, ±0.54R
11 measured 95% ranges · one rule, rebuilt at the 5-minute mark · gold line: ±3.6/√trades
REAL PRICES · BACK-TESTED TRADES

The best of 480 backtests

5 passed the pass mark. Then we adjusted for the number tried.
480 versions · 12 stocks · 2021–2024 · white: passed · red: failed · grey: under 30 trades
REAL HISTORICAL DATA

The Monday after monthly expiry

80 monthly expiries, 70 Mondays and 78 Fridays to compare.
SPY and QQQ · 2018–2024 · counts, not dates · filled: a Monday after that could be kept · hollow: holiday or early close
REAL HISTORICAL DATA

The last half hour of the day

1,656 SPY sessions · 1,659 QQQ sessions · before the closing cross
16618248192472025021250222462324924
Sessions counted per year, May 2018 to December 2024 · solid: the two periods compared · minute prices, not levels
REAL HISTORICAL DATA

Does the market drift at the same time every day?

A session, cut into half hours.
SPY, Dec 31, 2024. 18 tickers × 13 half hours = 234 cells, 32,969 ticker-sessions, 2016 to 2024.

See the last 15 minutes on your own chart.

Membership is required for live SPY, QQQ and IWM books. The figures on this page are recorded history, not a live book.

Create an account to save your layout; review current access conditions on the pricing page.