{"slug":"when-special-dividends-adjust-options","qid":"payout_type_scale","label":"How big each kind of cash distribution is, as a share of the stock price","post_title":"When Special Dividends Adjust Options","post_url":"/blog/when-special-dividends-adjust-options#q-payout_type_scale","columns":["payout_type","payouts","median_yield_pct","p90_yield_pct"],"rows":[{"payout_type":"Monthly","payouts":102202,"median_yield_pct":0.417,"p90_yield_pct":0.89},{"payout_type":"Quarterly","payouts":98175,"median_yield_pct":0.683,"p90_yield_pct":1.97},{"payout_type":"Semiannual","payouts":5621,"median_yield_pct":1.156,"p90_yield_pct":3},{"payout_type":"Annual","payouts":3251,"median_yield_pct":1.403,"p90_yield_pct":6.09},{"payout_type":"One time","payouts":5957,"median_yield_pct":0.763,"p90_yield_pct":4.74}],"shape":"ranking","sql":"SELECT\n    multiIf(frequency = 0, 'One time',\n            frequency = 1, 'Annual',\n            frequency = 2, 'Semiannual',\n            frequency = 4, 'Quarterly',\n                           'Monthly')                     AS payout_type,\n    count()                                               AS payouts,\n    round(quantileDeterministic(0.5)(yield_pct, det), 3)  AS median_yield_pct,\n    round(quantileDeterministic(0.9)(yield_pct, det), 2)  AS p90_yield_pct\nFROM\n(\n    SELECT\n        dv.frequency                                            AS frequency,\n        100 * toFloat64(dv.cash_amt) / toFloat64(px.close)       AS yield_pct,\n        cityHash64(dv.ticker, toString(dv.ex_dividend_date))     AS det\n    FROM\n    (\n        SELECT\n            ticker,\n            date,\n            max(close) AS close\n        FROM global_markets.stocks_daily_aggs\n        WHERE date >= '2019-01-01'\n          AND (ticker, date) IN\n          (\n              SELECT ticker, ex_dividend_date\n              FROM global_markets.stocks_dividends\n              WHERE currency = 'USD'\n                AND cash_amount > 0\n          )\n        GROUP BY ticker, date\n        HAVING close >= 1\n    ) AS px\n    INNER JOIN\n    (\n        SELECT\n            ticker,\n            ex_dividend_date,\n            frequency,\n            max(cash_amount) AS cash_amt\n        FROM global_markets.stocks_dividends\n        WHERE currency = 'USD'\n          AND cash_amount > 0\n          AND frequency IN (0, 1, 2, 4, 12)\n          AND ex_dividend_date >= '2019-01-01'\n          AND ex_dividend_date <  today() - 5\n        GROUP BY ticker, ex_dividend_date, frequency\n    ) AS dv ON dv.ticker = px.ticker AND dv.ex_dividend_date = px.date\n)\nGROUP BY payout_type\nHAVING payouts >= 200\nORDER BY (payout_type = 'One time') ASC, median_yield_pct ASC","computed_at":"2026-08-22T04:36:01.730146+00:00","elapsed":4.385775963}