{"slug":"short-squeeze-candidates","qid":"short_vs_shares_out","label":"The screened names ranked by short interest against shares outstanding (not float)","post_title":"Short Squeeze Candidates This Week","post_url":"/blog/short-squeeze-candidates#q-short_vs_shares_out","columns":["ticker","si_pct_shares_out","shares_short_m","shares_out_m","days_to_cover"],"rows":[{"ticker":"RXRX","si_pct_shares_out":33.7,"shares_short_m":180.8,"shares_out_m":536,"days_to_cover":9.3},{"ticker":"WEN","si_pct_shares_out":30.9,"shares_short_m":58.8,"shares_out_m":191,"days_to_cover":8.5},{"ticker":"AI","si_pct_shares_out":29.8,"shares_short_m":46.3,"shares_out_m":155,"days_to_cover":8.4},{"ticker":"SLS","si_pct_shares_out":27.2,"shares_short_m":55,"shares_out_m":202,"days_to_cover":7.9},{"ticker":"RIG","si_pct_shares_out":22.8,"shares_short_m":254.4,"shares_out_m":1117,"days_to_cover":5.6},{"ticker":"SOC","si_pct_shares_out":22.4,"shares_short_m":43,"shares_out_m":192,"days_to_cover":5.4},{"ticker":"UAMY","si_pct_shares_out":22.3,"shares_short_m":33.4,"shares_out_m":150,"days_to_cover":6.2},{"ticker":"IOVA","si_pct_shares_out":22.1,"shares_short_m":100,"shares_out_m":453,"days_to_cover":6.3},{"ticker":"FLO","si_pct_shares_out":20.8,"shares_short_m":44,"shares_out_m":212,"days_to_cover":8.6},{"ticker":"LYFT","si_pct_shares_out":20.3,"shares_short_m":76.7,"shares_out_m":379,"days_to_cover":6.3}],"shape":"table","sql":"WITH latest AS (\n    SELECT max(settlement_date) AS d FROM global_markets.stocks_short_interest\n),\nsessions AS (\n    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker = 'SPY'\n      AND window_start >= now() - INTERVAL 20 DAY\n      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60\n        + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570\n      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60\n        + toMinute(toTimeZone(window_start, 'America/New_York')) < 960\n    GROUP BY session\n    HAVING count() >= 380\n    ORDER BY session DESC\n    LIMIT 6\n),\ncrowded AS (\n    SELECT ticker, days_to_cover, short_interest\n    FROM global_markets.stocks_short_interest\n    WHERE settlement_date = (SELECT d FROM latest)\n      AND avg_daily_volume >= 5000000\n      AND days_to_cover >= 5\n      AND ticker NOT IN ('SPCX')\n      AND ticker NOT IN ('KORU','SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT')\n      AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits\n                         WHERE execution_date BETWEEN today() - 60 AND today())\n),\ntape AS (\n    SELECT ticker,\n           toDate(toTimeZone(window_start, 'America/New_York')) AS session,\n           argMax(close, window_start) AS rth_close\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker IN (SELECT ticker FROM crowded)\n      AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT session FROM sessions)\n      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60\n        + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570\n      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60\n        + toMinute(toTimeZone(window_start, 'America/New_York')) < 960\n    GROUP BY ticker, session\n),\nrising AS (\n    SELECT ticker,\n           round((argMax(rth_close, session) / argMin(rth_close, session) - 1) * 100, 1) AS return_5d_pct\n    FROM tape\n    GROUP BY ticker\n    HAVING count() = 6 AND return_5d_pct > 0\n),\nshare_count AS (\n    SELECT ticker, market_cap / price AS shares_out\n    FROM global_markets.stocks_ratios\n    WHERE date = (SELECT max(date) FROM global_markets.stocks_ratios)\n      AND market_cap > 0\n      AND price > 0\n)\nSELECT c.ticker AS ticker,\n       round(100.0 * c.short_interest / s.shares_out, 1) AS si_pct_shares_out,\n       round(c.short_interest / 1e6, 1) AS shares_short_m,\n       round(s.shares_out / 1e6, 0) AS shares_out_m,\n       round(c.days_to_cover, 1) AS days_to_cover\nFROM crowded c\nINNER JOIN rising r ON r.ticker = c.ticker\nINNER JOIN share_count s ON s.ticker = c.ticker\nORDER BY si_pct_shares_out DESC, c.ticker\nLIMIT 10","computed_at":"2026-08-24T13:16:30.372742+00:00","elapsed":2.900207885}