Daily single stock put/call ratio against its 21 session average
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-06, from How the Put/Call Ratio Is Calculated.
| session_date | day_label | daily_ratio | ma21_ratio |
|---|---|---|---|
| 2026-04-01 | Apr 1 | 1.04 | 0.81 |
| 2026-04-02 | Apr 2 | 0.83 | 0.81 |
| 2026-04-06 | Apr 6 | 0.76 | 0.81 |
| 2026-04-07 | Apr 7 | 0.82 | 0.81 |
| 2026-04-08 | Apr 8 | 0.64 | 0.8 |
| 2026-04-09 | Apr 9 | 0.77 | 0.8 |
| 2026-04-10 | Apr 10 | 0.64 | 0.79 |
| 2026-04-13 | Apr 13 | 0.64 | 0.78 |
| 2026-04-14 | Apr 14 | 0.46 | 0.76 |
| 2026-04-15 | Apr 15 | 0.41 | 0.75 |
| 2026-04-16 | Apr 16 | 0.53 | 0.74 |
| 2026-04-17 | Apr 17 | 0.44 | 0.72 |
| 2026-04-20 | Apr 20 | 0.54 | 0.7 |
| 2026-04-21 | Apr 21 | 0.64 | 0.69 |
| 2026-04-22 | Apr 22 | 0.53 | 0.68 |
| 2026-04-23 | Apr 23 | 0.58 | 0.67 |
| 2026-04-24 | Apr 24 | 0.46 | 0.66 |
| 2026-04-27 | Apr 27 | 0.47 | 0.64 |
| 2026-04-28 | Apr 28 | 0.44 | 0.63 |
| 2026-04-29 | Apr 29 | 0.53 | 0.62 |
| 2026-04-30 | Apr 30 | 0.47 | 0.6 |
| 2026-05-01 | May 1 | 0.47 | 0.57 |
| 2026-05-04 | May 4 | 0.5 | 0.56 |
| 2026-05-05 | May 5 | 0.45 | 0.54 |
| 2026-05-06 | May 6 | 0.34 | 0.52 |
| 2026-05-07 | May 7 | 0.38 | 0.51 |
| 2026-05-08 | May 8 | 0.45 | 0.49 |
| 2026-05-11 | May 11 | 0.39 | 0.48 |
| 2026-05-12 | May 12 | 0.41 | 0.47 |
| 2026-05-13 | May 13 | 0.36 | 0.47 |
| 2026-05-14 | May 14 | 0.4 | 0.47 |
| 2026-05-15 | May 15 | 0.47 | 0.46 |
| 2026-05-18 | May 18 | 0.55 | 0.47 |
| 2026-05-19 | May 19 | 0.48 | 0.47 |
| 2026-05-20 | May 20 | 0.43 | 0.46 |
| 2026-05-21 | May 21 | 0.45 | 0.45 |
| 2026-05-22 | May 22 | 0.51 | 0.45 |
| 2026-05-26 | May 26 | 0.43 | 0.45 |
| 2026-05-27 | May 27 | 0.35 | 0.44 |
| 2026-05-28 | May 28 | 0.38 | 0.44 |
| 2026-05-29 | May 29 | 0.4 | 0.43 |
| 2026-06-01 | Jun 1 | 0.38 | 0.43 |
| 2026-06-02 | Jun 2 | 0.38 | 0.42 |
| 2026-06-03 | Jun 3 | 0.4 | 0.42 |
| 2026-06-04 | Jun 4 | 0.44 | 0.42 |
| 2026-06-05 | Jun 5 | 0.55 | 0.43 |
| 2026-06-08 | Jun 8 | 0.51 | 0.43 |
| 2026-06-09 | Jun 9 | 0.69 | 0.45 |
| 2026-06-10 | Jun 10 | 0.59 | 0.46 |
| 2026-06-11 | Jun 11 | 0.64 | 0.47 |
| 2026-06-12 | Jun 12 | 0.5 | 0.47 |
| 2026-06-15 | Jun 15 | 0.47 | 0.48 |
| 2026-06-16 | Jun 16 | 0.64 | 0.48 |
| 2026-06-17 | Jun 17 | 0.77 | 0.49 |
| 2026-06-18 | Jun 18 | 0.55 | 0.5 |
| 2026-06-22 | Jun 22 | 0.54 | 0.5 |
| 2026-06-23 | Jun 23 | 0.75 | 0.52 |
| 2026-06-24 | Jun 24 | 0.7 | 0.53 |
| 2026-06-25 | Jun 25 | 0.7 | 0.54 |
| 2026-06-26 | Jun 26 | 0.61 | 0.55 |
| 2026-06-29 | Jun 29 | 0.54 | 0.56 |
| 2026-06-30 | Jun 30 | 0.48 | 0.56 |
| 2026-07-01 | Jul 1 | 0.52 | 0.57 |
| 2026-07-02 | Jul 2 | 0.52 | 0.58 |
| 2026-07-06 | Jul 6 | 0.48 | 0.58 |
| 2026-07-07 | Jul 7 | 0.67 | 0.59 |
| 2026-07-08 | Jul 8 | 0.49 | 0.59 |
| 2026-07-09 | Jul 9 | 0.44 | 0.59 |
| 2026-07-10 | Jul 10 | 0.5 | 0.58 |
| 2026-07-13 | Jul 13 | 0.54 | 0.57 |
| 2026-07-14 | Jul 14 | 0.53 | 0.57 |
| 2026-07-15 | Jul 15 | 0.47 | 0.57 |
| 2026-07-16 | Jul 16 | 0.58 | 0.57 |
| 2026-07-17 | Jul 17 | 0.73 | 0.58 |
| 2026-07-20 | Jul 20 | 0.6 | 0.57 |
| 2026-07-21 | Jul 21 | 0.55 | 0.57 |
| 2026-07-22 | Jul 22 | 0.5 | 0.57 |
| 2026-07-23 | Jul 23 | 0.68 | 0.56 |
| 2026-07-24 | Jul 24 | 0.71 | 0.56 |
| 2026-07-27 | Jul 27 | 0.63 | 0.56 |
| 2026-07-28 | Jul 28 | 0.69 | 0.56 |
| 2026-07-29 | Jul 29 | 0.66 | 0.57 |
| 2026-07-30 | Jul 30 | 0.59 | 0.58 |
| 2026-07-31 | Jul 31 | 0.56 | 0.58 |
- Rows × columns
- 84 × 4
- Period covered
- to
- Computed
- Completeness
- No missing values
- Source
- US exchange, SIP and OPRA market data
- Licence
- Strasmore terms · free, no signup
What each column holds
| Column | Type | Range | Notes |
|---|---|---|---|
session_date |
date | 2026-04-01 to 2026-07-31 | |
day_label |
text | 84 distinct values (Apr 1, Apr 10, Apr 13…) | |
daily_ratio |
number | 0.34 to 1.04 | ratio or rate |
ma21_ratio |
number | 0.42 to 0.81 | ratio or rate |
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.
the exact SQL behind every number
WITH
daily AS
(
SELECT
d,
toFloat64(sumIf(volume, right_letter = 'P'))
/ toFloat64(sumIf(volume, right_letter = 'C')) AS raw_ratio
FROM
(
SELECT
date AS d,
volume,
substring(ticker, length(ticker) - 8, 1) AS right_letter
FROM global_markets.options_greeks
WHERE date >= '2026-01-02'
AND date < '2026-08-01'
AND underlying_symbol IN ('AAPL', 'MSFT', 'NVDA', 'TSLA', 'KO')
AND volume > 0
)
GROUP BY d
HAVING countIf(right_letter = 'C') > 0
)
SELECT
session_date,
day_label,
daily_ratio,
ma21_ratio
FROM
(
SELECT
d,
toString(d) AS session_date,
concat(formatDateTime(d, '%b '), toString(toDayOfMonth(d))) AS day_label,
round(raw_ratio, 2) AS daily_ratio,
round(avg(raw_ratio) OVER (ORDER BY d ROWS BETWEEN 20 PRECEDING AND CURRENT ROW), 2) AS ma21_ratio
FROM daily
)
WHERE d >= '2026-04-01'
ORDER BY d
Run your own version of this
The same 22 years of US equities and 12 years of options data are queryable in SQL or plain English. A free account runs 100 queries a day and takes no card.
More from this analysisHow the Put/Call Ratio Is Calculated
Daily put/call volume ratio, SPY against AAPL, July 2026
series 22×4
→
Monthly median put/call ratio: broad market ETFs against single stocks
series 12×4
→
Put and call volume for eight household names, July 2026
ranking 8×4
→
Where the daily ratio actually sits, twelve months of sessions
ranking 3×4
→
Single-stock bucket vs ETF bucket, session by session
series 33×6
→
Market-wide options volume by session, with monthly expirations labelled
series 25×5
→
See all 2,170 queries →