STRASMORE/EXPLORE 3,256 QUERIES

A 15% cap and 9% buffer, seen from three entry points

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-08-12, from How Buffer ETFs Work: Caps and Resets.

as of ranking 21×4read in context →
A 15% cap and 9% buffer, seen from three entry points — 21 rows by 4 columns, computed from US exchange, SIP and OPRA data.
index_return_pctbought_at_reset_pctbought_after_drop_pctbought_after_rally_pct
-30-21-18.6-24
-27-18-15.5-21.2
-24-15-12.4-18.3
-21-12-9.3-15.4
-18-9-6.2-12.5
-15-6-3.1-9.6
-12-30-6.7
-903.1-3.8
-603.1-3.8
-303.1-3.8
003.1-3.8
336.2-1
669.31.9
9912.44.8
121215.57.7
151518.610.6
181518.610.6
211518.610.6
241518.610.6
271518.610.6
301518.610.6
Rows × columns
21 × 4
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 A 15% cap and 9% buffer, seen from three entry points, derived from the stored result.
ColumnTypeRangeNotes
index_return_pct number -30 to 30 percent
bought_at_reset_pct number -21 to 15 percent
bought_after_drop_pct number -18.6 to 18.6 percent
bought_after_rally_pct number -24 to 10.6 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.

SELECT
    index_return_pct,
    round(fund_nav - 100, 1)              AS bought_at_reset_pct,
    round((fund_nav / 97.0 - 1) * 100, 1) AS bought_after_drop_pct,
    round((fund_nav / 104.0 - 1) * 100, 1) AS bought_after_rally_pct
FROM
(
    SELECT
        index_return_pct,
        100 + multiIf(index_return_pct >  15.0, 15.0,
                      index_return_pct >=  0.0, index_return_pct,
                      index_return_pct >= -9.0, 0.0,
                      index_return_pct + 9.0) AS fund_nav
    FROM
    (
        SELECT toFloat64(arrayJoin(range(21))) * 3 - 30 AS index_return_pct
    )
)
ORDER BY index_return_pct
⌘/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 analysisHow Buffer ETFs Work: Caps and Resets
SPY calendar-year price return against a 15% cap and 9% buffer ranking 12×3 → Compounding the index against the buffered payoff, net of a 0.79% fee ranking 12×3 → Remaining buffer and remaining cap by entry point ranking 11×3 → The thin end of the screen: funds with the fewest covered weekdays (September 2026) ranking 12×3 → Busiest screened funds by option contract volume (September 2026) ranking 12×2 → Reg T minimum branches for one uncovered AAPL call, by strike (dollars per share) ranking 12×4 → See all 3,256 queries →