New
The Tools APIs are now live: option scanning, backtest search, intraday backtesting, and time & sales over REST
NEWIn every ORATS Data API plan

WHAM: event-day implied moves for SPX, NDX, and RUT

Weekend and Holiday Adjustments and Macro-Moves

See which days the options market is pricing for bigger moves, and how much bigger.

Updated every hour for SPX, NDX, RUT, and their ETFs, with history back to 2022.

See plansRead the docs

SPX, the next 13 sessions

Example: Jun 26, 2024, 3:00 PM ET

6 event days in the next 13 sessions. The biggest is CPI on Thu Jul 11, priced at 1.79 times a normal day. Point at any day, or tab to the chart and use the arrow keys.

  • PCEFri Jun 281.19x±36 pts
  • ISMMon Jul 11.12x±33 pts
  • Jobs (NFP)Fri Jul 51.60x±49 pts
  • PowellTue Jul 91.22x±38 pts
  • CPIThu Jul 111.79x±56 pts
  • PowellMon Jul 151.37x±44 pts
  • Event day
  • Rest of today
  • Next session
  • Usual for the time of day
  • A normal day, 1.0x, ±31 pts
  • Market closed

See which releases the market is pricing

An economic calendar lists every release. WHAM shows you which days options are pricing for bigger moves, and how much bigger. Here are the 13 sessions after the update at 3:00 PM ET on Wed Jun 26, 2024.

Jun 24 to Jul 19, 2024

31 releases marked high importance

  • A release marked high importance
  • Event day
  • Market closed
  1. Your calendar lists every release

    In the 13 sessions after the update, the economic calendar listed 31 releases marked high importance, on 10 of the 13 days. The list doesn't tell you which of them options are pricing for a bigger move.

  2. WHAM shows the days options priced for bigger moves

    Six of the 13 days were priced as event days. CPI on Jul 11 was priced at 1.79 times a normal day, ±56 SPX points against ±31, and the jobs report on Jul 5 at 1.60.

  3. And the releases they didn't price

    Five other days had releases marked high importance, 16 in all, including JOLTS, ISM services, and retail sales. None of those days was priced as an event day. Powell's testimony on Jul 9 had no high-importance tag, and options priced that day at 1.22 times a normal day.

  4. Closed days count as a small part of a trading day

    The market was closed on Jul 4 for Independence Day, and closed at 1:00 PM on Jul 3. WHAM counts each closed day as a small part of a trading day, so the multiples on either side of the holiday mean the same as in any other week.

What it tells you before you trade

Three readings from the same update, Wed Jun 26, 2024 at 3:00 PM ET.

Priced move, SPX pointsSPX 5,468.6

  • PCEJun 28 · 1.19x±36
  • ISMJul 1 · 1.12x±33
  • Jobs (NFP)Jul 5 · 1.60x±49
  • PowellJul 9 · 1.22x±38
  • CPIJul 11 · 1.79x±56
  • PowellJul 15 · 1.37x±44
  • A normal day±31

Size each event day in index points

WHAM gives the move options are pricing for each event day. On CPI day that was ±56 SPX points, against ±31 on a normal day, so you can set strikes, stops, and position size for it.

Mon Jul 15 straddle

100.7 pts

80.7
  • PCE Jun 28+1.4
  • ISM Jul 1+0.9
  • Jobs Jul 5+5.4
  • Powell Jul 9+1.7
  • CPI Jul 11+7.6
  • Powell Jul 15+3.0

+20.0 for the event days

See how much of the premium is for the event days

Of the 100.7 points in the Jul 15 SPX straddle, about 20.0 were the extra priced for the six event days, 7.6 of them for CPI. Over the next 10 sessions, the extra priced for the event days was 32% of all the variance priced.

Rest of today, from 3:00 PM

±9 pts to the close

usual 0.79x
0.83x · above usual

Next session, Thu Jun 27

±28 pts

usual 1.02x
1.00x · below usual

Trade today's and tomorrow's expiration

Every hour, WHAM compares the rest of today and the next session with the usual pace for that time of day. At 3:00 PM on Jun 26, the rest of the day was priced a little above its usual pace, 0.83 against 0.79, and the next session a little below its usual, 1.00 against 1.02.

Half of SPX's 2% days were event days

From May 2022 to October 2026, the sessions WHAM listed as event days at 3:46 PM the session before were 26% of all 1,086 sessions, and 32 of the 64 in which SPX moved more than 2%.

Event days285 sessions

Sessions WHAM listed as event days at 3:46 PM the session before

Average move
0.94%
Moved more than 2%
1 in 9

32 of 285 moved more than 2%

Every other session801 sessions

Sessions WHAM did not list

Average move
0.67%
Moved more than 2%
1 in 25

32 of 801 moved more than 2%

  • Moved more than 2%
  • 1% to 2%
  • Less than 1%

Average move, by release

The sessions WHAM listed, grouped by release, and every session it didn't list.

  • CPI 421.10%
  • Retail Sales 151.08%
  • Jobs (NFP) 351.01%
  • ISM 180.96%
  • FOMC 240.89%
  • Other event days 1140.89%
  • PCE 250.77%
  • Every other session 8010.67%

JOLTS and Powell days are left out, with fewer than 15 sessions each. The number beside each name is its sessions.

Each session's move is SPX from the 3:46 PM ET update to the next session's 3:46 PM ET update. The event list is the one WHAM published at 3:46 PM the session before. WHAM's history is computed with its current method, which was developed on this same history, so read this as a description of the past. Past results don't guarantee future ones.

Test it on your own strategy

Get it from the Data API

The chart at the top of this page is one WHAM update, and the request below returns it. GET /datav2/wham returns the latest update in the same format, for any of the six tickers.

GET/datav2/wham
The latest update for one or more tickers, about five minutes after its quote time. In every plan, from the Delayed Data API up.
GET/datav2/hist/wham
Any past update, by trade date and time, back to each ticker's first. The same fields, so a backtest reads what WHAM would have shown at each update.

In each update

GET https://api.orats.io/datav2/hist/wham?token=my-token&ticker=SPX&tradeDate=2024-06-26&time=1500

{  "data": [    {      "ticker": "SPX",      "tradeDate": "2024-06-26",      "quoteDate": "2024-06-26T18:57:20Z",      "spot": 5468.6,      "iv": {        "d1": 0.0944,        "d3": 0.1114,        "d5": 0.1043,        "d10": 0.1194,        "d15": 0.1226      },      "ivExMacro": {        "d1": 0.0944,        "d3": 0.1007,        "d5": 0.0968,        "d10": 0.0985,        "d15": 0.1016      },      "macroShare10d": 0.3194,      "contango10d": -0.0218,      "exMacroCurveR2": {        "line": 0.2624,        "quadratic": 0.2878      },      "today": {        "restOfDayMovePct": 0.0016,        "moveMultiple": 0.83,        "moveMultipleMedian": 0.79,        "moveMultipleSide": "high"      },      "nextSession": {        "date": "2024-06-27",        "impliedMovePct": 0.0051,        "moveMultiple": 1,        "moveMultipleMedian": 1.02,        "moveMultipleSide": "low",        "event": "Initial Jobless Claims"      },      "eventDays": [        {          "date": "2024-06-28",          "daysAhead": 2,          "label": "PCE",          "eventType": "PCE",          "impliedMovePct": 0.0065,          "priced": 1.19,          "typicalMovePct": 0.0054,          "relevance": "High"        },        {          "date": "2024-07-01",          "daysAhead": 3,          "label": "ISM",          "eventType": "ISM",          "impliedMovePct": 0.0061,          "priced": 1.12,          "typicalMovePct": 0.0055,          "relevance": "High"        },        {          "date": "2024-07-05",          "daysAhead": 6,          "label": "Jobs (NFP)",          "eventType": "Jobs (NFP)",          "impliedMovePct": 0.0089,          "priced": 1.6,          "typicalMovePct": 0.0056,          "relevance": "Very high"        },        {          "date": "2024-07-09",          "daysAhead": 8,          "label": "Powell",          "eventType": "Powell",          "impliedMovePct": 0.0069,          "priced": 1.22,          "typicalMovePct": 0.0057,          "relevance": "Moderate"        },        {          "date": "2024-07-11",          "daysAhead": 10,          "label": "CPI",          "eventType": "CPI",          "impliedMovePct": 0.0102,          "priced": 1.79,          "typicalMovePct": 0.0057,          "relevance": "Very high"        },        {          "date": "2024-07-15",          "daysAhead": 12,          "label": "Powell",          "eventType": "Powell",          "impliedMovePct": 0.008,          "priced": 1.37,          "typicalMovePct": 0.0058,          "relevance": "Moderate"        }      ],      "hv": null,      "impliedVsRealized": {        "d5": null,        "d10": null      },      "calendar": [        {          "date": "2024-06-26",          "dow": "Wed",          "label": "New Home Sales",          "timeEt": null,          "eventType": "other",          "priced": null,          "typical": 1,          "tail": null,          "relevance": "Low"        },        {          "date": "2024-06-27",          "dow": "Thu",          "label": "Initial Jobless Claims",          "timeEt": null,          "eventType": "other",          "priced": null,          "typical": 1,          "tail": null,          "relevance": "Low"        },        {          "date": "2024-06-28",          "dow": "Fri",          "label": "PCE",          "timeEt": null,          "eventType": "PCE",          "priced": 1.19,          "typical": 1,          "tail": null,          "recent": null,          "relevance": "High"        },        ...      ]    }  ]}

This update is from before Aug 26, 2026, when WHAM began storing realized volatility and each release type's history. So hv and impliedVsRealized are null here, the calendar's timeEt, tail, and recent are null, and typical is 1. Updates since then have them, though hv and impliedVsRealized can be null when realized volatility wasn't available.

Six tickers, every hour

Three indexes and their ETFs, updated through the trading day, with every update kept back to each one's first.

SPX

S&P 500 index

History since
May 2022
Updates kept
8,800+

SPY

S&P 500 ETF

History since
January 2023
Updates kept
7,500+

NDX

Nasdaq-100 index

History since
August 2022
Updates kept
8,300+

QQQ

Nasdaq-100 ETF

History since
January 2023
Updates kept
7,500+

RUT

Russell 2000 index

History since
January 2024
Updates kept
5,400+

IWM

Russell 2000 ETF

History since
April 2024
Updates kept
4,900+

Update times, Eastern

  • 9:34
  • 10:00
  • 11:00
  • 12:00
  • 1:00
  • 2:00
  • 3:00
  • 3:46

Each update is published about five minutes after its quote time. The 9:34 AM update is in the history only. On early-close days the updates are 9:34, 10:00, 11:00, 12:00, and 12:46.

API Pricing

WHAM is included in every plan, starting with the Delayed Data API.
Individual
Institution

Delayed Data API

Perfect for getting started

$199

/ month

Add Tools APIs:

NEW

Includes:

20,000 requests per month

WHAM + HistoryNEW

Tickers

Strikes + Near EOD History

Strikes by OPRA + Near EOD History

Monies Implied + Near EOD History

Monies Forecast + Near EOD History

SMV Summaries + Near EOD History

Core Data + Near EOD History

Daily Price

Historical Volatility

Earnings History

Stock Split History

IV Rank + History

View API docs

Live Data API

Best for active traders

$299

/ month

Add Tools APIs:

NEW

Everything in Delayed Data API, plus:

100,000 requests per month

Live Strikes

Live Strikes by Expiry

Live Strikes by OPRA

Live Monies Implied

Live Monies Forecast

Live SMV Summaries

Expiration Dates

Note that to access the live endpoints, you must first sign the live data agreements (available after signup).

View API docs

Live Intraday API

Every data endpoint, down to the minute

$599

/ month

Add Tools APIs:

NEW

Everything in Live Data API, plus:

1,000,000 requests per month

Intraday Strikes Chain

Intraday Strikes Chain History

Intraday Strikes by OPRA

Intraday Strikes by OPRA History

Intraday Monies Implied

Intraday Monies Implied History

Intraday SMV Summaries

Intraday SMV Summaries History

Note that to access the live endpoints, you must first sign the live data agreements (available after signup).

View API docs

All-In API

Access to all ORATS endpoints

$1,395Save $496 / month

$899

/ month

Tools APIs included:

NEW

Every ORATS API in one subscription:

1,000,000 requests per month

WHAM + HistoryNEW

Tickers

Strikes + Near EOD History

Strikes by OPRA + Near EOD History

Monies Implied + Near EOD History

Monies Forecast + Near EOD History

SMV Summaries + Near EOD History

Core Data + Near EOD History

Daily Price, Earnings, and Split History

Historical Volatility and IV Rank + History

Live Strikes, by Expiry, and by OPRA

Live Monies Implied and Forecast

Live SMV Summaries and Expiration Dates

Intraday Strikes Chain + History

Intraday Strikes by OPRA + History

Intraday Monies Implied + History

Intraday SMV Summaries + History

End-of-day history back to 2007

One-minute history back to August 2020

Option Scanner API: ranked trade candidatesNEW

Backtest Finder API: 300M+ precomputed backtestsNEW

Intraday Backtester API: custom one-minute backtestsNEW

Time & Sales API: tick-level prints with greeksNEW

Note that to access the live endpoints, you must first sign the live data agreements (available after signup).

View API docs

FAQ

Questions about WHAM

What is WHAM?

WHAM stands for Weekend and Holiday Adjustments and Macro-Moves. Every hour it uses SPX, SPY, QQQ, NDX, RUT, and IWM option prices to show you which days ahead the market is pricing for a bigger move than a normal day and by how much, implied volatility adjusted for weekends and holidays, and whether the rest of today and the next session are priced to move more or less than usual.

Which plans include WHAM?

Every ORATS Data API plan, starting with the Delayed Data API at $199 a month. The Live, Live Intraday, and All-In plans include it, and so do professional and enterprise plans.

How often does it update?

Every hour on trading days, from 10:00 AM to 3:00 PM Eastern, plus a 3:46 PM update. On early-close days the last update is at 12:46 PM. Each update is published about five minutes after its quote time, and the history also has a 9:34 AM update for every day.

How far back does the history go?

SPX from May 2022, NDX from August 2022, SPY and QQQ from January 2023, RUT from January 2024, and IWM from April 2024. The stored history is computed with WHAM's current method, so it shows what WHAM would have shown at each update.

What is a normal day?

The move options price for an ordinary session in the same update, from the curve with the event days taken out. Every multiple on this page is against it: 1.79x is a move 1.79 times a normal day's.

Why does WHAM count closed days as a small part of a trading day?

Little of the index's movement happens over weekends and holidays, so counting a closed day as a full day understates the volatility priced for the trading days around it. WHAM counts each closed day as a small part of a trading day, so a week with a holiday and a week without one, or an expiration before a long weekend and one after it, compare directly.

Is an event day a forecast?

No. An event day is what the options market is pricing: a day priced for a bigger move than a normal day, and how much bigger. The typical move for each type of day is a record of how the last 12 such days moved, not a forecast.

Why does this page show June 2024?

It's one past update, picked because it shows most of what WHAM reports in one place: six event days across three weeks, a holiday, and an early close. The example's numbers all come from that update; the record of 2% days covers every session from May 2022 to October 2026.

Why are some fields null in older updates?

Updates before Aug 26, 2026 were rebuilt from archived quotes. They have every event day, move, and implied volatility, but no realized volatility or release history, so hv and impliedVsRealized are null, and the calendar has no release times, tail, or recent, with typical at 1. Updates since then have them, though hv and impliedVsRealized can be null when realized volatility wasn't available.

How do I get the data?

With your Data API token. GET /datav2/wham returns the latest update and GET /datav2/hist/wham returns any past update. Every field is defined in the docs.
Contact Us
Questions about the API requirements? Want to become an affiliate? Curious about the backtester? Leave us a message and we'll get back to you shortly.
Your email
Your message
Submit
ORATS University
ORATS University
Master the art of options
Research
Implementation
Risk
Review
The opinions and ideas presented herein are for informational and educational purposes only and should not be construed to represent trading or investment advice tailored to your investment objectives. You should not rely solely on any content herein and we strongly encourage you to discuss any trades or investments with your broker or investment adviser, prior to execution. None of the information contained herein constitutes a recommendation that any particular security, portfolio, transaction, or investment strategy is suitable for any specific person. Option trading and investing involves risk and is not suitable for all investors. For more information please see our disclaimer.
Interactive Brokers is not affiliated with Option Research & Technology Services, LLC and does not endorse or recommend any information or advice provided by Option Research & Technology Services, LLC.