Model decay per calendar step into the July 17, 2026 expiration (hypothetical at-the-money option)
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-18, from Does Theta Decay Over the Weekend?.
| session_date | session_label | calendar_days_to_next_session | one_day_pct | actual_step_pct |
|---|---|---|---|---|
| 2026-06-15 | Mon Jun 15 | 1 | 1.57 | 1.57 |
| 2026-06-16 | Tue Jun 16 | 1 | 1.63 | 1.63 |
| 2026-06-17 | Wed Jun 17 | 1 | 1.68 | 1.68 |
| 2026-06-18 | Thu Jun 18 | 4 | 1.74 | 7.15 |
| 2026-06-22 | Mon Jun 22 | 1 | 2.02 | 2.02 |
| 2026-06-23 | Tue Jun 23 | 1 | 2.11 | 2.11 |
| 2026-06-24 | Wed Jun 24 | 1 | 2.2 | 2.2 |
| 2026-06-25 | Thu Jun 25 | 1 | 2.3 | 2.3 |
| 2026-06-26 | Fri Jun 26 | 3 | 2.41 | 7.42 |
| 2026-06-29 | Mon Jun 29 | 1 | 2.82 | 2.82 |
| 2026-06-30 | Tue Jun 30 | 1 | 2.99 | 2.99 |
| 2026-07-01 | Wed Jul 1 | 1 | 3.18 | 3.18 |
| 2026-07-02 | Thu Jul 2 | 4 | 3.39 | 14.37 |
| 2026-07-06 | Mon Jul 6 | 1 | 4.65 | 4.65 |
| 2026-07-07 | Tue Jul 7 | 1 | 5.13 | 5.13 |
| 2026-07-08 | Wed Jul 8 | 1 | 5.72 | 5.72 |
| 2026-07-09 | Thu Jul 9 | 1 | 6.46 | 6.46 |
| 2026-07-10 | Fri Jul 10 | 3 | 7.42 | 24.41 |
- Rows × columns
- 18 × 5
- 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 |
|---|---|---|---|
session_date |
date | 2026-06-15 to 2026-07-10 | |
session_label |
text | 18 distinct values (Fri Jul 10, Fri Jun 26, Mon Jul 6…) | |
calendar_days_to_next_session |
number | 1 to 4 | |
one_day_pct |
number | 1.57 to 7.42 | percent |
actual_step_pct |
number | 1.57 to 24.41 | percent |
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.
WITH sessions AS
(
SELECT date
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'SPY'
AND date >= '2026-06-15'
AND date <= '2026-07-14'
GROUP BY date
),
stepped AS
(
SELECT
date,
dateDiff('day', date, toDate('2026-07-17')) AS days_left,
dateDiff('day', date, leadInFrame(date) OVER (ORDER BY date ASC ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING)) AS step_days
FROM sessions
)
SELECT
toString(date) AS session_date,
formatDateTime(date, '%a %b %e') AS session_label,
step_days AS calendar_days_to_next_session,
round(100 * (1 - sqrt(toFloat64(days_left - 1) / toFloat64(days_left))), 2) AS one_day_pct,
round(100 * (1 - sqrt(toFloat64(days_left - step_days) / toFloat64(days_left))), 2) AS actual_step_pct
FROM stepped
WHERE date <= '2026-07-10'
AND step_days BETWEEN 1 AND 10
ORDER BY date ASC
Work with this data in your AI assistant
Opens ready to query, with this page's data. Free, no account.