settlement_clock
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-10-03, from etf-vs-mutual-fund-settlement.
| trade_date | trade_label | weekday | settles_on | settle_label | days_to_cash |
|---|---|---|---|---|---|
| 2026-10-05 | Oct 5 | Monday | 2026-10-06 | Oct 6 | 1 |
| 2026-10-06 | Oct 6 | Tuesday | 2026-10-07 | Oct 7 | 1 |
| 2026-10-07 | Oct 7 | Wednesday | 2026-10-08 | Oct 8 | 1 |
| 2026-10-08 | Oct 8 | Thursday | 2026-10-09 | Oct 9 | 1 |
| 2026-10-09 | Oct 9 | Friday | 2026-10-12 | Oct 12 | 3 |
| 2026-10-12 | Oct 12 | Monday | 2026-10-13 | Oct 13 | 1 |
| 2026-10-13 | Oct 13 | Tuesday | 2026-10-14 | Oct 14 | 1 |
| 2026-10-14 | Oct 14 | Wednesday | 2026-10-15 | Oct 15 | 1 |
| 2026-10-15 | Oct 15 | Thursday | 2026-10-16 | Oct 16 | 1 |
| 2026-10-16 | Oct 16 | Friday | 2026-10-19 | Oct 19 | 3 |
| 2026-10-19 | Oct 19 | Monday | 2026-10-20 | Oct 20 | 1 |
| 2026-10-20 | Oct 20 | Tuesday | 2026-10-21 | Oct 21 | 1 |
| 2026-10-21 | Oct 21 | Wednesday | 2026-10-22 | Oct 22 | 1 |
| 2026-10-22 | Oct 22 | Thursday | 2026-10-23 | Oct 23 | 1 |
| 2026-10-23 | Oct 23 | Friday | 2026-10-26 | Oct 26 | 3 |
- Rows × columns
- 15 × 6
- Period covered
- to
- Computed
- Completeness
- No missing values
- Source
- US exchange, SIP and OPRA market data
- Licence
- Strasmore terms · free, no signup
What each column holds
| Column | Type | Range | Notes |
|---|---|---|---|
trade_date |
date | 2026-10-05 to 2026-10-23 | |
trade_label |
text | 15 distinct values (Oct 12, Oct 13, Oct 14…) | |
weekday |
text | 5 distinct values (Friday, Monday, Thursday…) | |
settles_on |
date | 2026-10-06 to 2026-10-26 | |
settle_label |
text | 15 distinct values (Oct 12, Oct 13, Oct 14…) | |
days_to_cash |
number | 1 to 3 |
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(trade_day) AS trade_date,
concat(formatDateTime(trade_day, '%b'), ' ', toString(toDayOfMonth(trade_day))) AS trade_label,
['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'][toDayOfWeek(trade_day)] AS weekday,
toString(settle_day) AS settles_on,
concat(formatDateTime(settle_day, '%b'), ' ', toString(toDayOfMonth(settle_day))) AS settle_label,
dateDiff('day', trade_day, settle_day) AS days_to_cash
FROM
(
SELECT
tupleElement(pair, 1) AS trade_day,
tupleElement(pair, 2) AS settle_day
FROM
(
SELECT arrayJoin(arrayZip(arrayPopBack(sessions), arrayPopFront(sessions))) AS pair
FROM
(
SELECT arraySort(groupArray(d)) AS sessions
FROM
(
SELECT today() + arrayJoin(range(30)) AS d
)
WHERE toDayOfWeek(d) BETWEEN 1 AND 5
AND d NOT IN
(
SELECT date
FROM global_markets.stocks_market_holidays
WHERE status = 'closed'
)
)
)
)
ORDER BY trade_date
LIMIT 15
Work with this data in your AI assistant
Opens ready to query, with this page's data. Free, no account.