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×4
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×4
Net calls minus puts on AAPL, raw contracts and as a share of volumeseries ·
2026-08-22 · 30×6
FINRA Margin Debt Statistics, Explained
Largest month-over-month declines in SPY month-end closesranking ·
2026-08-22 · 10×2
What the market does between the month-end as-of date and a third-week releaseseries ·
2026-08-22 · 21×5
Month-end closes that set a new high for the window, by year (SPY)ranking ·
2026-08-22 · 21×4
How far SPY travels between month end and the third-week release windowranking ·
2026-08-22 · 6×3
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×4
The same equity ratio, computed with and without ETF optionsseries ·
2026-08-22 · 23×4
Single-stock bucket vs ETF bucket, session by sessionseries ·
2026-08-22 · 33×6
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×4
Where the daily ratio actually sits, twelve months of sessionsranking ·
2026-08-06 · 3×4
Monthly median put/call ratio: broad market ETFs against single stocksseries ·
2026-08-06 · 12×4
Daily put/call volume ratio, SPY against AAPL, July 2026series ·
2026-08-06 · 22×4
Put and call volume for eight household names, July 2026ranking ·
2026-08-06 · 8×4
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×3
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×4
Top-decile put/call readings per month, grouped by how the S&P 500 tracker movedranking ·
2026-08-03 · 4×4
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
| year | session_pair_count | median_gap_move_pct | p90_gap_move_pct |
|---|---|---|---|
| 2016 | 51 | 0.88 | 2.2 |
| 2017 | 50 | 0.33 | 1.11 |
| 2018 | 50 | 1.14 | 2.71 |
| 2019 | 51 | 0.88 | 2.35 |
| 2020 | 48 | 1.24 | 4.21 |
| 2021 | 50 | 0.75 | 2.08 |
| 2022 | 51 | 1.72 | 4.32 |
| 2023 | 50 | 0.88 | 2.8 |
| 2024 | 52 | 1.04 | 2.17 |
| 2025 | 50 | 0.84 | 2.43 |
| 2026 | 23 | 1.26 | 2.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
More from this analysisHow to Read the COT Report: Columns Explained
AAPL days to cover and its rank inside the three-year window
series 72×4
→
Net calls minus puts on AAPL, raw contracts and as a share of volume
series 30×6
→
Latest days to cover, and where it sits in five years of the same name's history
table 6×5
→
Units versus dollars: seven funds tracking the markets the COT covers, July 2026
ranking 7×4
→
See all 2,170 queries →