{"slug":"what-is-a-reverse-stock-split","qid":"outcome_12m","label":"Where reverse-split companies stood a year later (splits executed 12-18 months ago)","post_title":"What Is a Reverse Stock Split? Good or Bad?","post_url":"/blog/what-is-a-reverse-stock-split#q-outcome_12m","columns":["outcome_one_year_on","companies","pct_of_cohort"],"rows":[{"outcome_one_year_on":"Still trading, no second reverse split","companies":123,"pct_of_cohort":49.4},{"outcome_one_year_on":"Still trading, split again in reverse","companies":63,"pct_of_cohort":25.3},{"outcome_one_year_on":"Stopped printing trades","companies":63,"pct_of_cohort":25.3}],"shape":"ranking","sql":"WITH cohort AS (\n    SELECT ticker, min(execution_date) AS ex\n    FROM global_markets.stocks_splits\n    WHERE adjustment_type = 'reverse_split'\n      AND execution_date >= today() - INTERVAL 540 DAY\n      AND execution_date <= today() - INTERVAL 365 DAY\n      AND ticker != 'SPCX'\n    GROUP BY ticker\n),\nrepeats AS (\n    SELECT c.ticker AS ticker, count() AS later_reverse_splits\n    FROM cohort AS c\n    INNER JOIN global_markets.stocks_splits AS s ON s.ticker = c.ticker\n    WHERE s.adjustment_type = 'reverse_split'\n      AND s.execution_date > c.ex\n      AND s.execution_date <= c.ex + INTERVAL 365 DAY\n    GROUP BY c.ticker\n),\nbars AS (\n    SELECT ticker, toDate(toTimeZone(window_start, 'America/New_York')) AS d\n    FROM global_markets.delayed_stocks_minute_aggs\n    WHERE ticker IN (SELECT ticker FROM cohort)\n      AND (\n            (window_start >= today() - INTERVAL 545 DAY AND window_start < today() - INTERVAL 360 DAY)\n            OR window_start >= today() - INTERVAL 45 DAY\n          )\n      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n           + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959\n    GROUP BY ticker, d\n),\nstatus AS (\n    SELECT c.ticker AS ticker,\n           countIf(b.d < c.ex) AS pre_split_days,\n           countIf(b.d >= today() - 45) AS recent_days,\n           any(ifNull(r.later_reverse_splits, 0)) AS later_reverse\n    FROM cohort AS c\n    INNER JOIN bars AS b ON b.ticker = c.ticker\n    LEFT JOIN repeats AS r ON r.ticker = c.ticker\n    GROUP BY c.ticker\n    HAVING pre_split_days > 0\n)\nSELECT multiIf(recent_days = 0, 'Stopped printing trades',\n               later_reverse > 0, 'Still trading, split again in reverse',\n               'Still trading, no second reverse split') AS outcome_one_year_on,\n       count() AS companies,\n       round(100.0 * count() / sum(count()) OVER (), 1) AS pct_of_cohort\nFROM status\nGROUP BY outcome_one_year_on\nORDER BY indexOf(['Still trading, no second reverse split',\n                  'Still trading, split again in reverse',\n                  'Stopped printing trades'], outcome_one_year_on)","computed_at":"2026-08-22T04:34:01.856182+00:00","elapsed":24.44188545}