{"slug":"why-short-interest-is-two-weeks-old","qid":"cycle_now","label":"The current state of the cycle: the newest print on file, and the one still in the pipeline","post_title":"Why Short Interest Data Is Always Two Weeks Old","post_url":"/blog/why-short-interest-is-two-weeks-old#q-cycle_now","columns":["latest_settlement_on_file","securities_in_that_print","its_publication_lag_days","next_settlement_rows_on_file","daily_short_volume_files_since","days_from_settlement_to_newest_daily_file"],"rows":[{"latest_settlement_on_file":"2026-07-31","securities_in_that_print":22339,"its_publication_lag_days":11,"next_settlement_rows_on_file":0,"daily_short_volume_files_since":15,"days_from_settlement_to_newest_daily_file":21}],"shape":"scalar","sql":"WITH (SELECT max(settlement_date) FROM global_markets.stocks_short_interest) AS latest\nSELECT toString(latest) AS latest_settlement_on_file,\n       (SELECT count() FROM global_markets.stocks_short_interest\n        WHERE settlement_date = latest) AS securities_in_that_print,\n       (SELECT dateDiff('day', latest, toDate(min(_ingest_time))) FROM global_markets.stocks_short_interest\n        WHERE settlement_date = latest) AS its_publication_lag_days,\n       (SELECT count() FROM global_markets.stocks_short_interest\n        WHERE settlement_date > latest AND settlement_date <= latest + 16) AS next_settlement_rows_on_file,\n       (SELECT count(DISTINCT date) FROM global_markets.stocks_short_volume\n        WHERE date > latest) AS daily_short_volume_files_since,\n       (SELECT dateDiff('day', latest, max(date)) FROM global_markets.stocks_short_volume) AS days_from_settlement_to_newest_daily_file","computed_at":"2026-08-22T04:36:30.493642+00:00","elapsed":0.044929742}