{"slug":"dividend-increases-expected-this-month","qid":"declaration_seasonality","label":"When dividend raises get declared: share by calendar month, starting from this month","post_title":"Dividend Increases Expected This Month","post_url":"/blog/dividend-increases-expected-this-month#q-declaration_seasonality","columns":["label","declaration_count","share_pct"],"rows":[{"label":"Sep","declaration_count":92,"share_pct":3},{"label":"Oct","declaration_count":323,"share_pct":10.5},{"label":"Nov","declaration_count":249,"share_pct":8.1},{"label":"Dec","declaration_count":196,"share_pct":6.3},{"label":"Jan","declaration_count":361,"share_pct":11.7},{"label":"Feb","declaration_count":590,"share_pct":19.1},{"label":"Mar","declaration_count":131,"share_pct":4.2},{"label":"Apr","declaration_count":295,"share_pct":9.6},{"label":"May","declaration_count":260,"share_pct":8.4},{"label":"Jun","declaration_count":79,"share_pct":2.6},{"label":"Jul","declaration_count":284,"share_pct":9.2},{"label":"Aug","declaration_count":227,"share_pct":7.4}],"shape":"ranking","sql":"WITH changes AS\n(\n    SELECT\n        ticker,\n        ex_dividend_date,\n        declaration_date,\n        amount,\n        prev_amount,\n        (prev_amount > 0 AND amount > prev_amount\n             AND declaration_date > toDate('2000-01-01'))            AS is_raise,\n        (prev_amount > 0 AND amount < prev_amount)                   AS is_cut\n    FROM\n    (\n        SELECT\n            ticker,\n            ex_dividend_date,\n            declaration_date,\n            amount,\n            lagInFrame(amount, 1) OVER (PARTITION BY ticker ORDER BY ex_dividend_date\n                                        ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_amount\n        FROM\n        (\n            SELECT\n                ticker,\n                ex_dividend_date,\n                ifNull(max(declaration_date), toDate('1970-01-01')) AS declaration_date,\n                ifNull(max(toFloat64(cash_amount)), 0)              AS amount\n            FROM global_markets.stocks_dividends\n            WHERE toString(frequency) = '4'\n              AND ex_dividend_date >= toDate('2020-01-01')\n              AND ticker NOT IN ('SPCX')\n            GROUP BY ticker, ex_dividend_date\n        )\n    )\n),\ngrowers AS\n(\n    SELECT ticker\n    FROM changes\n    GROUP BY ticker\n    HAVING uniqExactIf(toYear(declaration_date),\n                       is_raise AND (toYear(declaration_date) BETWEEN toYear(today()) - 5 AND toYear(today()) - 1)) = 5\n       AND countIf(is_cut AND ex_dividend_date >= addYears(toStartOfYear(today()), -5)) = 0\n)\nSELECT\n    label,\n    declaration_count,\n    round(100 * declaration_count / sum(declaration_count) OVER (), 1) AS share_pct\nFROM\n(\n    SELECT\n        toMonth(declaration_date)                      AS month_num,\n        any(formatDateTime(declaration_date, '%b'))    AS label,\n        count()                                        AS declaration_count\n    FROM changes\n    WHERE is_raise\n      AND (toYear(declaration_date) BETWEEN toYear(today()) - 5 AND toYear(today()) - 1)\n      AND ticker IN (SELECT ticker FROM growers)\n    GROUP BY month_num\n)\nORDER BY (month_num - toMonth(today()) + 12) % 12","computed_at":"2026-09-16T15:03:56.722927+00:00","elapsed":3.089124893}