Does Theta Decay Over the Weekend?
Model decay per calendar step into the July 17, 2026 expiration (hypothetical at-the-money option)series ·
2026-08-18 · 18×5
Calendar days from each weekday's session to the next SPY sessionseries ·
2026-08-18 · 5×3
Average near-the-money SPY implied volatility by weekday, first half of 2026ranking ·
2026-08-18 · 5×3
Average at-the-money SPY option premium by days to expiry, first half of 2026ranking ·
2026-08-18 · 7×2
Model decay per calendar step into the July 17, 2026 expiration (hypothetical at-the-money option)
Model decay per calendar step into the July 17, 2026 expiration (hypothetical at-the-money option)
| 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 |
the exact SQL behind every number
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
More from this analysisDoes Theta Decay Over the Weekend?
Calendar days from each weekday's session to the next SPY session
series 5×3
→
Average at-the-money SPY option premium by days to expiry, first half of 2026
ranking 7×2
→
Average near-the-money SPY implied volatility by weekday, first half of 2026
ranking 5×3
→
The SPY $740 call's daily time decay deepens into expiry (May–Jun 2026)
series 31×2
→
See all 2,170 queries →