STRASMORE/EXPLORE 2,749 QUERIES

put_vs_shares

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 can-you-buy-a-put-without-owning-the-stock.

as of table 5×5read in context →
put_vs_shares — 5 rows by 5 columns, computed from US exchange, SIP and OPRA data.
symbolput_debit_usdshares_cost_usdput_pct_of_sharesas_of_label
SPY828765901.1Sep 24, 2026
KO14588191.6Sep 24, 2026
AAPL645335601.9Sep 24, 2026
MSFT1030495782.1Sep 24, 2026
NVDA665223843Sep 24, 2026
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 put_vs_shares, derived from the stored result.
ColumnTypeRangeNotes
symbol text 5 distinct values (AAPL, KO, MSFT…)
put_debit_usd number 145 to 1,030 US dollars
shares_cost_usd number 8,819 to 76,590 US dollars
put_pct_of_shares number 1.1 to 3 percent
as_of_label text 1 distinct value (Sep 24, 2026)

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.

SELECT
    symbol,
    put_debit_usd,
    shares_cost_usd,
    round(100 * put_debit_usd / shares_cost_usd, 1) AS put_pct_of_shares,
    as_of_label
FROM
(
    SELECT
        underlying_symbol                                             AS symbol,
        round(toFloat64(argMin(option_close, moneyness)) * 100, 0)    AS put_debit_usd,
        round(toFloat64(argMin(underlying_close, moneyness)) * 100, 0) AS shares_cost_usd,
        formatDateTime(any(date), '%b %e, %Y')                        AS as_of_label
    FROM
    (
        SELECT
            underlying_symbol,
            date,
            option_close,
            underlying_close,
            abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) AS moneyness
        FROM global_markets.options_greeks
        WHERE date = (SELECT max(date) FROM global_markets.options_greeks WHERE date >= today() - 40)
          AND underlying_symbol IN ('AAPL', 'KO', 'MSFT', 'NVDA', 'SPY')
          AND lower(option_type) IN ('put', 'p')
          AND iv_converged = 1
          AND volume > 0
          AND days_to_expiry BETWEEN 20 AND 45
          AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.05
    )
    GROUP BY underlying_symbol
)
ORDER BY put_pct_of_shares
⌘/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 analysiscan-you-buy-a-put-without-owning-the-stock
put_ladder ranking 14×4 → short_side_pressure ranking 5×2 → overnight_gaps ranking 5×4 → The 2s10s spread, every print of the half table 124×2 → The 2s10s spread, every print of the half table 124×2 → Every half-year since 1976: the 2y and 10y change, the twist between them, and the half's lowest 2s10s print table 100×7 → See all 2,749 queries →