Khi nào công ty công bố tăng cổ tức?
Tăng cổ tức thường tập trung vào cùng một tháng tài chính mỗi năm. Xem từng doanh nghiệp thường công bố vào tháng nào, mức độ ổn định và lý do quy luật thay đổi.
Các công ty thường công bố tăng cổ tức theo chu kỳ hằng năm, và phần lớn công ty công bố vào cùng một tháng mỗi năm. Hội đồng quản trị phê duyệt mức cổ tức mới tại một cuộc họp đã được lên lịch. Sau đó, công ty phát hành thông báo công bố cổ tức. Khoản chi trả cao hơn sẽ xuất hiện vào ngày giao dịch không hưởng quyền (ex-dividend date) tiếp theo. Câu trả lời đáng tin cậy cho câu hỏi về lần tăng cổ tức tiếp theo là một mức cơ sở được xây dựng từ lịch sử công bố. Trang này xây dựng mức cơ sở đó: lịch tăng cổ tức của thị trường, tháng mà mỗi doanh nghiệp tăng trưởng cổ tức thường sử dụng, mức độ ổn định của tháng này và những yếu tố có thể phá vỡ quy luật đó.
Mỗi bảng bên dưới đều đọc hồ sơ cổ tức đã nộp trong global_markets.stocks_dividends và sử dụng declaration_date làm mốc. Đây là ngày quyết định của hội đồng quản trị được công bố ra công chúng, thay vì ngày giao dịch không hưởng quyền hoặc ngày thanh toán. Một lần tăng được ghi nhận khi khoản cổ tức tiền mặt định kỳ hằng quý của công ty cao hơn khoản của quý trước, với khoảng cách đúng một quý.
Khi nào các công ty công bố tăng cổ tức?
Hãy bắt đầu với toàn thị trường. Dưới đây là mọi công ty trả cổ tức hằng quý định kỳ có dữ liệu kể từ giữa năm 2015, được phân loại theo tháng công bố:
Câu lệnh SQL chính xác đằng sau mỗi con số
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 DESCTháng có nhiều thông báo nhất là Jan, với 8287 lần tăng từ 1872 công ty. Tiếp theo là Dec và Feb. Tháng ít sôi động nhất là Aug, nhưng vẫn có 1428 lần tăng. Cả 12 tháng đều có dữ liệu, cho thấy hoạt động phân bổ không tập trung vào một khoảng thời gian duy nhất mà phân bổ không đồng đều trong năm.
Vì sao cùng một tháng lại lặp lại mỗi năm
Mức cổ tức do hội đồng quản trị quyết định, và hội đồng họp theo lịch đã công bố. Hầu hết doanh nghiệp Mỹ xem xét mức chi trả mỗi năm một lần, tại cuộc họp diễn ra sau khi kết thúc năm tài chính hoặc gần kỳ họp cổ đông thường niên. Nếu lịch này được duy trì, lần xem xét đó sẽ tiếp tục diễn ra vào cùng thời điểm mỗi năm.
Hai cơ chế khác cũng củng cố xu hướng này. Doanh nghiệp đang duy trì chuỗi năm tăng cổ tức liên tiếp có động lực giữ nguyên mốc kỷ niệm. Chu kỳ chi trả cũng cố định: doanh nghiệp trả cổ tức theo quý có bốn kỳ mỗi năm, nhưng thông thường chỉ một kỳ trong số đó áp dụng mức cổ tức mới. Lịch năm tài chính là nguyên nhân khiến nhiều doanh nghiệp có thời điểm tăng cổ tức lệch với số đông. Doanh nghiệp kết thúc năm tài chính vào tháng Sáu sẽ thiết lập mức cổ tức trong một quý khác với doanh nghiệp kết thúc năm tài chính vào tháng Mười hai. Vì vậy, tháng tăng cổ tức của doanh nghiệp đó có thể lệch một hoặc hai quý so với phần lớn doanh nghiệp.
Mỗi doanh nghiệp tăng cổ tức vào tháng nào?
Mười hai doanh nghiệp quen thuộc có lịch sử chi trả lâu năm, được xếp hạng theo mức độ các lần tăng cổ tức tập trung vào một tháng duy nhất:
Câu lệnh SQL chính xác đằng sau mỗi con số
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 đứng đầu bảng: 11 trong số 11 lần tăng cổ tức kể từ năm 2016 được công bố vào Feb, tương đương tỷ lệ 100%. Ở cuối bảng, XOM công bố trong tháng quen thuộc là Oct 44% số lần. Hãy xem tháng thường gặp là xác suất cơ sở của một doanh nghiệp, không phải lịch cố định. Chỉ số này tóm tắt kết quả từ các cuộc họp của hội đồng quản trị trong một thập kỷ. Nó không cho biết gì về một quyết định chưa được đưa ra.
Sự phân tách này cho thấy cách các nội dung trong nhóm này bổ trợ cho nhau. Các doanh nghiệp dẫn đầu về tăng trưởng cổ tức cho biết doanh nghiệp nào duy trì chuỗi tăng cổ tức dài nhất, các lần tăng và cắt giảm cổ tức ghi nhận những gì đã xảy ra với các khoản chi trả, còn trang này trả lời thời điểm các thông báo được công bố.
Tháng đó có được duy trì nhất quán không?
Xét mọi lần tăng cổ tức trên thị trường diễn ra sau một lần tăng khác từ 250 đến 480 ngày trước đó, tương ứng với chu kỳ hằng năm, rồi xem tháng dương lịch có trùng khớp hay không:
Câu lệnh SQL chính xác đằng sau mỗi con số
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 yearTrong 10 năm được biểu thị trên biểu đồ, tỷ lệ các lần tăng diễn ra cùng tháng là 68.6% trong 2017 và 74.5% trong 2026, với nhóm sau gồm 1154 công ty. Nếu cho phép lệch một tháng, tỷ lệ 2026 tăng lên 82.8%. Hàng cuối chỉ tính các thông báo được công bố đến tháng 7/2026, là mốc dừng được sử dụng trong mọi biểu đồ tại đây. Tần suất lặp lại trong khoảng đó là một cơ sở tham chiếu đáng kể. Tuy nhiên, đây vẫn chỉ là một cơ sở tham chiếu.
Lịch sử tăng cổ tức của một công ty, qua từng năm
Johnson & Johnson đã tăng mức cổ tức hằng quý trong mọi năm của giai đoạn này. Mỗi dòng dưới đây là một lần tăng: ngày công bố, mức cổ tức trước đó và mức sau khi tăng.
Câu lệnh SQL chính xác đằng sau mỗi con số
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 yearLần tăng đầu tiên trong biểu đồ được công bố vào Apr 28 năm 2016, đưa mức cổ tức hằng quý từ $0.75 lên $0.8, tức tăng 6.7%. Lần gần nhất được công bố vào Apr 14 năm 2026, đưa mức cổ tức lên $1.34, tức tăng 3.1%. Hai đầu của chuỗi tăng 11 lần đều nằm ở mức một chữ số trung bình, phù hợp với mô hình lịch tăng cổ tức thường thấy ở một doanh nghiệp tăng trưởng đã trưởng thành. Trang cổ tức JNJ có đầy đủ lịch sử chi trả, còn lịch sử tăng cổ tức của Verizon cho thấy cùng nhịp tăng hằng năm nhưng với tốc độ thấp hơn.
Những yếu tố phá vỡ quy luật
Bốn yếu tố có thể khiến một đợt tăng cổ tức diễn ra ngoài tháng thường lệ hoặc không xuất hiện trong cả năm.
- Khoản chi trả chịu áp lực. Khi cổ tức chiếm phần lớn lợi nhuận, đợt đánh giá hằng năm có thể kết thúc bằng việc giữ nguyên thay vì tăng. Trang tỷ lệ chi trả cổ tức giải thích cách đo lường phần dư địa này.
- Một thương vụ sáp nhập hoặc spin-off đang chờ hoàn tất. Các hoạt động doanh nghiệp làm thay đổi cả lịch họp của hội đồng quản trị và số lượng cổ phiếu. Mức cổ tức có thể bị giữ nguyên trong một chu kỳ khi thương vụ vẫn đang được triển khai.
- Hồ sơ đã ghi nhận một năm không tăng. Công ty giữ nguyên cổ tức trong năm trước sẽ làm đứt chu kỳ kỷ niệm. Đợt tăng tiếp theo sẽ khởi động lại quy luật thay vì tiếp nối quy luật cũ.
- Cắt giảm cổ tức. Cắt giảm cổ tức cũng xuất phát từ cùng đợt đánh giá hằng năm và xảy ra trong những tháng giống các đợt tăng.
Danh sách này đặc biệt quan trọng với những ai đọc lịch cổ tức như một dự báo. Tỷ lệ cơ sở cho biết hội đồng quản trị thường ra quyết định vào tháng nào. Tỷ lệ này không cho biết hội đồng quản trị sẽ làm gì tiếp theo. Một đợt tăng chỉ tồn tại sau khi công ty chính thức công bố.
Ngày công bố, ngày giao dịch không hưởng quyền và ngày thanh toán
Ngày công bố là thời điểm thông báo được đưa ra. Ngày giao dịch không hưởng quyền là mốc chốt quyền sở hữu để nhận khoản chi trả đó và diễn ra sau ngày công bố. Dữ liệu lưu trữ cho thấy khoảng thời gian giữa hai mốc này thường là bao lâu.
Câu lệnh SQL chính xác đằng sau mỗi con số
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 yearTrong năm 2026 tính đến hết tháng Bảy, hồ sơ ghi nhận 29319 lần công bố định kỳ từ 10493 công ty, với khoảng cách trung vị 29 ngày giữa ngày công bố và ngày giao dịch không hưởng quyền. 100% hồ sơ trong số đó có ngày công bố trùng hoặc trước ngày giao dịch không hưởng quyền. Khoảng cách này là giai đoạn khoản tăng đã được công bố nhưng chưa đến hạn thanh toán. Lịch ngày giao dịch không hưởng quyền sắp tới liệt kê các mốc chốt quyền trong hai tuần tiếp theo, còn hướng dẫn về ngày giao dịch không hưởng quyền trình bày toàn bộ tiến trình.
Cách xác định một lần tăng cổ tức
- Chỉ cổ tức tiền mặt định kỳ theo quý được đưa vào so sánh (
distribution_type = 'recurring',frequency = 4). Các khoản đặc biệt và khoản phân phối một lần không được tính. - Các dòng dữ liệu trùng lặp từ nhà cung cấp cho cùng ticker và ngày giao dịch không hưởng quyền được gộp thành một dòng, sử dụng mức tiền mặt cao nhất.
- Một lần tăng chỉ được ghi nhận khi mức mới cao hơn mức trước đó trên nửa phần trăm, đồng thời hai ngày giao dịch không hưởng quyền cách nhau từ 45 đến 200 ngày. Điều này loại bỏ sai số do làm tròn và ngăn khoảng trống trong dữ liệu bị hiểu là một lần tăng.
- Bảng tỷ lệ lặp lại yêu cầu thêm điều kiện lần tăng trước đó phải diễn ra từ 250 đến 480 ngày trước. Điều kiện này giới hạn mẫu ở các công ty theo chu kỳ hằng năm và loại các công ty tăng cổ tức hai lần mỗi năm khỏi thống kê.
- Mọi khoảng thời gian đều được tính từ tháng Bảy năm 2015 đến tháng Bảy năm 2026.
Câu hỏi thường gặp
Phần lớn công ty công bố tăng cổ tức khi nào?
Jan có nhiều lần công bố nhất trong mọi tháng dương lịch, với 8287 lần tăng từ 1872 công ty kể từ giữa năm 2015; tiếp theo là Dec và Feb. Tháng nào cũng có một số lần công bố. Tháng công bố của từng công ty do lịch họp của hội đồng quản trị công ty đó quyết định, không phải do thị trường.
Có thể dự đoán khi nào một công ty sẽ tăng cổ tức không?
Không. Bạn có thể đo lường xác suất cơ sở. Trong số các công ty tăng cổ tức theo chu kỳ hằng năm, 74.5% công ty công bố tăng trong cùng tháng dương lịch với lần tăng trước đó trong 2026 trường hợp, và 82.8% lần tăng diễn ra trong khoảng một tháng so với lần trước. Tỷ lệ lặp lại cao chỉ phản ánh các quyết định trước đây của hội đồng quản trị, không nói lên điều gì khác.
Sau khi công bố tăng cổ tức bao lâu thì khoản chi trả được thực hiện?
Ngày công bố đến trước, tiếp theo là ngày giao dịch không hưởng quyền, rồi tiền mới được ghi có. Trong 2026, khoảng cách trung vị từ ngày công bố đến ngày giao dịch không hưởng quyền là 29 ngày đối với các khoản cổ tức định kỳ có trong dữ liệu.
Công ty không tăng cổ tức trong tháng thường lệ có ý nghĩa gì?
Điều đó có nghĩa là đợt đánh giá hằng năm chưa dẫn đến mức cổ tức cao hơn. Việc giữ nguyên mức cổ tức có thể được tiếp nối bằng một lần tăng vào tháng khác, một năm không thay đổi hoặc một lần cắt giảm. Trang về các lần tăng và cắt giảm theo dõi kết quả nào trong số này đã xuất hiện trên toàn thị trường.
Các công ty thường xuyên tăng cổ tức có luôn tăng mỗi năm một lần không?
Phần lớn là có. Một số công ty tăng hai lần trong một năm hoặc thay đổi chu kỳ sau một thương vụ spin-off hoặc sáp nhập. Bảng tỷ lệ lặp lại ở trên loại các trường hợp này bằng cách yêu cầu khoảng cách giữa hai lần tăng liên tiếp là từ 250 đến 480 ngày.
Mọi số liệu ở đây đều đến từ một stored query dựa trên các lần công bố cổ tức đã được nộp. Bạn có thể mở SQL của bất kỳ bảng nào, thay bằng danh sách ticker của mình và tự chạy lịch trên terminal Strasmore.