STRASMORE/EXPLORE 2,469 QUERIES

upcoming_closures

Answered against 22 years of US equities and 12 years of US options data and published with the query that produced it. This result is stored as of 2026-09-22, from after-hours-trading-on-holidays-and-weekends.

as of series 12×7read in context →
upcoming_closures — 12 rows by 7 columns, computed from US exchange, SIP and OPRA data.
holiday_dateclosure_labelweekdayholidayday_statusregular_close_etdays_away
2026-11-26November 26ThuThanksgivingclosed65
2026-11-27November 27FriThanksgivingearly-close01:00 PM66
2026-12-24December 24ThuChristmasearly-close01:00 PM93
2026-12-25December 25FriChristmasclosed94
2027-01-01January 1FriNew Years Dayclosed101
2027-01-18January 18MonMartin Luther King, Jr. Dayclosed118
2027-02-15February 15MonWashington's Birthdayclosed146
2027-03-26March 26FriGood Fridayclosed185
2027-05-31May 31MonMemorial Dayclosed251
2027-06-18June 18FriJuneteenthclosed269
2027-07-05July 5MonIndependence Dayclosed286
2027-09-06September 6MonLabor Dayclosed349
Rows × columns
12 × 7
Period covered
to
Computed
Completeness
Some fields are partly empty — see the columns below
Source
US exchange, SIP and OPRA market data
Licence
Strasmore terms · free, no signup
Formats
JSON · CSV · the SQL below

What each column holds

Column definitions for upcoming_closures, derived from the stored result.
ColumnTypeRangeNotes
holiday_date date 2026-11-26 to 2027-09-06
closure_label text 12 distinct values (December 24, December 25, February 15…)
weekday text 3 distinct values (Fri, Mon, Thu)
holiday text 10 distinct values (Christmas, Good Friday, Independence Day…)
day_status text 2 distinct values (closed, early-close)
regular_close_et text 1 distinct value (01:00 PM) 2 of 12 rows populated
days_away number 65 to 349

Computed from Strasmore's warehouse of US exchange, SIP and OPRA market data. Equity prices are delayed; options greeks and implied volatility are end-of-day. This result is stored, not recomputed on load — it is exactly the numbers that were returned on , and the query below is what returned them.

Run it yourself

This is the exact query behind the result above. Change a ticker, a date or a column and run it against the warehouse — no account, no key. The no-signup tier is smaller than the one this page was computed on; a query that reaches past it comes back saying which plan runs it.

SELECT
    toString(date)                                              AS holiday_date,
    concat(monthName(date), ' ', toString(toDayOfMonth(date)))  AS closure_label,
    formatDateTime(date, '%a')                                  AS weekday,
    any(name)                                                   AS holiday,
    any(status)                                                 AS day_status,
    any(if(status = 'early-close',
           formatDateTime(toTimeZone(close, 'America/New_York'), '%I:%i %p'),
           ''))                                                 AS regular_close_et,
    dateDiff('day', today(), date)                              AS days_away
FROM global_markets.stocks_market_holidays
WHERE date >= today()
GROUP BY date
ORDER BY date
⌘/Ctrl + Enter
More from this analysisafter-hours-trading-on-holidays-and-weekends
closure_window series 12×5 weekday_tape series 7×4 session_clock ranking 15×4 The 2s10s spread by month, full history series 604×5 One SPY $600 LEAPS call's price over two years (expired Jan 16 2026) series 470×2 3m10y and 2s10s spreads, monthly averages over twenty years series 241×4 See all 2,469 queries →