Strasmore Research
Deep Dives · Matt ConnorBy Matt Connor ·

AM vs PM Settled Index Options Explained

AM settled index options settle off Friday's opening quotation and stop trading Thursday. PM settled options run to the close. The gap between them, measured.

AM settled and PM settled index options differ on one thing: which price the contract cashes out against. An AM settled contract, such as the classic third Friday S&P 500 option, settles against a special opening quotation assembled from Friday morning's opening prints, and its final trade happens Thursday afternoon. A PM settled contract, such as an SPXW weekly or an option on the SPY exchange traded fund, settles against the 4:00 pm ET closing price and trades right up to the bell.

The difference sounds administrative. It decides how many hours a holder spends locked into a position they can no longer trade, and it can hand two otherwise identical contracts two different payouts on the same day. Below: the mechanics of each convention, then the size of that difference measured across every monthly expiration from January 2024 through July 2026.

What does AM settled mean?

AM settlement values a contract off the opening, and the opening here is a construction rather than a price anyone traded. On expiration morning the exchange takes the first regular session trade price of every stock in the index, whenever each one prints, and combines those prices into a single figure: the special opening quotation, published for the S&P 500 under the ticker SET. Every AM settled contract on that index cashes out against that one number, and against nothing else.

Four mechanics follow from the definition:

  • The last trading session ends Thursday. An AM settled third Friday contract makes its final trade the afternoon before expiration. Once Thursday's bell rings, the position cannot be closed, rolled or adjusted.
  • Settlement is in cash. Index options pay the difference in dollars and no shares change hands. Exercise style is European, meaning exercise happens only at expiration (American vs European options covers what that changes for a holder).
  • The quotation is not a snapshot. Component stocks open at different instants, and each contributes its own first print whenever that print lands (the opening auction explains how a stock's first price of the day is set).
  • The figure publishes late. It is disseminated once the last component has opened, which can be several minutes into the session.

What does PM settled mean?

PM settlement uses the closing price of the underlying on expiration day, struck at 4:00 pm ET and set by the closing auction, the largest single print of most trading days (the closing auction walks through how that price forms). The contract trades through the bell. A holder who wants out at 3:55 pm can sell into a live market instead of waiting overnight for a number to be assembled.

PM settlement covers most of what a retail trader touches: SPXW weekly and end of month index contracts, plus listed ETF options such as SPY, QQQ and IWM. The ETF options carry a second difference. They are American style and settle in shares, so an assignment delivers the fund rather than cash. When options expire maps the weekly, monthly and quarterly cycles.

How far can the market move between the last trade and settlement?

An AM settled holder's last decision point is Thursday's close. The settlement number starts forming seventeen and a half hours later. The panel below measures that window on SPY, the S&P 500 tracker, one row per monthly expiration: the overnight move from Thursday's close to Friday's opening print, beside the move from that opening print to Friday's close.

QueryEvery monthly expiration since January 2024: the overnight gap, then the session that followed
The exact SQL behind every number
WITH sessions AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
           toFloat64(argMin(open, window_start)) AS first_print,
           toFloat64(argMax(close, window_start)) AS last_print
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND toDate(toTimeZone(window_start, 'America/New_York')) BETWEEN toDate('2023-12-01') AND toDate('2026-07-31')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY session_date
),
sequenced AS (
    SELECT session_date,
           first_print,
           last_print,
           any(last_print) OVER (ORDER BY session_date ASC
                                 ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prior_close
    FROM sessions
)
SELECT session_date AS expiration_date,
       formatDateTime(session_date, '%b %e, %Y') AS expiry_label,
       round((first_print / prior_close - 1) * 100, 2) AS overnight_gap_pct,
       round((last_print / first_print - 1) * 100, 2) AS friday_session_pct
FROM sequenced
WHERE prior_close > 0
  AND session_date >= toDate('2024-01-01')
  AND toDayOfWeek(session_date) = 5
  AND toDayOfMonth(session_date) BETWEEN 15 AND 21
ORDER BY expiration_date
Run this yourself

Read the two columns as two separate risks. Across the 29 monthly expirations in the window, the opening print at Jan 19, 2024 landed 0.25% from Thursday's close, and the session that followed moved 1%. At Jul 17, 2026 the same pair measured -1.16% and 0.15%. A PM settled holder owns the second column and can trade through it. An AM settled holder owns the first and cannot.

The same strike, two settlement prices

Hold everything constant except the settlement convention. Take one call struck at the nearest whole dollar to Thursday's closing price, the last level an AM settled holder could trade against. The AM payoff is Friday's opening print minus the strike, floored at zero. The PM payoff is Friday's closing price minus the strike, floored at zero. Same strike, same underlying, same expiration date, two numbers.

QueryOne at-the-money call settled two ways: the ten widest splits since January 2024
The exact SQL behind every number
WITH sessions AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
           toFloat64(argMin(open, window_start)) AS first_print,
           toFloat64(argMax(close, window_start)) AS last_print
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND toDate(toTimeZone(window_start, 'America/New_York')) BETWEEN toDate('2023-12-01') AND toDate('2026-07-31')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY session_date
),
sequenced AS (
    SELECT session_date,
           first_print,
           last_print,
           any(last_print) OVER (ORDER BY session_date ASC
                                 ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prior_close
    FROM sessions
),
expirations AS (
    SELECT session_date,
           first_print,
           last_print,
           round(prior_close, 0) AS strike,
           abs(first_print / prior_close - 1) * 100 AS gap_abs_raw
    FROM sequenced
    WHERE prior_close > 0
      AND session_date >= toDate('2024-01-01')
      AND toDayOfWeek(session_date) = 5
      AND toDayOfMonth(session_date) BETWEEN 15 AND 21
)
SELECT formatDateTime(session_date, '%b %e, %Y') AS expiry_label,
       round(gap_abs_raw, 2) AS gap_abs_pct,
       round(greatest(first_print - strike, 0), 2) AS am_settlement_usd,
       round(greatest(last_print - strike, 0), 2) AS pm_settlement_usd,
       round(abs(greatest(last_print - strike, 0) - greatest(first_print - strike, 0)), 2) AS settlement_spread_usd
FROM expirations
ORDER BY settlement_spread_usd DESC
LIMIT 10
Run this yourself

The widest split of the 29 expirations came at Dec 20, 2024, when the opening print sat 0.74% away from Thursday's close. The AM version of that call settled at $0 and the PM version at $4.87, a difference of $4.87 per share. A listed option covers 100 shares, so the cash difference on one contract is a hundred times that. Tenth on the ranking, Jun 20, 2025, still split $1.38 per share.

The contract is hypothetical. SPY options are PM settled in the real world, and the exercise isolates the settlement price while holding the strike, the underlying and the day fixed.

Why the difference concentrates on triple witching mornings

Triple witching is the quarterly session when stock index futures, stock index options and single stock options all expire (triple witching covers the mechanic, and the 2026 triple witching dates lists the calendar). The AM settled contracts among them reference the same opening quotation, computed once.

QueryThe same hypothetical on every session: expiration mornings against the rest of the tape
The exact SQL behind every number
WITH sessions AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
           toFloat64(argMin(open, window_start)) AS first_print,
           toFloat64(argMax(close, window_start)) AS last_print,
           toFloat64(sumIf(volume, (toHour(toTimeZone(window_start, 'America/New_York')) * 60
                + toMinute(toTimeZone(window_start, 'America/New_York'))) = 570)) AS open_minute_shares
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND toDate(toTimeZone(window_start, 'America/New_York')) BETWEEN toDate('2023-12-01') AND toDate('2026-07-31')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY session_date
),
sequenced AS (
    SELECT session_date,
           first_print,
           last_print,
           open_minute_shares,
           any(last_print) OVER (ORDER BY session_date ASC
                                 ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prior_close
    FROM sessions
),
labelled AS (
    SELECT session_date,
           multiIf(toDayOfWeek(session_date) = 5
                       AND toDayOfMonth(session_date) BETWEEN 15 AND 21
                       AND toMonth(session_date) IN (3, 6, 9, 12), 'triple witching Friday',
                   toDayOfWeek(session_date) = 5
                       AND toDayOfMonth(session_date) BETWEEN 15 AND 21, 'other monthly expiration',
                   'ordinary session') AS bucket,
           abs(first_print / prior_close - 1) * 100 AS gap_abs_raw,
           abs(greatest(last_print - round(prior_close, 0), 0)
               - greatest(first_print - round(prior_close, 0), 0)) AS spread_raw,
           open_minute_shares / 1000000 AS open_minute_millions
    FROM sequenced
    WHERE prior_close > 0
      AND session_date >= toDate('2024-01-01')
)
SELECT bucket,
       count() AS group_size,
       round(quantileDeterministic(0.5)(gap_abs_raw, cityHash64(session_date)), 2) AS median_gap_abs_pct,
       round(quantileDeterministic(0.5)(spread_raw, cityHash64(session_date)), 2) AS median_settlement_spread_usd,
       round(quantileDeterministic(0.5)(open_minute_millions, cityHash64(session_date)), 2) AS median_open_minute_volume_m
FROM labelled
GROUP BY bucket
ORDER BY group_size ASC
Run this yourself

Run the hypothetical on all 618 ordinary sessions as well and the arithmetic itself looks unremarkable. The median settlement difference measured $0 on triple witching Fridays, $0.8 on the other monthly expirations and $0.95 on an ordinary session. The median overnight gap tracks the same pattern, at 0.49% and 0.28% respectively.

What sets the morning apart is traffic. SPY's opening minute traded 0.95 million shares at the median on triple witching Fridays, against 0.62 million on an ordinary session. A quarter's worth of AM settled index positions cashes out against prints inside that window, alongside index futures rolling and single stock options expiring that afternoon. Where the open interest sits by strike is its own subject (max pain).

Why a settlement value can sit at a level the index never printed

The published index level is calculated continuously from last sale prices, so it only ever shows prices that existed together. The special opening quotation is calculated once, from a set of prices that never coexisted. The fastest components print at 9:30:00, the slowest can take minutes, and the index moves in between. The quotation is an arithmetic combination of first prints rather than an observation of the index.

Two things a holder can check on the tape:

  • The settlement value can fall outside the range the index published all morning. Nothing is broken when it does. That number was never a level anyone traded.
  • The wider the dispersion in those first prints, the further the quotation can sit from the index's own first tick (why spreads widen at the open covers why the opening minutes carry the loosest quotes of the session).
Method and data notes

Cash indexes do not trade, so the measurements above use SPY, the S&P 500 tracker, as the stand-in for the index level at each reference time. Prices come from regular session minute bars: the opening price of the 9:30 am ET bar as the morning print, and the closing price of the last bar before 4:00 pm as the close. A monthly expiration is any Friday falling between the 15th and the 21st, and a triple witching Friday is one of those in March, June, September or December.

The hypothetical call is struck at the nearest whole dollar to Thursday's closing price, recomputed for each expiration. Both payoffs are intrinsic value at settlement, floored at zero. Premium, time value and exercise costs are outside the exercise.

QueryThe prices behind the arithmetic: Thursday's close, the strike, Friday's open and close
The exact SQL behind every number
WITH sessions AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
           toFloat64(argMin(open, window_start)) AS first_print,
           toFloat64(argMax(close, window_start)) AS last_print
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND toDate(toTimeZone(window_start, 'America/New_York')) BETWEEN toDate('2023-12-01') AND toDate('2026-07-31')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY session_date
),
sequenced AS (
    SELECT session_date,
           first_print,
           last_print,
           any(last_print) OVER (ORDER BY session_date ASC
                                 ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prior_close
    FROM sessions
)
SELECT session_date AS expiration_date,
       formatDateTime(session_date, '%b %e, %Y') AS expiry_label,
       round(prior_close, 2) AS thursday_close,
       round(prior_close, 0) AS strike_usd,
       round(first_print, 2) AS friday_open,
       round(last_print, 2) AS friday_close
FROM sequenced
WHERE prior_close > 0
  AND session_date >= toDate('2024-01-01')
  AND toDayOfWeek(session_date) = 5
  AND toDayOfMonth(session_date) BETWEEN 15 AND 21
ORDER BY expiration_date
Run this yourself

The strike column is Thursday's close rounded to the dollar. The two settlement references are the columns beside it.

AM vs PM settled index options: which is which

  • AM settled: the standard third Friday contracts on the S&P 500 (SPX), the Nasdaq 100 (NDX) and the Russell 2000 (RUT). Last trade Thursday afternoon, cash settled against Friday's opening quotation.
  • PM settled: SPXW weekly and end of month index contracts, cash settled against the 4:00 pm ET close, trading through the bell.
  • PM settled and physically settled: listed ETF options such as SPY, QQQ and IWM. American style, deliverable in shares on assignment.
  • A Wednesday exception: VIX options and futures settle against a special opening quotation on a Wednesday morning rather than a Friday.

The root symbol is the tell. On the S&P 500, SPX is the AM settled third Friday contract and SPXW is the PM settled weekly. Two roots on one index, settling hours apart against two different prices.

FAQ

What does AM settled mean in options?

AM settled means the contract cashes out against a special opening quotation built from the expiration morning's opening prints rather than against a closing price. On the S&P 500 that figure publishes under the ticker SET. The contract's final trade happens the previous afternoon.

Do AM settled options trade on their expiration day?

No. A standard third Friday index option makes its last trade on the Thursday afternoon before expiration. The settlement number forms the next morning, and the position cannot be closed or rolled in between.

Are SPY options AM or PM settled?

PM settled. Listed ETF options such as SPY, QQQ and IWM settle against the 4:00 pm ET closing price, trade through the closing bell, and deliver shares on assignment rather than cash.

Why can a settlement price differ from the index open?

The index open is one instant of a continuously calculated level. The settlement quotation is assembled from each component's first regular session trade, and those trades land at different moments. It is a combination of prices that never coexisted, which is how it can land outside the range the index printed all morning.

What happens when the third Friday is an exchange holiday?

The monthly expiration moves to the Thursday. An AM settled contract then settles against Thursday morning's opening quotation and makes its final trade on Wednesday afternoon. When options expire tracks those calendar shifts.


Every figure above comes from a stored query over regular session minute bars, versioned with the post. Open any panel to read the SQL, or run the same window on the Strasmore terminal.