{"slug":"why-short-interest-is-two-weeks-old","qid":"dtc_worked","label":"GME days to cover: as reported in the file, and recomputed on the volume that traded while the print was pending","post_title":"Why Short Interest Data Is Always Two Weeks Old","post_url":"/blog/why-short-interest-is-two-weeks-old#q-dtc_worked","columns":["settlement","shares_short_m","file_adv_m","reported_days_to_cover","tape_adv_since_settlement_m","days_to_cover_on_recent_volume","days_of_difference","sessions_measured"],"rows":[{"settlement":"2026-07-31","shares_short_m":53.7,"file_adv_m":3.15,"reported_days_to_cover":17.06,"tape_adv_since_settlement_m":10.99,"days_to_cover_on_recent_volume":4.89,"days_of_difference":12.17,"sessions_measured":7}],"shape":"scalar","sql":"WITH latest AS (SELECT max(settlement_date) AS d FROM global_markets.stocks_short_interest),\narrived AS (\n    SELECT toDate(min(_ingest_time)) AS a\n    FROM global_markets.stocks_short_interest\n    WHERE settlement_date = (SELECT d FROM latest)\n),\ntape AS (\n    SELECT count(DISTINCT toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions,\n           sum(toFloat64(volume)) AS shares\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker = 'GME'\n      AND toDate(toTimeZone(window_start, 'America/New_York')) > (SELECT d FROM latest)\n      AND toDate(toTimeZone(window_start, 'America/New_York')) <= (SELECT a FROM arrived)\n      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60\n          + toMinute(toTimeZone(window_start, 'America/New_York')) BETWEEN 570 AND 959\n)\nSELECT toString((SELECT d FROM latest)) AS settlement,\n       round(si.short_interest / 1e6, 1) AS shares_short_m,\n       round(si.avg_daily_volume / 1e6, 2) AS file_adv_m,\n       round(si.days_to_cover, 2) AS reported_days_to_cover,\n       round(tape.shares / tape.sessions / 1e6, 2) AS tape_adv_since_settlement_m,\n       round(si.short_interest / (tape.shares / tape.sessions), 2) AS days_to_cover_on_recent_volume,\n       round(abs(si.short_interest / (tape.shares / tape.sessions) - si.days_to_cover), 2) AS days_of_difference,\n       tape.sessions AS sessions_measured\nFROM global_markets.stocks_short_interest AS si, tape\nWHERE si.ticker = 'GME'\n  AND si.settlement_date = (SELECT d FROM latest)","computed_at":"2026-08-22T04:36:31.693596+00:00","elapsed":0.136120821}