{"slug":"mo-dividend-increase-history","qid":"cadence","label":"cadence","post_title":"mo-dividend-increase-history","post_url":"/blog/mo-dividend-increase-history#q-cadence","columns":["ticker","busiest_month","raises_in_busiest_month","raises_since_2008","share_pct"],"rows":[{"ticker":"MO","busiest_month":"August","raises_in_busiest_month":12,"raises_since_2008":14,"share_pct":85.7},{"ticker":"PM","busiest_month":"September","raises_in_busiest_month":12,"raises_since_2008":13,"share_pct":92.3}],"shape":"series","sql":"WITH paid AS\n(\n    SELECT\n        ticker,\n        ex_dividend_date      AS ex_date,\n        max(declaration_date) AS declared,\n        max(cash_amount)      AS amount\n    FROM global_markets.stocks_dividends\n    WHERE ticker IN ('MO', 'PM')\n      AND ex_dividend_date >= toDate('2008-04-01')\n    GROUP BY ticker, ex_dividend_date\n),\nsteps AS\n(\n    SELECT\n        ticker,\n        declared,\n        amount,\n        lagInFrame(amount) OVER (PARTITION BY ticker ORDER BY ex_date ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) AS prior\n    FROM paid\n),\nby_month AS\n(\n    SELECT\n        ticker,\n        monthName(declared) AS announced_in,\n        count()             AS raises\n    FROM steps\n    WHERE prior > 0\n      AND amount > prior\n      AND declared > toDate('2000-01-01')\n    GROUP BY ticker, announced_in\n)\nSELECT\n    ticker,\n    argMax(announced_in, raises)               AS busiest_month,\n    max(raises)                                AS raises_in_busiest_month,\n    sum(raises)                                AS raises_since_2008,\n    round(100 * max(raises) / sum(raises), 1)  AS share_pct\nFROM by_month\nGROUP BY ticker\nORDER BY ticker","computed_at":"2026-09-12T04:22:10.742735+00:00","elapsed":0.224303792}