Why Short Interest Data Is Always Two Weeks Old
The pipeline lag in one row: plus the bulk backfill these figures deliberately excludescalar ·
2026-08-22 · 1×610
Every incrementally-delivered settlement: measured on one date, on file days laterseries ·
2026-08-22 · 10×3
GME, winter 2020-21: each short interest print and the price move before it went public (as-traded prices)table ·
2026-08-22 · 6×5
GME days to cover: as reported in the file, and recomputed on the volume that traded while the print was pendingscalar ·
2026-08-22 · 1×853.7
The current state of the cycle: the newest print on file, and the one still in the pipelinescalar ·
2026-08-22 · 1×622,339
The blind window: what five stocks did between the settlement date and the day its short interest was publishedtable ·
2026-08-22 · 5×6
When Is Short Interest Released?
The short interest release schedule: recent FINRA settlement dates and names reportedseries ·
2026-08-22 · 16×2
Measured publication lag: settlement date vs the day the file first arrived hereseries ·
2026-08-22 · 10×3
The publication lag in one row: fastest, median and slowest across incrementally-delivered settlementsscalar ·
2026-08-22 · 1×410
Day-of-month and the gap between consecutive settlement dates: the twice-monthly cadenceseries ·
2026-08-22 · 16×3
The current state of the release cycle: the newest print on file and the settlement still pendingscalar ·
2026-08-22 · 1×631
The pipeline lag in one row: plus the bulk backfill these figures deliberately exclude
The pipeline lag in one row: plus the bulk backfill these figures deliberately exclude
settlements measured
10
fastest lag days
10
median lag days
14
slowest lag days
26
settlements bulk loaded
197
bulk load date
2026-03-16
the exact SQL behind every number
WITH first_arrival AS (
SELECT settlement_date,
toDate(min(_ingest_time)) AS arrived
FROM global_markets.stocks_short_interest
GROUP BY settlement_date
),
bulk_days AS (
SELECT arrived
FROM first_arrival
GROUP BY arrived
HAVING count() > 5
),
organic AS (
SELECT settlement_date,
dateDiff('day', settlement_date, arrived) AS lag
FROM first_arrival
WHERE arrived NOT IN (SELECT arrived FROM bulk_days)
)
SELECT count() AS settlements_measured,
min(lag) AS fastest_lag_days,
round(quantileDeterministic(0.5)(lag, cityHash64(settlement_date)), 1) AS median_lag_days,
max(lag) AS slowest_lag_days,
(SELECT count() FROM first_arrival WHERE arrived IN (SELECT arrived FROM bulk_days)) AS settlements_bulk_loaded,
(SELECT toString(max(arrived)) FROM bulk_days) AS bulk_load_date
FROM organic
More from this analysisWhy Short Interest Data Is Always Two Weeks Old
GME days to cover: as reported in the file, and recomputed on the volume that traded while the print was pending
scalar 1×8
→
The current state of the cycle: the newest print on file, and the one still in the pipeline
scalar 1×6
→
Every incrementally-delivered settlement: measured on one date, on file days later
series 10×3
→
GME, winter 2020-21: each short interest print and the price move before it went public (as-traded prices)
table 6×5
→
See all 2,170 queries →