Crowding leaders vs. their own price: about one month of sessions
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-25, from Most Shorted Stocks Right Now, Measured.
| ticker | days_to_cover | return_pct | from_session | to_session |
|---|---|---|---|---|
| IBRX | 14.5 | -6.3 | 2026-07-21 | 2026-08-24 |
| IQ | 10.4 | -19.3 | 2026-07-21 | 2026-08-24 |
| GERN | 9.9 | 5.2 | 2026-07-21 | 2026-08-24 |
| ABCL | 9.7 | 82.4 | 2026-07-21 | 2026-08-24 |
- Rows × columns
- 4 × 5
- Period covered
- 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 |
|---|---|---|---|
ticker |
text | 4 distinct values (ABCL, GERN, IBRX…) | |
days_to_cover |
number | 9.7 to 14.5 | |
return_pct |
number | -19.3 to 82.4 | percent |
from_session |
date | 2026-07-21 | |
to_session |
date | 2026-08-24 |
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 top5 AS (
SELECT ticker, round(days_to_cover, 1) AS dtc
FROM global_markets.stocks_short_interest
WHERE settlement_date = (SELECT max(settlement_date) FROM global_markets.stocks_short_interest)
AND avg_daily_volume >= 5000000
AND days_to_cover IS NOT NULL
AND ticker NOT IN ('SPCX')
ORDER BY days_to_cover DESC, ticker
LIMIT 5
),
daily AS (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS session,
argMax(close, window_start) AS rth_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN (SELECT ticker FROM top5)
AND window_start >= now() - INTERVAL 35 DAY
AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York')) BETWEEN 570 AND 959
GROUP BY ticker, session
),
moves AS (
SELECT ticker,
count() AS sessions,
toString(min(session)) AS from_session,
toString(max(session)) AS to_session,
round((argMax(rth_close, session) / argMin(rth_close, session) - 1) * 100, 1) AS return_pct
FROM daily
GROUP BY ticker
HAVING sessions >= 15
)
SELECT m.ticker AS ticker,
t.dtc AS days_to_cover,
m.return_pct AS return_pct,
m.from_session AS from_session,
m.to_session AS to_session
FROM moves m
INNER JOIN top5 t ON m.ticker = t.ticker
ORDER BY t.dtc DESC, m.ticker
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 analysisMost Shorted Stocks Right Now, Measured
GME through the January 2021 squeeze: the same three columns, settlement by settlement
series 10×4
→
Today's top-3 crowding leaders, traced back eight settlements
series 8×4
→
Largest short positions by shares: latest settlement, liquid names
ranking 10×4
→
Highest days to cover among liquid names: latest settlement on file
table 10×5
→
Biggest days-to-cover increases, latest settlement vs. the prior print
ranking 8×4
→
The receipts: universe size, filter bite, median crowding, and list churn at the latest print
scalar 1×5
→
See all 2,170 queries →