persistence
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-28, from iron-condor-screener-from-the-free-sql-api.
| week | week_of | candidates | still_clearing | survival_pct |
|---|---|---|---|---|
| 2026-07-06 | Jul 6 | 15 | 0 | 0 |
| 2026-07-13 | Jul 13 | 32 | 0 | 0 |
| 2026-07-20 | Jul 20 | 22 | 2 | 9 |
| 2026-07-27 | Jul 27 | 24 | 0 | 0 |
| 2026-08-03 | Aug 3 | 14 | 2 | 14 |
| 2026-08-10 | Aug 10 | 14 | 0 | 0 |
| 2026-08-17 | Aug 17 | 22 | 6 | 27 |
| 2026-08-24 | Aug 24 | 19 | 4 | 21 |
| 2026-08-31 | Aug 31 | 16 | 0 | 0 |
| 2026-09-07 | Sep 7 | 22 | 3 | 14 |
| 2026-09-14 | Sep 14 | 17 | 9 | 53 |
- Rows × columns
- 11 × 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 |
|---|---|---|---|
week |
date | 2026-07-06 to 2026-09-14 | |
week_of |
text | 11 distinct values (Aug 10, Aug 17, Aug 24…) | |
candidates |
number | 14 to 32 | |
still_clearing |
number | 0 to 9 | |
survival_pct |
number | 0 to 53 | 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
weeks AS
(
SELECT toMonday(date) AS wk, max(date) AS session
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND date >= today() - 84
GROUP BY wk
),
legs AS
(
SELECT
toMonday(g.date) AS wk,
g.expiration_date AS expiration_date,
toFloat64(g.strike_price) AS k,
if(toFloat64(g.delta) < 0, 'put', 'call') AS side,
max(g.days_to_expiry) AS dte,
avg(toFloat64(g.option_close)) AS px,
avg(toFloat64(g.delta)) AS d
FROM global_markets.options_greeks AS g
INNER JOIN weeks AS w ON g.date = w.session
WHERE g.underlying_symbol = 'SPY'
AND g.date >= today() - 84
AND g.iv_converged = 1
AND g.volume > 0
AND toFloat64(g.option_close) > 0
AND toUInt32(round(toFloat64(g.strike_price) * 100)) % 500 = 0
GROUP BY wk, expiration_date, k, side
),
verticals AS
(
SELECT
s.wk AS wk,
s.wk + 7 AS next_wk,
s.expiration_date AS expiration_date,
s.side AS side,
s.k AS short_k,
s.dte AS dte,
s.px - l.px AS credit
FROM legs AS s
INNER JOIN legs AS l
ON s.wk = l.wk AND s.expiration_date = l.expiration_date AND s.side = l.side
WHERE ((s.side = 'put' AND s.d BETWEEN -0.20 AND -0.12 AND abs(l.k - (s.k - 5)) < 0.01)
OR (s.side = 'call' AND s.d BETWEEN 0.12 AND 0.20 AND abs(l.k - (s.k + 5)) < 0.01))
),
condors AS
(
SELECT
p.wk AS wk,
p.next_wk AS next_wk,
p.expiration_date AS expiration_date,
p.short_k AS short_put,
c.short_k AS short_call,
p.dte AS dte,
round(100 * (p.credit + c.credit) / (5 - (p.credit + c.credit)), 1) AS credit_pct
FROM verticals AS p
INNER JOIN verticals AS c
ON p.wk = c.wk AND p.expiration_date = c.expiration_date
WHERE p.side = 'put'
AND c.side = 'call'
AND p.credit + c.credit BETWEEN 0.05 AND 4.0
)
SELECT
toString(a.wk) AS week,
formatDateTime(a.wk, '%b %e') AS week_of,
count() AS candidates,
countIf(b.credit_pct >= 20) AS still_clearing,
round(100 * countIf(b.credit_pct >= 20) / count(), 0) AS survival_pct
FROM condors AS a
LEFT JOIN condors AS b
ON a.next_wk = b.wk
AND a.expiration_date = b.expiration_date
AND a.short_put = b.short_put
AND a.short_call = b.short_call
WHERE a.dte BETWEEN 25 AND 45
AND a.credit_pct >= 20
AND a.next_wk <= toMonday((
SELECT max(date)
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
))
GROUP BY a.wk
ORDER BY a.wk
Work with this data in your AI assistant
Opens ready to query, with this page's data. Free, no account.