When Companies Announce Dividend Raises
Dividend raises cluster in the same fiscal month year after year. See which month each dividend grower declares, how tightly that month holds, and why.
Companies announce dividend raises on an annual cycle, and most of them announce in the same month every year. A board of directors approves a new rate at a scheduled meeting, the company puts out the declaration, and the higher payment shows up on the next ex-dividend date. The honest answer to a question about the next dividend increase is a base rate built from declaration history. This page builds that base rate: the market's raise calendar, the month each dividend grower has used, how tightly that month has held, and what breaks it.
Every panel below reads the filed dividend record in global_markets.stocks_dividends and keys off declaration_date, the date a board's decision became public, rather than the ex-dividend date or the pay date. A raise is counted when a company's recurring quarterly cash amount comes in above the prior quarter's amount, one quarter apart.
When do companies announce dividend increases?
Start with the whole market. Every recurring quarterly payer on file since mid-2015, sorted into the calendar month of the declaration:
The exact SQL behind every number
WITH quarterly AS (
SELECT ticker,
ex_dividend_date,
round(max(toFloat64(cash_amount)), 4) AS amount,
max(declaration_date) AS declared
FROM global_markets.stocks_dividends
WHERE distribution_type = 'recurring'
AND frequency = 4
AND cash_amount > 0
AND declaration_date > toDate('2015-06-30')
AND ex_dividend_date >= toDate('2015-07-01')
AND ex_dividend_date <= toDate('2026-07-31')
GROUP BY ticker, ex_dividend_date
),
stepped AS (
SELECT ticker,
declared,
amount,
ex_dividend_date,
lagInFrame(amount, 1) OVER (PARTITION BY ticker ORDER BY ex_dividend_date ASC
ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prior_amount,
lagInFrame(ex_dividend_date, 1) OVER (PARTITION BY ticker ORDER BY ex_dividend_date ASC
ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prior_ex_date
FROM quarterly
)
SELECT formatDateTimeInJodaSyntax(declared, 'MMM') AS month_label,
count() AS raises,
uniqExact(ticker) AS companies
FROM stepped
WHERE prior_amount > 0
AND amount > prior_amount * 1.005
AND dateDiff('day', prior_ex_date, ex_dividend_date) BETWEEN 45 AND 200
GROUP BY month_label
ORDER BY raises DESCThe busiest declaration month is Jan, carrying 8287 raises from 1872 companies. Dec and Feb come next. The quietest month, Aug, still carries 1428. All 12 months are populated, so the calendar is lumpy rather than concentrated in one window.
Why the same month comes back every year
Dividend rates are set by the board, and boards meet on a published schedule. Most US companies review the payout once a year, at the meeting that follows the fiscal year end or sits near the annual shareholder meeting, and that review keeps its slot on the calendar for as long as the schedule holds.
Two other mechanics reinforce it. A company tracking a consecutive-increase streak has an incentive to keep the anniversary intact, and the payment cycle itself is fixed: a quarterly payer has four windows a year, and only one of them normally carries a new rate. Fiscal calendars sit behind most of the names that look out of step. A company whose fiscal year ends in June sets its rate in a different quarter from one that closes in December, and its raise month lands a quarter or two away from the crowd.
Which month does each dividend grower use?
Twelve household names with long payout records, ranked by how tightly their raises stick to a single month:
The exact SQL behind every number
WITH quarterly AS (
SELECT ticker,
ex_dividend_date,
round(max(toFloat64(cash_amount)), 4) AS amount,
max(declaration_date) AS declared
FROM global_markets.stocks_dividends
WHERE ticker IN ('JNJ','KO','PG','PEP','MCD','WMT','CVX','XOM','MMM','CAT','HD','ADP')
AND distribution_type = 'recurring'
AND frequency = 4
AND cash_amount > 0
AND declaration_date > toDate('2015-06-30')
AND ex_dividend_date >= toDate('2015-07-01')
AND ex_dividend_date <= toDate('2026-07-31')
GROUP BY ticker, ex_dividend_date
),
stepped AS (
SELECT ticker,
declared,
amount,
ex_dividend_date,
lagInFrame(amount, 1) OVER (PARTITION BY ticker ORDER BY ex_dividend_date ASC
ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prior_amount,
lagInFrame(ex_dividend_date, 1) OVER (PARTITION BY ticker ORDER BY ex_dividend_date ASC
ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prior_ex_date
FROM quarterly
),
raises AS (
SELECT ticker,
formatDateTimeInJodaSyntax(declared, 'MMM') AS month_label,
toMonth(declared) AS month_index
FROM stepped
WHERE prior_amount > 0
AND amount > prior_amount * 1.005
AND dateDiff('day', prior_ex_date, ex_dividend_date) BETWEEN 45 AND 200
),
per_month AS (
SELECT ticker,
month_label,
month_index,
count() AS raises_in_month
FROM raises
GROUP BY ticker, month_label, month_index
)
SELECT ticker,
argMax(month_label, raises_in_month * 100 + month_index) AS typical_month,
sum(raises_in_month) AS raises_total,
max(raises_in_month) AS raises_in_typical_month,
round(100 * max(raises_in_month) / sum(raises_in_month)) AS same_month_pct
FROM per_month
GROUP BY ticker
HAVING sum(raises_in_month) >= 5
ORDER BY same_month_pct DESC, raises_total DESCHD sits at the top of the panel: 11 of its 11 raises since 2016 were declared in Feb, a 100% hit rate. At the bottom, XOM lands in its usual month of Oct 44% of the time. Read the typical month as a base rate for one company, not as a schedule. It summarises what a decade of board meetings did. It carries nothing about a decision that has not been made.
That split is the division of labour across this cluster. Dividend growth champions covers who owns the longest streaks, dividend increases and cuts reports what already happened to the payouts, and this page answers when the announcements land.
How tightly does the month hold?
Take every raise in the market that follows another raise between 250 and 480 days earlier, the annual cadence, and ask whether the calendar month matched:
The exact SQL behind every number
WITH quarterly AS (
SELECT ticker,
ex_dividend_date,
round(max(toFloat64(cash_amount)), 4) AS amount,
max(declaration_date) AS declared
FROM global_markets.stocks_dividends
WHERE distribution_type = 'recurring'
AND frequency = 4
AND cash_amount > 0
AND declaration_date > toDate('2015-06-30')
AND ex_dividend_date >= toDate('2015-07-01')
AND ex_dividend_date <= toDate('2026-07-31')
GROUP BY ticker, ex_dividend_date
),
stepped AS (
SELECT ticker,
declared,
amount,
ex_dividend_date,
lagInFrame(amount, 1) OVER (PARTITION BY ticker ORDER BY ex_dividend_date ASC
ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prior_amount,
lagInFrame(ex_dividend_date, 1) OVER (PARTITION BY ticker ORDER BY ex_dividend_date ASC
ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prior_ex_date
FROM quarterly
),
raises AS (
SELECT ticker, declared
FROM stepped
WHERE prior_amount > 0
AND amount > prior_amount * 1.005
AND dateDiff('day', prior_ex_date, ex_dividend_date) BETWEEN 45 AND 200
),
chained AS (
SELECT ticker,
declared,
lagInFrame(declared, 1) OVER (PARTITION BY ticker ORDER BY declared ASC
ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prior_declared
FROM raises
)
SELECT toYear(declared) AS year,
uniqExact(ticker) AS companies,
round(100 * countIf(toMonth(declared) = toMonth(prior_declared)) / count(), 1) AS same_month_pct,
round(100 * countIf(abs(toInt32(toRelativeMonthNum(declared))
- toInt32(toRelativeMonthNum(prior_declared)) - 12) <= 1) / count(), 1) AS within_one_month_pct
FROM chained
WHERE declared >= toDate('2017-01-01')
AND dateDiff('day', prior_declared, declared) BETWEEN 250 AND 480
GROUP BY year
ORDER BY yearAcross the 10 years charted, the same-month share ran 68.6% in 2017 and 74.5% in 2026, the latter across 1154 companies. Allowing a one month slip lifts the 2026 reading to 82.8%. The final row stops at declarations through July 2026, the cutoff every panel here uses. A repeat rate in that range is a strong prior. It is still only a prior.
One company's raise calendar, year by year
Johnson & Johnson raised its quarterly rate in every year of the window. Each row below is one raise: the declaration date, the rate before it, and the rate after.
The exact SQL behind every number
WITH quarterly AS (
SELECT ex_dividend_date,
round(max(toFloat64(cash_amount)), 4) AS amount,
max(declaration_date) AS declared
FROM global_markets.stocks_dividends
WHERE ticker = 'JNJ'
AND distribution_type = 'recurring'
AND frequency = 4
AND cash_amount > 0
AND declaration_date > toDate('2015-06-30')
AND ex_dividend_date >= toDate('2015-07-01')
AND ex_dividend_date <= toDate('2026-07-31')
GROUP BY ex_dividend_date
),
stepped AS (
SELECT declared,
amount,
ex_dividend_date,
lagInFrame(amount, 1) OVER (ORDER BY ex_dividend_date ASC
ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prior_amount,
lagInFrame(ex_dividend_date, 1) OVER (ORDER BY ex_dividend_date ASC
ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prior_ex_date
FROM quarterly
)
SELECT toYear(declared) AS year,
formatDateTimeInJodaSyntax(declared, 'MMM d') AS declared_on,
round(prior_amount, 4) AS old_quarterly_usd,
round(amount, 4) AS new_quarterly_usd,
round(100 * (amount / prior_amount - 1), 1) AS raise_pct
FROM stepped
WHERE prior_amount > 0
AND amount > prior_amount * 1.005
AND dateDiff('day', prior_ex_date, ex_dividend_date) BETWEEN 45 AND 200
ORDER BY yearThe first raise on the panel was declared Apr 28 in 2016, taking the quarterly rate from $0.75 to $0.8, a 6.7% step. The most recent was declared Apr 14 in 2026, lifting it to $1.34, a 3.1% step. Both ends of the 11-raise run land in the mid single digits, which is the shape a mature grower's calendar tends to take. The JNJ dividend page carries the full payment record, and Verizon's increase history shows the same annual rhythm at a slower growth rate.
What breaks the pattern
Four things move a raise off its usual month, or remove it from the year altogether.
- A payout under strain. When the dividend absorbs most of earnings, the annual review can end in a hold rather than a step up. The dividend payout ratio page shows how that cushion is measured.
- A pending merger or spin-off. Corporate actions reshuffle both the board calendar and the share count, and a rate can sit frozen for a cycle while a deal is open.
- A skipped year already on the record. A company that held flat last year has a broken anniversary, and its next raise restarts the pattern rather than continuing it.
- A cut. Dividend cuts come out of the same annual review, and they land in the same months the raises do.
That list matters most for anyone reading a calendar as a prediction. A base rate answers which month a board has used. It does not answer what a board will do next, and a raise exists only once the company declares it.
Declaration date, ex-dividend date, and pay date
The declaration is the announcement. The ex-dividend date is the ownership cutoff for collecting that payment, and it comes later. The record on file shows how much room usually sits between them.
The exact SQL behind every number
SELECT toYear(declaration_date) AS year,
uniqExact(ticker) AS company_count,
count() AS declaration_count,
round(100 * countIf(declaration_date <= ex_dividend_date) / count(), 1) AS declared_before_ex_pct,
round(quantileDeterministic(0.5)(dateDiff('day', declaration_date, ex_dividend_date),
cityHash64(ticker))) AS median_days_declared_to_ex
FROM global_markets.stocks_dividends
WHERE distribution_type = 'recurring'
AND cash_amount > 0
AND declaration_date > toDate('2015-12-31')
AND declaration_date <= toDate('2026-07-31')
AND ex_dividend_date > toDate('2015-12-31')
GROUP BY year
ORDER BY yearIn the partial 2026 year through July, 29319 recurring declarations from 10493 companies sat on file, with a median of 29 days between the declaration and the ex-dividend date. 100% of those records carry a declaration on or before the ex-date. That gap is the window in which a raise is public but not yet payable. The upcoming ex-dividend dates calendar lists the next two weeks of cutoffs, and the ex-dividend date guide walks the full timeline.
How a raise is counted
- Only recurring quarterly cash dividends enter the comparison (
distribution_type = 'recurring',frequency = 4). Specials and one-off distributions stay out. - Duplicate vendor rows for the same ticker and ex-dividend date collapse to one, taking the maximum cash amount.
- A raise requires the new amount to exceed the prior one by more than half a percent, with the two ex-dividend dates 45 to 200 days apart. That drops rounding noise and stops a gap in the record from reading as a jump.
- The repeat-rate panel adds a requirement that the prior raise fall 250 to 480 days earlier, which restricts it to companies on an annual cycle and keeps twice-yearly raisers out of the count.
- Every window runs from July 2015 through July 2026.
FAQ
When do most companies announce dividend increases?
Jan carries the most declarations of any calendar month, at 8287 raises from 1872 companies since mid-2015, with Dec and Feb next. Every month carries some. An individual company's month is set by its own board calendar rather than by the market's.
Can you predict when a company will raise its dividend?
No. You can measure a base rate. Among companies raising on an annual cadence, 74.5% declared in the same calendar month as their previous raise in 2026, and 82.8% landed within a month of it. A high repeat rate describes past board decisions and nothing else.
How long after a dividend increase is announced does the payment arrive?
The declaration comes first, the ex-dividend date follows, and the cash lands after that. In 2026 the median gap from declaration to ex-dividend date ran 29 days across recurring dividends on file.
What does it mean when a company misses its usual raise month?
It means the annual review has not produced a higher rate yet. A hold can precede a later raise in a different month, a flat year, or a reduction. The increases and cuts page tracks which of those outcomes showed up across the market.
Do dividend growers always raise once a year?
Most do. A few raise twice within a year or change cadence after a spin-off or a merger, and the repeat-rate panel above excludes those cases by requiring 250 to 480 days between consecutive raises.
Every figure here comes from a stored query over filed dividend declarations. Open any panel's SQL, swap in your own ticker list, and run the calendar yourself on the Strasmore terminal.