Dividend Increases Expected This Month
Dividend increases expected this month: companies that raised in each of the last five years and announced in this month, split into declared and pending.
Which dividend increases are expected this month? The list below is built from five years of declaration dates: it keeps every quarterly payer that raised its dividend in each of the last five completed calendar years and declared that raise in the current calendar month in at least four of those five. It is a pattern-based expectation, not a forecast of the amount. A company that has announced its raise in the same month for four or five years running has a habit, and the panel reports that habit, who has already acted on it this month, and who has not yet.
Which dividend increases are expected this month?
The method takes two sentences. A raise is any regular quarterly dividend whose per-share amount is higher than the one before it, dated by the day the company declared it rather than by the ex-dividend date. A company makes the list when it recorded a raise in each of the last five completed calendar years, never cut the quarterly amount over that span, and declared its raise in this calendar month in at least four of those five years.
| ticker | status | usual_window | past_declaration_days | years_declared_in_month | last_raise_pct | last_raise_declared |
|---|---|---|---|---|---|---|
| BRC | declared | first week of September | Sep 1 to 5 | 4 of 5 | 2 | Sep 1, 2026 |
| NNWWF | declared | second week of September | Sep 4 to 12 | 5 of 5 | 2.4 | Sep 8, 2026 |
| VICI | declared | first week of September | Sep 4 to 8 | 4 of 5 | 2.2 | Sep 3, 2026 |
| ACN | expected, not yet declared | last week of September | Sep 22 to 28 | 5 of 5 | 10.1 | Sep 25, 2025 |
| CHCO | expected, not yet declared | last week of September | Sep 24 to 28 | 4 of 5 | 10.1 | Sep 24, 2025 |
| MSFT | expected, not yet declared | third week of September | Sep 14 to 20 | 5 of 5 | 9.6 | Sep 15, 2025 |
| OGE | expected, not yet declared | last week of September | Sep 23 to 29 | 5 of 5 | 0.9 | Sep 23, 2025 |
| PM | expected, not yet declared | second week of September | Sep 12 to 19 | 5 of 5 | 8.9 | Sep 19, 2025 |
| SBUX | expected, not yet declared | third week of September | Sep 8 to 29 | 5 of 5 | 1.6 | Sep 8, 2025 |
| STC | expected, not yet declared | first week of September | Sep 1 to 3 | 4 of 5 | 4.8 | Aug 31, 2026 |
| SVAUF | expected, not yet declared | third week of September | Sep 13 to 15 | 5 of 5 | 0.5 | Jun 16, 2026 |
| TXN | expected, not yet declared | third week of September | Sep 15 to 21 | 5 of 5 | 4.4 | Sep 18, 2025 |
| VZ | expected, not yet declared | first week of September | Sep 2 to 7 | 5 of 5 | 2.5 | Jan 30, 2026 |
The exact SQL behind every number
WITH changes AS
(
SELECT
ticker,
ex_dividend_date,
declaration_date,
amount,
prev_amount,
(prev_amount > 0 AND amount > prev_amount
AND declaration_date > toDate('2000-01-01')) AS is_raise,
(prev_amount > 0 AND amount < prev_amount) AS is_cut,
round((amount / prev_amount - 1) * 100, 1) AS raise_pct
FROM
(
SELECT
ticker,
ex_dividend_date,
declaration_date,
amount,
lagInFrame(amount, 1) OVER (PARTITION BY ticker ORDER BY ex_dividend_date
ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_amount
FROM
(
SELECT
ticker,
ex_dividend_date,
ifNull(max(declaration_date), toDate('1970-01-01')) AS declaration_date,
ifNull(max(toFloat64(cash_amount)), 0) AS amount
FROM global_markets.stocks_dividends
WHERE toString(frequency) = '4'
AND ex_dividend_date >= toDate('2020-01-01')
AND ticker NOT IN ('SPCX')
GROUP BY ticker, ex_dividend_date
)
)
)
SELECT
ticker,
if(declared_this_month > 0, 'declared', 'expected, not yet declared') AS status,
concat(multiIf(median_day <= 7, 'first week of ',
median_day <= 14, 'second week of ',
median_day <= 21, 'third week of ',
'last week of '),
monthName(today())) AS usual_window,
concat(formatDateTime(today(), '%b'), ' ', toString(earliest_day),
' to ', toString(latest_day)) AS past_declaration_days,
concat(toString(years_in_month), ' of 5') AS years_declared_in_month,
last_raise_pct,
concat(formatDateTime(last_declared, '%b'), ' ',
toString(toDayOfMonth(last_declared)), ', ',
toString(toYear(last_declared))) AS last_raise_declared
FROM
(
SELECT
ticker,
uniqExactIf(toYear(declaration_date),
is_raise AND (toYear(declaration_date) BETWEEN toYear(today()) - 5 AND toYear(today()) - 1))
AS years_with_raise,
uniqExactIf(toYear(declaration_date),
is_raise AND (toYear(declaration_date) BETWEEN toYear(today()) - 5 AND toYear(today()) - 1)
AND toMonth(declaration_date) = toMonth(today())) AS years_in_month,
countIf(is_cut AND ex_dividend_date >= addYears(toStartOfYear(today()), -5))
AS cuts,
countIf(is_raise AND toStartOfMonth(declaration_date) = toStartOfMonth(today()))
AS declared_this_month,
quantileExactIf(0.5)(toDayOfMonth(declaration_date),
is_raise AND (toYear(declaration_date) BETWEEN toYear(today()) - 5 AND toYear(today()) - 1)
AND toMonth(declaration_date) = toMonth(today())) AS median_day,
minIf(toDayOfMonth(declaration_date),
is_raise AND (toYear(declaration_date) BETWEEN toYear(today()) - 5 AND toYear(today()) - 1)
AND toMonth(declaration_date) = toMonth(today())) AS earliest_day,
maxIf(toDayOfMonth(declaration_date),
is_raise AND (toYear(declaration_date) BETWEEN toYear(today()) - 5 AND toYear(today()) - 1)
AND toMonth(declaration_date) = toMonth(today())) AS latest_day,
argMaxIf(raise_pct, declaration_date, is_raise) AS last_raise_pct,
maxIf(declaration_date, is_raise) AS last_declared
FROM changes
GROUP BY ticker
HAVING years_with_raise = 5
AND years_in_month >= 4
AND cuts = 0
)
ORDER BY status ASC, ticker ASCThe panel holds 13 names as of today, sorted by the status column, which is the one to read first. A row marked declared has already announced this month's raise: its last_raise_declared date falls inside the current month and its last_raise_pct is the size of that new raise. A row marked expected, not yet declared has a four- or five-year habit of declaring in this month and has not done so yet, so its last_raise_pct is last year's step. The usual_window column turns the median day of those past declarations into plain words, and past_declaration_days shows the earliest and latest day of the month the company has actually used, which is the practical range to watch. Every declared name also appears, with its old and new quarterly amounts, in this month's dividend increases and cuts.
Which of this month's expected raises have already been declared?
The split between declared and expected moves on every trading day of the month, so the second panel tracks it as a count and lines it up against the same count for each of the past five years. The historical rows answer the fair question about any pattern list: when these companies were expected in earlier years, how many delivered inside the month?
| year | declared_in_month | not_declared_in_month | median_raise_pct |
|---|---|---|---|
| 2021 | 10 | 3 | 4.2 |
| 2022 | 12 | 1 | 8.2 |
| 2023 | 13 | 0 | 4.8 |
| 2024 | 13 | 0 | 4.2 |
| 2025 | 13 | 0 | 4 |
| 2026 | 3 | 10 | 2.2 |
The exact SQL behind every number
WITH changes AS
(
SELECT
ticker,
ex_dividend_date,
declaration_date,
amount,
prev_amount,
(prev_amount > 0 AND amount > prev_amount
AND declaration_date > toDate('2000-01-01')) AS is_raise,
(prev_amount > 0 AND amount < prev_amount) AS is_cut,
round((amount / prev_amount - 1) * 100, 1) AS raise_pct
FROM
(
SELECT
ticker,
ex_dividend_date,
declaration_date,
amount,
lagInFrame(amount, 1) OVER (PARTITION BY ticker ORDER BY ex_dividend_date
ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_amount
FROM
(
SELECT
ticker,
ex_dividend_date,
ifNull(max(declaration_date), toDate('1970-01-01')) AS declaration_date,
ifNull(max(toFloat64(cash_amount)), 0) AS amount
FROM global_markets.stocks_dividends
WHERE toString(frequency) = '4'
AND ex_dividend_date >= toDate('2020-01-01')
AND ticker NOT IN ('SPCX')
GROUP BY ticker, ex_dividend_date
)
)
),
qualifiers AS
(
SELECT ticker
FROM changes
GROUP BY ticker
HAVING uniqExactIf(toYear(declaration_date),
is_raise AND (toYear(declaration_date) BETWEEN toYear(today()) - 5 AND toYear(today()) - 1)) = 5
AND uniqExactIf(toYear(declaration_date),
is_raise AND (toYear(declaration_date) BETWEEN toYear(today()) - 5 AND toYear(today()) - 1)
AND toMonth(declaration_date) = toMonth(today())) >= 4
AND countIf(is_cut AND ex_dividend_date >= addYears(toStartOfYear(today()), -5)) = 0
)
SELECT
spine.year AS year,
ifNull(r.names_declared, 0) AS declared_in_month,
(SELECT count() FROM qualifiers) - ifNull(r.names_declared, 0) AS not_declared_in_month,
ifNull(r.median_raise_pct, 0) AS median_raise_pct
FROM
(
SELECT toUInt16(toYear(today()) - 5 + arrayJoin(range(6))) AS year
) AS spine
LEFT JOIN
(
SELECT
toUInt16(toYear(declaration_date)) AS year,
uniqExact(ticker) AS names_declared,
round(quantileExact(0.5)(raise_pct), 1) AS median_raise_pct
FROM changes
WHERE is_raise
AND toMonth(declaration_date) = toMonth(today())
AND ticker IN (SELECT ticker FROM qualifiers)
GROUP BY year
) AS r ON r.year = spine.year
ORDER BY yearReading the last row, 3 of the names have declared so far in 2026, and 10 are still expected but undeclared. In 2025, the most recent completed year, 13 of today's names declared in this month, with a median raise of 4%. Five years back, in 2021, the count was 10.
One caution on the historical rows: they are high by construction. The list admits only companies that declared in this month in at least four of the five years, so a past-year count can never fall far below the size of the list. The useful reading is the gap. A name counted under not_declared_in_month in a past year did raise that year, just in an adjacent month, which is the single miss the four-of-five rule allows. A declaration slipping a week or two across a month boundary is the most common way a reliable raiser drops out of a month-anchored list.
Why do dividend raises cluster in the same month each year?
A dividend raise is a board decision, and most boards review the payout once a year at a fixed point on the corporate calendar, commonly the meeting that follows the fiscal year-end or the one that approves the next budget. The new amount is then declared alongside that quarter's regular dividend. A company whose fiscal year closes in June reviews its payout after the June books are done, which puts the declaration in September. Stack every company's habit together and the declaration calendar is anything but flat.
| label | declaration_count | share_pct |
|---|---|---|
| Sep | 92 | 3 |
| Oct | 323 | 10.5 |
| Nov | 249 | 8.1 |
| Dec | 196 | 6.3 |
| Jan | 361 | 11.7 |
| Feb | 590 | 19.1 |
| Mar | 131 | 4.2 |
| Apr | 295 | 9.6 |
| May | 260 | 8.4 |
| Jun | 79 | 2.6 |
| Jul | 284 | 9.2 |
| Aug | 227 | 7.4 |
The exact SQL behind every number
WITH changes AS
(
SELECT
ticker,
ex_dividend_date,
declaration_date,
amount,
prev_amount,
(prev_amount > 0 AND amount > prev_amount
AND declaration_date > toDate('2000-01-01')) AS is_raise,
(prev_amount > 0 AND amount < prev_amount) AS is_cut
FROM
(
SELECT
ticker,
ex_dividend_date,
declaration_date,
amount,
lagInFrame(amount, 1) OVER (PARTITION BY ticker ORDER BY ex_dividend_date
ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_amount
FROM
(
SELECT
ticker,
ex_dividend_date,
ifNull(max(declaration_date), toDate('1970-01-01')) AS declaration_date,
ifNull(max(toFloat64(cash_amount)), 0) AS amount
FROM global_markets.stocks_dividends
WHERE toString(frequency) = '4'
AND ex_dividend_date >= toDate('2020-01-01')
AND ticker NOT IN ('SPCX')
GROUP BY ticker, ex_dividend_date
)
)
),
growers AS
(
SELECT ticker
FROM changes
GROUP BY ticker
HAVING uniqExactIf(toYear(declaration_date),
is_raise AND (toYear(declaration_date) BETWEEN toYear(today()) - 5 AND toYear(today()) - 1)) = 5
AND countIf(is_cut AND ex_dividend_date >= addYears(toStartOfYear(today()), -5)) = 0
)
SELECT
label,
declaration_count,
round(100 * declaration_count / sum(declaration_count) OVER (), 1) AS share_pct
FROM
(
SELECT
toMonth(declaration_date) AS month_num,
any(formatDateTime(declaration_date, '%b')) AS label,
count() AS declaration_count
FROM changes
WHERE is_raise
AND (toYear(declaration_date) BETWEEN toYear(today()) - 5 AND toYear(today()) - 1)
AND ticker IN (SELECT ticker FROM growers)
GROUP BY month_num
)
ORDER BY (month_num - toMonth(today()) + 12) % 12This panel counts every raise declared over the last five completed years by companies with five straight years of raises and no cuts, grouped by calendar month and rotated so the current month comes first. Sep accounts for 92 of those declarations, 3% of the total; the month after, Oct, carries 10.5%. A perfectly even calendar would give each month about 8.3%, so the distance from that line is the size of the seasonal habit. The full-year shape, including which months are the busiest, is the subject of when companies announce dividend raises.
What does one company's declaration habit look like?
Microsoft (MSFT) is the textbook case, and its trace is pinned to 2019 through 2025 so the panel never changes. Each row is one raise: the year, the declaration day, the quarterly amounts before and after it, and the step in percent.
| year | declared_on | day_of_month | quarterly_before | quarterly_after | raise_pct |
|---|---|---|---|---|---|
| 2019 | Sep 18 | 18 | $0.46 | $0.51 | 10.9 |
| 2020 | Sep 15 | 15 | $0.51 | $0.56 | 9.8 |
| 2021 | Sep 14 | 14 | $0.56 | $0.62 | 10.7 |
| 2022 | Sep 20 | 20 | $0.62 | $0.68 | 9.7 |
| 2023 | Sep 19 | 19 | $0.68 | $0.75 | 10.3 |
| 2024 | Sep 16 | 16 | $0.75 | $0.83 | 10.7 |
| 2025 | Sep 15 | 15 | $0.83 | $0.91 | 9.6 |
The exact SQL behind every number
SELECT
toYear(declaration_date) AS year,
concat(formatDateTime(declaration_date, '%b'), ' ',
toString(toDayOfMonth(declaration_date))) AS declared_on,
toDayOfMonth(declaration_date) AS day_of_month,
concat('$', toString(toDecimal64(prev_amount, 2))) AS quarterly_before,
concat('$', toString(toDecimal64(amount, 2))) AS quarterly_after,
round((amount / prev_amount - 1) * 100, 1) AS raise_pct
FROM
(
SELECT
ex_dividend_date,
declaration_date,
amount,
lagInFrame(amount, 1) OVER (ORDER BY ex_dividend_date
ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_amount
FROM
(
SELECT
ex_dividend_date,
ifNull(max(declaration_date), toDate('1970-01-01')) AS declaration_date,
ifNull(max(toFloat64(cash_amount)), 0) AS amount
FROM global_markets.stocks_dividends
WHERE ticker = 'MSFT'
AND toString(frequency) = '4'
AND ex_dividend_date BETWEEN toDate('2018-06-01') AND toDate('2026-03-31')
GROUP BY ex_dividend_date
)
)
WHERE prev_amount > 0
AND amount > prev_amount
AND declaration_date BETWEEN toDate('2019-01-01') AND toDate('2025-12-31')
ORDER BY declaration_dateThe first raise in the window was declared on Sep 18, 2019, a 10.9% step; the most recent, on Sep 15, 2025, was 9.6%. Read the day_of_month series against the raise_pct series. Timing and size are separate decisions, and the trace shows them moving independently: the declaration day sits in a narrow band while the percentage varies with each year's board decision. Verizon's dividend increase history walks the same kind of trace for a different name.
How is this different from an ex-dividend calendar?
An ex-dividend calendar lists dates that are already fixed: the company has declared the dividend, and the ex-date and pay date are on the record. Our upcoming ex-dividend dates page is that calendar. This list works one step earlier. It names companies whose declaration has not happened yet and says when, on past form, it has tended to arrive. Once a name declares, it moves into the declared group here and appears in the increases-and-cuts post with its new amount; a few weeks after that, the new dividend reaches the ex-dividend calendar. For the longest raise streaks regardless of month, see dividend growth champions.
What the list cannot tell you
- The amount. The pattern says when a company has tended to declare and nothing about the size of the next step; the
last_raise_pctcolumn is history. - Whether the raise happens at all. A board can hold the dividend flat in any year. The list only knows what has been declared, so a company that skips a raise stays in the expected group until the month ends and then drops out of next year's list.
- Names without a recorded declaration date. A raise is dated by its declaration, so a dividend record without one cannot be counted, which can exclude a company that does raise every year.
- Names with a stock split in the window. The raise test compares consecutive per-share amounts as paid, so a split quarter registers as a drop and removes the company under the no-cut rule.
The list refreshes on the same weekly cadence as the other rolling dividend pages, so a declaration made today appears once the dividend record carries it, typically within a day or two.
FAQ
What does "expected, not yet declared" mean for a dividend?
It means the company has declared a dividend raise in this calendar month in at least four of the last five years, has raised in every one of those years, and has not announced this year's raise yet. It is a statement about past timing, with no promise that a raise is coming or how large it will be.
How do I know when a company will announce its dividend increase?
Look at its declaration dates from prior years. Most companies review the dividend once a year at the same board meeting, so the declaration tends to land in the same week of the same month. The usual_window and past_declaration_days columns above summarize that history for each name.
Does a company have to raise its dividend every year?
No. A dividend is declared by the board each quarter, and a company can hold it flat or cut it at any point. Long raise streaks are a track record, not an obligation, which is why this page keeps what has been declared separate from what is only expected.
Where can I see the dividend increases already declared this month?
The declared group at the top of the first panel lists them, and dividend increases and cuts shows each one with its old and new quarterly amounts.
Every panel here ships with the exact SQL beneath it. To check one company's declaration history, or to re-anchor the list to a different month, ask the question in plain English on the Strasmore terminal.