Every session ahead, and the day a sale made in it settles
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-08-22, from Good Faith Violations in Cash Accounts.
| trade_date | traded_on | settles_on | calendar_days_to_settle |
|---|---|---|---|
| 2026-08-24 | Mon, Aug 24 | Tue, Aug 25 | 1 |
| 2026-08-25 | Tue, Aug 25 | Wed, Aug 26 | 1 |
| 2026-08-26 | Wed, Aug 26 | Thu, Aug 27 | 1 |
| 2026-08-27 | Thu, Aug 27 | Fri, Aug 28 | 1 |
| 2026-08-28 | Fri, Aug 28 | Mon, Aug 31 | 3 |
| 2026-08-31 | Mon, Aug 31 | Tue, Sep 1 | 1 |
| 2026-09-01 | Tue, Sep 1 | Wed, Sep 2 | 1 |
| 2026-09-02 | Wed, Sep 2 | Thu, Sep 3 | 1 |
| 2026-09-03 | Thu, Sep 3 | Fri, Sep 4 | 1 |
| 2026-09-04 | Fri, Sep 4 | Tue, Sep 8 | 4 |
| 2026-09-08 | Tue, Sep 8 | Wed, Sep 9 | 1 |
| 2026-09-09 | Wed, Sep 9 | Thu, Sep 10 | 1 |
| 2026-09-10 | Thu, Sep 10 | Fri, Sep 11 | 1 |
| 2026-09-11 | Fri, Sep 11 | Mon, Sep 14 | 3 |
| 2026-09-14 | Mon, Sep 14 | Tue, Sep 15 | 1 |
- Rows × columns
- 15 × 4
- 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-08-24 to 2026-09-14 | |
traded_on |
text | 15 distinct values (Fri, Aug 28, Fri, Sep 11, Fri, Sep 4…) | |
settles_on |
text | 15 distinct values (Fri, Aug 28, Fri, Sep 11, Fri, Sep 4…) | |
calendar_days_to_settle |
number | 1 to 4 |
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.
the exact SQL behind every number
SELECT
toString(s.d) AS trade_date,
concat(formatDateTime(s.d, '%a'), ', ', formatDateTime(s.d, '%b'), ' ', toString(toDayOfMonth(s.d))) AS traded_on,
concat(formatDateTime(s.next_open, '%a'), ', ', formatDateTime(s.next_open, '%b'), ' ', toString(toDayOfMonth(s.next_open))) AS settles_on,
dateDiff('day', s.d, s.next_open) AS calendar_days_to_settle
FROM
(
SELECT
d,
leadInFrame(d) OVER (ORDER BY d ROWS BETWEEN 1 FOLLOWING AND 1 FOLLOWING) AS next_open
FROM
(
SELECT d
FROM
(
SELECT today() + arrayJoin(range(0, 45)) AS d
)
WHERE toDayOfWeek(d) BETWEEN 1 AND 5
AND d NOT IN
(
SELECT date
FROM global_markets.stocks_market_holidays
WHERE status = 'closed'
)
)
) AS s
WHERE s.next_open > s.d
ORDER BY s.d
LIMIT 15
Run your own version of this
The same 22 years of US equities and 12 years of options data are queryable in SQL or plain English. A free account runs 100 queries a day and takes no card.
More from this analysisGood Faith Violations in Cash Accounts
KO and AAPL closes across the July 2026 holiday week, with settlement dates
series 9×5
→
Trailing year: calendar days a sale waited to settle
ranking 4×3
→
Near-dated versus long-dated SPY implied volatility, session by session
series 81×3
→
One fixed short AAPL call strike: requirement as a percent of the share price, April to June 2026
series 62×4
→
SPY volume by ET clock minute around the open, 13 March vs 20 March 2026
series 46×3
→
SPY daily moves and drawdown, February to April 2020
series 45×4
→
See all 2,170 queries →