{"slug":"msft-dividend-2026","qid":"raise_history","label":"raise_history","post_title":"msft-dividend-2026","post_url":"/blog/msft-dividend-2026#q-raise_history","columns":["year","prior_quarterly_rate","new_quarterly_rate","raise_pct","declared_on","first_ex_date_at_new_rate","first_pay_date_at_new_rate"],"rows":[{"year":2020,"prior_quarterly_rate":0.51,"new_quarterly_rate":0.56,"raise_pct":9.8,"declared_on":"Sep 15, 2020","first_ex_date_at_new_rate":"Nov 18, 2020","first_pay_date_at_new_rate":"Dec 10, 2020"},{"year":2021,"prior_quarterly_rate":0.56,"new_quarterly_rate":0.62,"raise_pct":10.7,"declared_on":"Sep 14, 2021","first_ex_date_at_new_rate":"Nov 17, 2021","first_pay_date_at_new_rate":"Dec 9, 2021"},{"year":2022,"prior_quarterly_rate":0.62,"new_quarterly_rate":0.68,"raise_pct":9.7,"declared_on":"Sep 20, 2022","first_ex_date_at_new_rate":"Nov 16, 2022","first_pay_date_at_new_rate":"Dec 8, 2022"},{"year":2023,"prior_quarterly_rate":0.68,"new_quarterly_rate":0.75,"raise_pct":10.3,"declared_on":"Sep 19, 2023","first_ex_date_at_new_rate":"Nov 15, 2023","first_pay_date_at_new_rate":"Dec 14, 2023"},{"year":2024,"prior_quarterly_rate":0.75,"new_quarterly_rate":0.83,"raise_pct":10.7,"declared_on":"Sep 16, 2024","first_ex_date_at_new_rate":"Nov 21, 2024","first_pay_date_at_new_rate":"Dec 12, 2024"},{"year":2025,"prior_quarterly_rate":0.83,"new_quarterly_rate":0.91,"raise_pct":9.6,"declared_on":"Sep 15, 2025","first_ex_date_at_new_rate":"Nov 20, 2025","first_pay_date_at_new_rate":"Dec 11, 2025"},{"year":2026,"prior_quarterly_rate":0.91,"new_quarterly_rate":0.98,"raise_pct":7.7,"declared_on":"Sep 14, 2026","first_ex_date_at_new_rate":"Nov 19, 2026","first_pay_date_at_new_rate":"Dec 10, 2026"}],"shape":"table","sql":"SELECT\n    cur.year                                                                    AS year,\n    round(toFloat64(prev.new_rate), 2)                                          AS prior_quarterly_rate,\n    round(toFloat64(cur.new_rate), 2)                                           AS new_quarterly_rate,\n    round((toFloat64(cur.new_rate) / toFloat64(prev.new_rate) - 1) * 100, 1)    AS raise_pct,\n    concat(formatDateTime(cur.declared_day, '%b'), ' ',\n           toString(toDayOfMonth(cur.declared_day)), ', ',\n           toString(toYear(cur.declared_day)))                                  AS declared_on,\n    concat(formatDateTime(cur.first_ex_day, '%b'), ' ',\n           toString(toDayOfMonth(cur.first_ex_day)), ', ',\n           toString(toYear(cur.first_ex_day)))                                  AS first_ex_date_at_new_rate,\n    concat(formatDateTime(cur.first_pay_day, '%b'), ' ',\n           toString(toDayOfMonth(cur.first_pay_day)), ', ',\n           toString(toYear(cur.first_pay_day)))                                 AS first_pay_date_at_new_rate\nFROM\n(\n    SELECT\n        toYear(ex_dividend_date)                        AS year,\n        max(cash_amount)                                AS new_rate,\n        toDateOrNull(toString(any(declaration_date)))   AS declared_day,\n        min(ex_dividend_date)                           AS first_ex_day,\n        toDateOrNull(toString(any(pay_date)))           AS first_pay_day\n    FROM global_markets.stocks_dividends\n    WHERE ticker = 'MSFT'\n      AND toMonth(ex_dividend_date) >= 10\n      AND ex_dividend_date >= toDate('2019-10-01')\n      AND ex_dividend_date <  toDate('2027-01-01')\n    GROUP BY year\n) AS cur\nINNER JOIN\n(\n    SELECT\n        toUInt16(toYear(ex_dividend_date) + 1)          AS next_year,\n        max(cash_amount)                                AS new_rate\n    FROM global_markets.stocks_dividends\n    WHERE ticker = 'MSFT'\n      AND toMonth(ex_dividend_date) >= 10\n      AND ex_dividend_date >= toDate('2019-10-01')\n      AND ex_dividend_date <  toDate('2027-01-01')\n    GROUP BY next_year\n) AS prev ON cur.year = prev.next_year\nORDER BY year","computed_at":"2026-09-20T14:58:50.706263+00:00","elapsed":0.007579073}