Strasmore Research
Learn Matt ConnorBy Matt Connor · data as of September 23, 2026 · refreshed weekly

When Do SPX Options Stop Trading?

SPX options stop trading on two clocks: the AM settled monthly ends its session on Thursday, while SPXW weeklies run into Friday. Both cutoffs, with data.

SPX options stop trading on two different clocks, and the one that applies to a position depends on the root symbol on the contract rather than on the expiration date printed next to it. The monthly AM-settled contract, root SPX, holds its last regular session on the business day before the third Friday, normally the Thursday. An SPXW weekly carrying that same third-Friday date trades into Friday afternoon and settles against the 4:00 p.m. ET close. Ordinary single-stock timing is covered in when do options expire and what time options stop trading. This page stays on the index contract.

SPX and SPXW: one expiration date, two last trading days

Every third Friday carries both roots at once. SPX is the AM-settled monthly: its payoff comes from SET, the Special Opening Quotation built from the Friday opening prints of the S&P 500 members. SPXW is the weekly root, PM-settled, with a payoff taken from the index level at Friday's 4:00 p.m. ET close. Same underlying index, same strike ladder, same expiration date on the screen, same cash settlement into the account. The last trading day is where the two part.

The tape shows it plainly. The panel below takes the May 15, 2026 expiration, a third Friday, and counts contracts traded in each session of its final week, split by root.

QueryContracts traded per session into the May 15, 2026 expiration, by root
session_dateday_labelam_settled_spx_contractsweekly_spxw_contracts
2026-05-11Mon May 116576698800
2026-05-12Tue May 1277897121974
2026-05-13Wed May 13104268180476
2026-05-14Thu May 14238633547265
2026-05-15Fri May 1503003170
The exact SQL behind every number
SELECT
    toString(toDate(toTimeZone(window_start, 'America/New_York')))                    AS session_date,
    formatDateTime(toDate(toTimeZone(window_start, 'America/New_York')), '%a %b %e')  AS day_label,
    sum(if(startsWith(ticker, 'O:SPXW'), 0, volume))                                  AS am_settled_spx_contracts,
    sum(if(startsWith(ticker, 'O:SPXW'), volume, 0))                                  AS weekly_spxw_contracts
FROM global_markets.options_minute_aggs
WHERE (startsWith(ticker, 'O:SPX260515') OR startsWith(ticker, 'O:SPXW260515'))
  AND window_start >= toDateTime('2026-05-11 08:00:00', 'UTC')
  AND window_start <  toDateTime('2026-05-16 04:00:00', 'UTC')
GROUP BY session_date, day_label
ORDER BY session_date
Run this yourself

The AM-settled root's last full session is Thu May 14, with 238633 contracts changing hands. On the expiration date itself, Fri May 15, that root records 0 contracts, while the weekly carrying the identical date trades 3003170. Expiration-day activity in the index lives in the weekly.

When does the AM-settled SPX contract stop trading?

Cboe's SPX product specification sets regular trading at 9:30 a.m. to 4:15 p.m. ET, with a curb session running to 5:00 p.m. ET, and states that trading in an expiring SPX series ordinarily ceases on the business day preceding the day on which the settlement value is calculated. As of September 2026 that is the rule for the third-Friday monthly: its regular life ends on Thursday. The 4:15 p.m. finish is itself a standing index-option difference, fifteen minutes past the 4:00 p.m. close of the stock market.

The panel below slices that Thursday into ten-minute buckets from 3:00 p.m. ET onward and keeps the buckets in which the AM-settled root actually traded.

QueryThe final hours of the AM settled SPX monthly, Thursday May 14, 2026 (ET)
et_timeam_settled_spx_contractsweekly_spxw_contracts
15:0066298405
15:1043317972
15:20518333713
15:30670310491
15:401026423697
15:501144333810
16:00694740752
16:10173513366
The exact SQL behind every number
SELECT
    formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 10 MINUTE), '%H:%i') AS et_time,
    sum(if(startsWith(ticker, 'O:SPXW'), 0, volume)) AS am_settled_spx_contracts,
    sum(if(startsWith(ticker, 'O:SPXW'), volume, 0)) AS weekly_spxw_contracts
FROM global_markets.options_minute_aggs
WHERE (startsWith(ticker, 'O:SPX260515') OR startsWith(ticker, 'O:SPXW260515'))
  AND window_start >= toDateTime('2026-05-14 19:00:00', 'UTC')
  AND window_start <  toDateTime('2026-05-14 21:30:00', 'UTC')
GROUP BY et_time
HAVING am_settled_spx_contracts > 0
ORDER BY et_time
Run this yourself

The last ten-minute bucket carrying AM-settled volume opens at 16:10 ET with 1735 contracts. Once that bucket closes, a holder of the monthly has no regular-session market left in it.

Is anything open on expiration Friday morning?

One window exists on paper. During 2025 Cboe filed and received approval for expiring AM-settled index options to trade in the overnight Global Trading Hours session, ceasing at 9:25 a.m. ET on the expiration date, shortly ahead of the opening prints that build SET. Access to that session varies by broker, and many retail platforms do not route to it. The panel below counts the 8:00 a.m. to 10:00 a.m. ET window on the expiration Friday.

QueryExpiration Friday, 8:00 a.m. to 10:00 a.m. ET: which root is trading
et_timeam_settled_spx_contractsweekly_spxw_contractsam_settled_premarket_totalweekly_premarket_total
09:3002080220376724
09:4501687020376724
The exact SQL behind every number
SELECT
    et_time,
    am_settled_spx_contracts,
    weekly_spxw_contracts,
    sum(am_settled_spx_contracts) OVER () AS am_settled_premarket_total,
    sum(weekly_spxw_contracts)    OVER () AS weekly_premarket_total
FROM
(
    SELECT
        formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 15 MINUTE), '%H:%i') AS et_time,
        sum(if(startsWith(ticker, 'O:SPXW'), 0, volume)) AS am_settled_spx_contracts,
        sum(if(startsWith(ticker, 'O:SPXW'), volume, 0)) AS weekly_spxw_contracts
    FROM global_markets.options_minute_aggs
    WHERE (startsWith(ticker, 'O:SPX260515') OR startsWith(ticker, 'O:SPXW260515'))
      AND window_start >= toDateTime('2026-05-15 12:00:00', 'UTC')
      AND window_start <  toDateTime('2026-05-15 14:00:00', 'UTC')
    GROUP BY et_time
)
ORDER BY et_time
Run this yourself

Across that two-hour window the AM-settled root records 0 contracts, against 376724 in the weekly. For a trader on a standard retail platform, Thursday's close is the practical exit for the monthly, and a position carried past it goes to settlement at SET.

When does an expiring SPXW weekly stop trading?

An SPXW with days left on it trades to 4:15 p.m. ET like the rest of the index complex. On its own expiration day it stops at 4:00 p.m. ET, in line with the closing index level it settles against, and at 1:00 p.m. ET on a scheduled half day. Those extra fifteen minutes belong to contracts with life remaining, and the expiring weekly gives them up.

QueryThe final hours of the expiring SPXW weekly, Friday May 15, 2026 (ET)
et_timeweekly_spxw_contractsam_settled_spx_contractsam_settled_afternoon_total
15:007049700
15:108296800
15:206306000
15:306435500
15:408555400
15:5016146200
16:0040900
The exact SQL behind every number
SELECT
    et_time,
    weekly_spxw_contracts,
    am_settled_spx_contracts,
    sum(am_settled_spx_contracts) OVER () AS am_settled_afternoon_total
FROM
(
    SELECT
        formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 10 MINUTE), '%H:%i') AS et_time,
        sum(if(startsWith(ticker, 'O:SPXW'), volume, 0)) AS weekly_spxw_contracts,
        sum(if(startsWith(ticker, 'O:SPXW'), 0, volume)) AS am_settled_spx_contracts
    FROM global_markets.options_minute_aggs
    WHERE (startsWith(ticker, 'O:SPX260515') OR startsWith(ticker, 'O:SPXW260515'))
      AND window_start >= toDateTime('2026-05-15 19:00:00', 'UTC')
      AND window_start <  toDateTime('2026-05-15 21:30:00', 'UTC')
    GROUP BY et_time
    HAVING weekly_spxw_contracts > 0
)
ORDER BY et_time
Run this yourself

Reading the same 3:00 p.m. onward clock on Friday: the last weekly bucket with volume opens at 16:00 ET and carries 409 contracts, while the AM-settled root prints 0 contracts across the whole afternoon. Same expiration date on both, one full session apart.

SET is not Thursday's close

SET is calculated once, on the morning of an AM-settled expiration, from the first regular-session trade in each S&P 500 member. The members do not all open in the same second, and the resulting number is a composite of Friday's opening prints that appears on no intraday chart. The distance between Thursday's close and Friday's opening level is the move an AM-settled holder carries with no market in which to trade it.

The panel below measures that overnight move on SPY, an S&P 500 exchange traded fund, for every monthly expiration Friday since late 2025. SET is computed from the index members themselves, and SPY stands in here as the tradable read of the same overnight move.

QueryPrior close to expiration-Friday open, monthly expirations (SPY, percent)
expiration_dateexpiration_labelovernight_gap_pctabs_gap_pctavg_abs_gap_pct
2025-10-17Oct 17, 2025-0.170.170.44
2025-11-21Nov 21, 20250.390.390.44
2025-12-19Dec 19, 20250.020.020.44
2026-01-16Jan 16, 20260.210.210.44
2026-02-20Feb 20, 2026-0.320.320.44
2026-03-20Mar 20, 2026-0.50.50.44
2026-04-17Apr 17, 20260.640.640.44
2026-05-15May 15, 2026-0.850.850.44
2026-07-17Jul 17, 2026-1.151.150.44
2026-08-21Aug 21, 20260.450.450.44
2026-09-18Sep 18, 2026-0.170.170.44
The exact SQL behind every number
SELECT
    toString(d)                          AS expiration_date,
    formatDateTime(d, '%b %e, %Y')       AS expiration_label,
    round(gap_pct, 2)                    AS overnight_gap_pct,
    round(abs(gap_pct), 2)               AS abs_gap_pct,
    round(avg(abs(gap_pct)) OVER (), 2)  AS avg_abs_gap_pct
FROM
(
    SELECT
        d,
        100 * (toFloat64(open_px) - toFloat64(prev_close)) / toFloat64(prev_close) AS gap_pct
    FROM
    (
        SELECT
            date                                       AS d,
            open                                       AS open_px,
            lagInFrame(close) OVER (ORDER BY date ASC) AS prev_close
        FROM global_markets.stocks_daily_aggs
        WHERE ticker = 'SPY'
          AND date >= '2025-10-01'
          AND date <= today() - 2
    )
    WHERE toDayOfWeek(d) = 5
      AND toDayOfMonth(d) BETWEEN 15 AND 21
)
ORDER BY expiration_date
Run this yourself

Across 11 monthly expirations beginning Oct 17, 2025, the absolute move from the prior close to the expiration-Friday open averaged 0.44%. The most recent one, Sep 18, 2026, measured 0.17%. A third Friday that lands on a market holiday drops out of the panel on its own, since no session prints.

A strike pinned at Thursday's close

Take a hypothetical to see what the two clocks do to one strike. The index finishes Thursday at 6,000. A 6,000-strike call in the AM-settled monthly and a 6,000-strike call in the Friday weekly look identical at that moment, both sitting exactly at the money. The monthly holder is finished trading: that contract resolves against SET the next morning, and an overnight move of the average size measured above settles it one way or the other. The weekly holder gets another full session and a live market into 4:00 p.m. Friday. AM settled versus PM settled options works through the settlement mechanics, and SPX versus SPY options covers contract size and cash settlement.

FAQ

What time do SPX options stop trading each day?

Regular trading in SPX and SPXW runs from 9:30 a.m. to 4:15 p.m. ET, fifteen minutes past the 4:00 p.m. close of the stock market, with a curb session to 5:00 p.m. ET. An expiring SPXW is the exception: it stops at 4:00 p.m. ET on its expiration day, and at 1:00 p.m. ET on a scheduled half day.

Can I close a monthly SPX position on expiration Friday?

Not in the regular session. The AM-settled monthly held its last regular session on the Thursday. Cboe's approved extension lets expiring AM-settled SPX trade in the overnight Global Trading Hours session until 9:25 a.m. ET on the expiration date, and reaching that session depends on the broker.

Do SPX and SPXW with the same third-Friday date expire at the same moment?

No. The AM-settled SPX contract settles on Friday's opening prints and stopped trading the previous day. The SPXW weekly with that same date trades to 4:00 p.m. ET on Friday and settles on the closing level.

What is SET, and where does it come from?

SET is the Special Opening Quotation for the S&P 500, calculated on the morning of an AM-settled expiration from the first regular-session trade in each index member. It is published under the symbol SET, and it is the number that decides every AM-settled SPX contract for that date.

Why does my SPX contract show a Friday expiration if it stopped trading Thursday?

The expiration date and the last trading day are two separate fields on the contract. An AM-settled monthly expires Friday and stops trading Thursday. The date on the ticker is the settlement date, not the trading deadline.


Every panel above ships with the SQL that produced it, one expander away. To check when a specific SPX expiration last traded, ask the question in plain English on the Strasmore terminal.

Data notes and method
  • The two roots are separated by the contract symbol prefix. A symbol beginning O:SPXW is the weekly, PM-settled root. A symbol beginning O:SPX followed directly by the expiration digits is the AM-settled monthly.
  • All stored timestamps are UTC. Every intraday panel converts to America/New_York before bucketing, and the May 2026 windows sit in Eastern Daylight Time.
  • The intraday windows deliberately run wider than the regular session, from 3:00 p.m. to 5:30 p.m. ET and from 8:00 a.m. to 10:00 a.m. ET, keeping any print after the 4:00 p.m. stock market close visible rather than filtered away.
  • Session buckets use Eastern calendar dates. An evening overnight print counts under the evening's own date.
  • Trading hours and the expiring-series cutoffs quoted here come from the Cboe SPX product specification, read in September 2026, together with Cboe's 2025 notices on the Global Trading Hours extension for expiring AM-settled series. Product specifications change, and that extension was phased in across the same period.
  • The gap panel reads SPY, an S&P 500 exchange traded fund, as a tradable stand-in for the index level. The settlement value itself is built from the index members.
#spx#options expiration#am settlement#index options#cutoff times