STRASMORE/EXPLORE 2,170 QUERIES 22Y EQUITIES · 12Y OPTIONS

2,170 answered market questions

every one with its exact SQL, its result and the date it was computed · free, no signup

How to Read the COT Report: Columns Explained
SPY move from Tuesday close to Friday close, the age of a COT snapshotranking · 2026-08-22 · 11×4Preview: 11 ranked values, largest first. Latest days to cover, and where it sits in five years of the same name's historytable · 2026-08-22 · 6×5 AAPL days to cover and its rank inside the three-year windowseries · 2026-08-22 · 72×4Preview: a 16-point series, roughly flat. Net calls minus puts on AAPL, raw contracts and as a share of volumeseries · 2026-08-22 · 30×6Preview: a 16-point series, ending lower.
FINRA Margin Debt Statistics, Explained
Largest month-over-month declines in SPY month-end closesranking · 2026-08-22 · 10×2Preview: 10 ranked values, smallest first. What the market does between the month-end as-of date and a third-week releaseseries · 2026-08-22 · 21×5Preview: a 16-point series, ending lower. Month-end closes that set a new high for the window, by year (SPY)ranking · 2026-08-22 · 21×4Preview: 16 ranked values, largest first. How far SPY travels between month end and the third-week release windowranking · 2026-08-22 · 6×3Preview: 6 ranked values, largest first.
Equity vs Index Put/Call Ratio: What's High?
The total is a call-volume-weighted blend of the two bucketsranking · 2026-08-22 · 11×4Preview: 11 ranked values, largest first. The same equity ratio, computed with and without ETF optionsseries · 2026-08-22 · 23×4Preview: a 16-point series, ending lower. Single-stock bucket vs ETF bucket, session by sessionseries · 2026-08-22 · 33×6Preview: a 16-point series, roughly flat. Put/call volume ratio by underlying, trailing 60 sessionstable · 2026-08-22 · 12×5
How the Put/Call Ratio Is Calculated
Daily single stock put/call ratio against its 21 session averageseries · 2026-08-06 · 84×4Preview: a 16-point series, ending lower. Where the daily ratio actually sits, twelve months of sessionsranking · 2026-08-06 · 3×4Preview: 3 ranked values, largest first. Monthly median put/call ratio: broad market ETFs against single stocksseries · 2026-08-06 · 12×4Preview: a 12-point series, roughly flat. Daily put/call volume ratio, SPY against AAPL, July 2026series · 2026-08-06 · 22×4Preview: a 16-point series, ending higher. Put and call volume for eight household names, July 2026ranking · 2026-08-06 · 8×4Preview: 8 ranked values, largest first.
Is a High Put/Call Ratio Bullish?
Put/call volume ratio percentiles: single-stock basket vs index ETFs, 2022 to July 2026ranking · 2026-08-03 · 8×3Preview: 8 ranked values, smallest first. S&P 500 tracker moves after each fifth of the equity put/call ratio, 2022 to July 2026table · 2026-08-03 · 5×7 Put/call volume ratio by underlying: January 1 to July 31, 2026ranking · 2026-08-03 · 13×4Preview: 13 ranked values, largest first. Top-decile put/call readings per month, grouped by how the S&P 500 tracker movedranking · 2026-08-03 · 4×4Preview: 4 ranked values, smallest first.
SPY move from Tuesday close to Friday close, the age of a COT snapshot

SPY move from Tuesday close to Friday close, the age of a COT snapshot

most recentas of ranking 11×4read in context →
SPY move from Tuesday close to Friday close, the age of a COT snapshot — 11 rows by 4 columns, computed from US exchange, SIP and OPRA data.
yearsession_pair_countmedian_gap_move_pctp90_gap_move_pct
2016510.882.2
2017500.331.11
2018501.142.71
2019510.882.35
2020481.244.21
2021500.752.08
2022511.724.32
2023500.882.8
2024521.042.17
2025500.842.43
2026231.262.92
the exact SQL behind every number
WITH spy AS
(
    SELECT
        date,
        toFloat64(close) AS close_px
    FROM global_markets.stocks_daily_aggs
    WHERE ticker = 'SPY'
      AND date >= '2016-01-01'
      AND date <  '2026-07-01'
)
SELECT
    toString(toYear(tue.date)) AS year,
    count()                    AS session_pair_count,
    round(quantileDeterministic(0.5)(abs(fri.close_px / tue.close_px - 1) * 100,
          toUInt64(toUnixTimestamp(tue.date))), 2) AS median_gap_move_pct,
    round(quantileDeterministic(0.9)(abs(fri.close_px / tue.close_px - 1) * 100,
          toUInt64(toUnixTimestamp(tue.date))), 2) AS p90_gap_move_pct
FROM spy AS tue
INNER JOIN spy AS fri ON fri.date = tue.date + 3
WHERE toDayOfWeek(tue.date) = 2
GROUP BY year
ORDER BY year
$