STRASMORE/EXPLORE 3,094 QUERIES

Short strikes touched versus short strikes finishing in the money

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-05, from Iron Condor Win Rate and Expectancy.

as of series 5×5read in context →
Short strikes touched versus short strikes finishing in the money — 5 rows by 5 columns, computed from US exchange, SIP and OPRA data.
monthtouched_strike_pctfinished_itm_pcttouch_to_itm_ratiotracked_count
2026-022514.31.7556
2026-0340.330.61.3262
2026-045048.11.0452
2026-0520.71.71258
2026-0737.112.92.8862
Rows × columns
5 × 5
Computed
Completeness
No missing values
Source
US exchange, SIP and OPRA market data
Licence
Strasmore terms · free, no signup
Formats
JSON · CSV · the SQL below

What each column holds

Column definitions for Short strikes touched versus short strikes finishing in the money, derived from the stored result.
ColumnTypeRangeNotes
month text 5 distinct values (2026-02, 2026-03, 2026-04…)
touched_strike_pct number 20.7 to 50 percent
finished_itm_pct number 1.7 to 48.1 percent
touch_to_itm_ratio number 1.04 to 12 ratio or rate
tracked_count number 52 to 62 count

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 shorts AS
(
    SELECT
        date                                                   AS entry_date,
        expiration_date                                        AS expiry,
        if(delta < 0, 'put', 'call')                           AS side,
        argMin(toFloat64(strike_price), abs(abs(delta) - 0.16)) AS short_strike
    FROM global_markets.options_greeks
    WHERE underlying_symbol = 'SPY'
      AND date >= '2026-01-02'
      AND date <  '2026-08-01'
      AND iv_converged = 1
      AND volume > 100
      AND days_to_expiry BETWEEN 28 AND 35
      AND abs(delta) BETWEEN 0.13 AND 0.19
    GROUP BY entry_date, expiry, side
),
tape AS
(
    SELECT
        date,
        toFloat64(high)  AS high,
        toFloat64(low)   AS low,
        toFloat64(close) AS close
    FROM global_markets.stocks_daily_aggs
    WHERE ticker = 'SPY'
      AND date >= '2026-01-02'
      AND date <= '2026-09-30'
),
outcomes AS
(
    SELECT
        s.entry_date            AS entry_date,
        s.expiry                AS expiry,
        s.side                  AS side,
        s.short_strike          AS short_strike,
        max(t.high)             AS path_high,
        min(t.low)              AS path_low,
        argMax(t.close, t.date) AS final_close
    FROM shorts AS s
    CROSS JOIN tape AS t
    WHERE t.date >  s.entry_date
      AND t.date <= s.expiry
    GROUP BY entry_date, expiry, side, short_strike
)
SELECT
    formatDateTime(toStartOfMonth(entry_date), '%Y-%m') AS month,
    round(100 * avg(if(side = 'put', path_low <= short_strike,
                                     path_high >= short_strike)), 1) AS touched_strike_pct,
    round(100 * avg(if(side = 'put', final_close < short_strike,
                                     final_close > short_strike)), 1) AS finished_itm_pct,
    round(avg(if(side = 'put', path_low <= short_strike, path_high >= short_strike))
        / avg(if(side = 'put', final_close < short_strike, final_close > short_strike)), 2)
                                                                      AS touch_to_itm_ratio,
    count()                                                           AS tracked_count
FROM outcomes
GROUP BY month
HAVING countIf(if(side = 'put', final_close < short_strike, final_close > short_strike)) > 0
ORDER BY month
⌘/Ctrl + Enter

Work with this data in your AI assistant

Opens ready to query, with this page's data. Free, no account.

More from this analysisIron Condor Win Rate and Expectancy
Credit, risk and breakeven win rate for nine SPY condor structures table 9×6 → Premium per dollar of spot at the same 16 delta, five underlyings ranking 5×4 → Advertised iron condor win rate by short delta band (SPY) table 5×5 → One threshold, re-read every session: implied probability above a fixed strike series 28×3 → SPY intraday travel: close, high and low against the open, June 1 to July 10, 2026 series 28×5 → Strikes that actually traded per session, 20 to 45 days out, May 2026 series 6×3 → See all 3,094 queries →