STRASMORE/EXPLORE 2,882 QUERIES

worst_entries

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-01, from put-credit-spread-win-rate-and-breakeven.

as of ranking 12×3read in context →
worst_entries — 12 rows by 3 columns, computed from US exchange, SIP and OPRA data.
labelpremium_usdresult_usd
18.02.2026141-959
10.02.2025189-911
30.08.2022223-877
31.12.2021140-860
20.02.2025149-851
28.12.2021150-850
27.12.2021152-848
30.01.2026152-848
03.01.2022156-844
12.09.2023156-844
07.04.2022157-843
13.09.2023157-843
Rows × columns
12 × 3
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 worst_entries, derived from the stored result.
ColumnTypeRangeNotes
label text 12 distinct values (03.01.2022, 07.04.2022, 10.02.2025…)
premium_usd number 140 to 223 US dollars
result_usd number -959 to -843 US dollars

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
expiries AS
(
    SELECT
        date                                              AS entry_date,
        argMin(expiration_date, abs(days_to_expiry - 45)) AS expiry
    FROM global_markets.options_greeks
    WHERE underlying_symbol = 'SPY'
      AND lower(option_type) IN ('put', 'p')
      AND iv_converged = 1
      AND volume > 0
      AND days_to_expiry BETWEEN 38 AND 52
      AND date >= '2021-08-01'
    GROUP BY date
),
short_leg AS
(
    SELECT
        e.entry_date                                                AS entry_date,
        e.expiry                                                    AS expiry,
        argMin(toFloat64(g.strike_price), abs(abs(g.delta) - 0.30)) AS short_strike,
        argMin(toFloat64(g.option_close), abs(abs(g.delta) - 0.30)) AS short_mark
    FROM global_markets.options_greeks AS g
    INNER JOIN expiries AS e
        ON g.date = e.entry_date AND g.expiration_date = e.expiry
    WHERE g.underlying_symbol = 'SPY'
      AND lower(g.option_type) IN ('put', 'p')
      AND g.iv_converged = 1
      AND g.volume > 0
      AND g.date >= '2021-08-01'
      AND abs(g.delta) BETWEEN 0.20 AND 0.40
    GROUP BY e.entry_date, e.expiry
),
long_leg AS
(
    SELECT
        s.entry_date                                                                             AS entry_date,
        argMin(toFloat64(g.strike_price), abs(toFloat64(g.strike_price) - (s.short_strike - 10))) AS long_strike,
        argMin(toFloat64(g.option_close), abs(toFloat64(g.strike_price) - (s.short_strike - 10))) AS long_mark
    FROM global_markets.options_greeks AS g
    INNER JOIN short_leg AS s
        ON g.date = s.entry_date AND g.expiration_date = s.expiry
    WHERE g.underlying_symbol = 'SPY'
      AND lower(g.option_type) IN ('put', 'p')
      AND g.iv_converged = 1
      AND g.date >= '2021-08-01'
      AND toFloat64(g.strike_price) BETWEEN s.short_strike - 12 AND s.short_strike - 8
    GROUP BY s.entry_date
),
settled AS
(
    SELECT
        s.entry_date                   AS entry_date,
        s.short_strike                 AS short_strike,
        s.short_strike - l.long_strike AS width,
        s.short_mark - l.long_mark     AS credit,
        toFloat64(d.close)             AS settle_close
    FROM short_leg AS s
    INNER JOIN long_leg AS l ON s.entry_date = l.entry_date
    INNER JOIN
    (
        SELECT date, close
        FROM global_markets.stocks_daily_aggs
        WHERE ticker = 'SPY'
          AND date >= '2021-08-01'
    ) AS d ON d.date = s.expiry
    WHERE l.long_strike < s.short_strike
      AND s.short_mark > l.long_mark
      AND s.short_strike - l.long_strike BETWEEN 9 AND 11
)
SELECT
    formatDateTime(entry_date, '%d.%m.%Y')                                            AS label,
    round(100 * credit, 0)                                                            AS premium_usd,
    round(100 * (credit - least(greatest(short_strike - settle_close, 0), width)), 0) AS result_usd
FROM settled
ORDER BY result_usd ASC, label ASC
LIMIT 12
⌘/Ctrl + Enter

Work with this data in your AI assistant

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