Trailing và forward dividend yield là gì?
Trailing dividend yield cộng cổ tức đã trả trong mười hai tháng qua; forward yield quy đổi khoản cổ tức mới nhất thành cả năm. Vì vậy, hai screener có thể lệch nhau.
Lợi suất cổ tức quá khứ và lợi suất cổ tức dự phóng là hai cách trả lời cho cùng một câu hỏi. Toàn bộ khác biệt nằm ở tử số. Lợi suất quá khứ, thường được viết là TTM (trailing twelve months), cộng tổng cổ tức mà công ty thực tế đã chi trả trong năm qua. Lợi suất dự phóng lấy khoản cổ tức được công bố gần đây nhất và nhân với số lần chi trả trong một năm. Cả hai đều chia cho cùng một mức giá cổ phiếu. Khi mức chi trả thay đổi trong mười hai tháng qua, hai quy ước này sẽ cho ra các con số khác nhau cho cùng một ticker tại cùng một thời điểm.
Phép tính của tỷ lệ này thuộc về cách tính lợi suất cổ tức. Trang này tập trung vào lựa chọn ở phía trên đường phân cách: nguồn dữ liệu đưa con số cổ tức nào vào tử số, và vì sao hai screener lại báo các mức lợi suất khác nhau cho cùng một ticker trong cùng một buổi chiều.
Lợi suất cổ tức trailing twelve month là gì?
Lợi suất trailing cộng toàn bộ cổ tức tiền mặt có ngày giao dịch không hưởng quyền trong 365 ngày gần nhất, sau đó chia tổng này cho giá hiện tại. Ngày giao dịch không hưởng quyền là ngày cổ phiếu bắt đầu giao dịch mà không còn kèm khoản thanh toán cổ tức sắp tới. Đây cũng là ngày mà phần lớn nhà cung cấp dữ liệu dùng để xác định thời điểm ghi nhận cổ tức.
Không có yếu tố ước tính nào trong một chỉ số trailing. Đây là số tiền mặt đã thực sự được thanh toán và là thước đo phù hợp cho khoản mà cổ đông đã nhận. Điểm yếu chính là mặt trái của ưu điểm này: lợi suất trailing mô tả một mức chi trả có thể không còn tồn tại. Một công ty vừa điều chỉnh cổ tức hàng quý vào tháng trước vẫn có ba lần chi trả theo mức cũ trong khoảng thời gian trailing. Các khoản này sẽ vẫn được tính trong chín tháng nữa.
Lợi suất cổ tức kỳ hạn là gì?
Lợi suất kỳ hạn quy đổi khoản cổ tức mới nhất đã công bố thành mức theo năm: lấy khoản chi trả gần nhất nhân với tần suất chi trả, rồi chia cho cùng một mức giá. Một doanh nghiệp trả cổ tức hàng quý, với khoản công bố gần nhất là $0.50 mỗi cổ phiếu, có mức cổ tức kỳ hạn là $2.00. Doanh nghiệp trả hàng tháng ở mức $0.25 có mức $3.00.
Đây là một dự phóng dựa trên một quan sát duy nhất và giả định các khoản chi trả tiếp theo sẽ giống khoản gần nhất. Điểm hữu ích của chỉ số này là tính cập nhật. Khi doanh nghiệp tăng cổ tức, mức mới được phản ánh vào lợi suất kỳ hạn ngay từ lần chi trả lớn hơn đầu tiên, trong khi lợi suất cổ tức trailing cần đủ bốn quý để phản ánh đầy đủ thay đổi đó.
Lợi suất cổ tức quá khứ và lợi suất cổ tức kỳ vọng của tám doanh nghiệp trả cổ tức quen thuộc
Bảng dưới đây thực hiện cả hai phép tính cho tám doanh nghiệp trả cổ tức lớn, dựa trên cùng một mức giá trong phiên gần nhất. Cột quá khứ cộng các khoản cổ tức tiền mặt định kỳ trong mười hai tháng gần nhất. Cột kỳ vọng quy đổi khoản cổ tức gần nhất thành mức theo năm, sử dụng tần suất chi trả được công bố kèm theo khoản đó.
Câu lệnh SQL chính xác đằng sau mỗi con số
WITH last_px AS (
SELECT ticker,
argMax(close, window_start) AS close_price
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('ABBV', 'CVX', 'JNJ', 'KO', 'MCD', 'MSFT', 'PEP', 'PG')
AND window_start >= now() - INTERVAL 10 DAY
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY ticker
),
paid AS (
SELECT ticker,
sum(cash_amount) AS ttm_cash,
count() AS checks_in_window,
argMax(cash_amount, ex_dividend_date) AS latest_cash,
argMax(frequency, ex_dividend_date) AS pay_frequency
FROM global_markets.stocks_dividends
WHERE ticker IN ('ABBV', 'CVX', 'JNJ', 'KO', 'MCD', 'MSFT', 'PEP', 'PG')
AND distribution_type = 'recurring'
AND cash_amount > 0
AND ex_dividend_date > today() - INTERVAL 1 YEAR
AND ex_dividend_date <= today()
GROUP BY ticker
)
SELECT p.ticker AS ticker,
round(toFloat64(d.ttm_cash) / toFloat64(p.close_price) * 100, 2) AS trailing_yield_pct,
round(toFloat64(d.latest_cash) * d.pay_frequency / toFloat64(p.close_price) * 100, 2) AS forward_yield_pct,
round((toFloat64(d.latest_cash) * d.pay_frequency - toFloat64(d.ttm_cash))
/ toFloat64(p.close_price) * 100, 2) AS forward_minus_trailing_pp,
d.checks_in_window AS checks_in_window,
round(toFloat64(p.close_price), 2) AS share_price
FROM last_px AS p
INNER JOIN paid AS d ON p.ticker = d.ticker
ORDER BY forward_minus_trailing_pp DESCCác dòng được sắp xếp theo mức chênh lệch giữa hai cách tính. Ở đầu bảng, PEP cho thấy lợi suất kỳ vọng là 4.24%, so với lợi suất quá khứ 4.12%. Ở cuối bảng, MSFT cho thấy lợi suất kỳ vọng 0.78%, so với lợi suất quá khứ 0.77%. Cùng doanh nghiệp, cùng mức giá, nhưng có hai phương pháp hợp lệ.
Cột số lần chi trả là nguồn chênh lệch ít rõ ràng hơn. Một khoảng thời gian luân phiên 365 ngày không giống với bốn quý. Ngày giao dịch không hưởng quyền có thể lệch vài ngày mỗi năm. Một khoảng thời gian bao gồm khoản chi trả thứ năm sẽ làm tăng lợi suất quá khứ, dù mức cổ tức đã công bố hoàn toàn không thay đổi.
Việc điều chỉnh cổ tức làm thay đổi hai cách tính như thế nào
3M đã điều chỉnh cổ tức hàng quý vào năm 2024, cùng thời điểm tách mảng kinh doanh chăm sóc sức khỏe. Các mốc cuối tháng trong 26 kể từ thời điểm đó theo dõi cả hai quy ước, kèm theo khoản thanh toán hàng quý đã công bố.
Câu lệnh SQL chính xác đằng sau mỗi con số
WITH px AS (
SELECT toStartOfMonth(toDate(toTimeZone(window_start, 'America/New_York'))) AS month_start,
max(toDate(toTimeZone(window_start, 'America/New_York'))) AS last_day,
argMax(close, window_start) AS close_price
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'MMM'
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2024-06-01')
AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-07-31')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY month_start
),
dv AS (
SELECT ex_dividend_date, cash_amount
FROM global_markets.stocks_dividends
WHERE ticker = 'MMM'
AND distribution_type = 'recurring'
AND frequency = 4
AND cash_amount > 0
AND ex_dividend_date >= toDate('2023-05-01')
)
SELECT formatDateTime(px.month_start, '%Y-%m') AS month,
formatDateTimeInJodaSyntax(px.month_start, 'MMM yyyy') AS month_label,
round(toFloat64(argMax(dv.cash_amount, dv.ex_dividend_date)), 2) AS declared_quarterly_usd,
round(sumIf(toFloat64(dv.cash_amount), dv.ex_dividend_date > px.last_day - INTERVAL 1 YEAR)
/ toFloat64(any(px.close_price)) * 100, 2) AS trailing_yield_pct,
round(toFloat64(argMax(dv.cash_amount, dv.ex_dividend_date)) * 4
/ toFloat64(any(px.close_price)) * 100, 2) AS forward_yield_pct,
round(abs(toFloat64(argMax(dv.cash_amount, dv.ex_dividend_date)) * 4
- sumIf(toFloat64(dv.cash_amount), dv.ex_dividend_date > px.last_day - INTERVAL 1 YEAR))
/ toFloat64(any(px.close_price)) * 100, 2) AS gap_abs_pp
FROM px, dv
WHERE dv.ex_dividend_date <= px.last_day
GROUP BY px.month_start, px.last_day
ORDER BY px.month_startTrong Jun 2024, khoản thanh toán đã công bố là $0.7, trong khi ba khoản thanh toán theo mức cũ vẫn nằm trong khoảng thời gian truy vấn lũy kế. Lợi suất lũy kế là 5.1%. Lợi suất kỳ hạn là 2.74%. Hai quy ước chênh nhau 2.36 điểm phần trăm đối với cùng một cổ phiếu, trong cùng một ngày, với mức giá giống hệt nhau ở cả hai mẫu số. Một màn hình lọc theo lợi suất lũy kế trong tháng đó đã xếp hạng 3M dựa trên khoản tiền mặt mà công ty đã ngừng trả ở mức đó. Không con số nào sai; chúng trả lời những câu hỏi khác nhau.
Cột chênh lệch sau đó thu hẹp trong bốn quý khi các khoản thanh toán cũ lần lượt ra khỏi khoảng thời gian truy vấn. Đến Jul 2026, các mức tương ứng là 1.71% theo lũy kế và 1.77% theo kỳ hạn, chênh nhau 0.06 điểm phần trăm. Trạng thái hội tụ là trạng thái ổn định. Chênh lệch chỉ mở rộng khi mức chi trả thay đổi, như các đợt tăng và giảm cổ tức trên toàn thị trường, còn lịch sử cổ tức của 3M theo dõi từng khoản thanh toán.
Các mã trả cổ tức hằng tháng, mười hai lần chi trả và đôi khi là mười ba
Realty Income tăng khoản chi trả hằng tháng theo các bước nhỏ vài lần mỗi năm. Điều này giúp tỷ suất kỳ hạn nhỉnh hơn một chút so với năm trước. Cột số lần chi trả cho biết cửa sổ trượt thực tế bao gồm bao nhiêu khoản tại mỗi lần ghi nhận.
Câu lệnh SQL chính xác đằng sau mỗi con số
WITH px AS (
SELECT toStartOfMonth(toDate(toTimeZone(window_start, 'America/New_York'))) AS month_start,
max(toDate(toTimeZone(window_start, 'America/New_York'))) AS last_day,
argMax(close, window_start) AS close_price
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'O'
AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2024-08-01')
AND toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-07-31')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY month_start
),
dv AS (
SELECT ex_dividend_date, cash_amount
FROM global_markets.stocks_dividends
WHERE ticker = 'O'
AND distribution_type = 'recurring'
AND frequency = 12
AND cash_amount > 0
AND ex_dividend_date >= toDate('2023-07-01')
)
SELECT formatDateTime(px.month_start, '%Y-%m') AS month,
formatDateTimeInJodaSyntax(px.month_start, 'MMM yyyy') AS month_label,
round(toFloat64(argMax(dv.cash_amount, dv.ex_dividend_date)), 4) AS declared_monthly_usd,
countIf(dv.ex_dividend_date > px.last_day - INTERVAL 1 YEAR) AS checks_in_window,
round(sumIf(toFloat64(dv.cash_amount), dv.ex_dividend_date > px.last_day - INTERVAL 1 YEAR)
/ toFloat64(any(px.close_price)) * 100, 2) AS trailing_yield_pct,
round(toFloat64(argMax(dv.cash_amount, dv.ex_dividend_date)) * 12
/ toFloat64(any(px.close_price)) * 100, 2) AS forward_yield_pct,
round(abs(toFloat64(argMax(dv.cash_amount, dv.ex_dividend_date)) * 12
- sumIf(toFloat64(dv.cash_amount), dv.ex_dividend_date > px.last_day - INTERVAL 1 YEAR))
/ toFloat64(any(px.close_price)) * 100, 2) AS gap_abs_pp
FROM px, dv
WHERE dv.ex_dividend_date <= px.last_day
GROUP BY px.month_start, px.last_day
ORDER BY px.month_startTrong Aug 2024, cửa sổ này bao gồm 11 khoản chi trả, với mức trailing là 4.57% so với mức forward 5.08%. Trong Jul 2026, cửa sổ bao gồm 13 khoản chi trả theo mức cổ tức hằng tháng đã công bố là $0.271. Mức trailing là 5.49% so với mức forward 5.09%, chênh lệch 0.4 điểm phần trăm. Một năm trượt có thêm khoản chi trả thứ mười ba sẽ làm tăng con số trailing khoảng một phần mười hai, dù cổ tức không thay đổi. Cổ phiếu trả cổ tức hằng tháng trình bày lịch chi trả, còn Lịch sử chi trả của Realty Income liệt kê từng khoản.
Các quy ước trên thị trường chênh lệch nhau đến mức nào?
Một cổ phiếu chỉ là một trường hợp riêng lẻ. Khối dưới đây thực hiện cả hai phép tính cho mọi doanh nghiệp trả cổ tức niêm yết tại Mỹ có vốn hóa thị trường trên một tỷ USD, được phân nhóm theo tần suất chi trả.
Câu lệnh SQL chính xác đằng sau mỗi con số
WITH universe AS (
SELECT ticker,
argMax(price, date) AS last_price
FROM global_markets.stocks_ratios
WHERE date = (SELECT max(date) FROM global_markets.stocks_ratios)
AND price >= 5
AND market_cap >= 1000000000
GROUP BY ticker
),
paid AS (
SELECT ticker,
sum(cash_amount) AS ttm_cash,
argMax(cash_amount, ex_dividend_date) AS latest_cash,
argMax(frequency, ex_dividend_date) AS pay_frequency
FROM global_markets.stocks_dividends
WHERE distribution_type = 'recurring'
AND cash_amount > 0
AND frequency IN (1, 2, 4, 12)
AND ex_dividend_date > today() - INTERVAL 1 YEAR
AND ex_dividend_date <= today()
GROUP BY ticker
)
SELECT multiIf(d.pay_frequency = 12, 'monthly',
d.pay_frequency = 4, 'quarterly',
d.pay_frequency = 2, 'semi-annual',
'annual') AS schedule,
count() AS payers,
round(quantileDeterministic(0.5)(toFloat64(d.ttm_cash) / toFloat64(u.last_price) * 100,
cityHash64(u.ticker)), 2) AS median_trailing_pct,
round(quantileDeterministic(0.5)(toFloat64(d.latest_cash) * d.pay_frequency / toFloat64(u.last_price) * 100,
cityHash64(u.ticker)), 2) AS median_forward_pct,
round(quantileDeterministic(0.5)(abs(toFloat64(d.latest_cash) * d.pay_frequency - toFloat64(d.ttm_cash))
/ toFloat64(u.last_price) * 100,
cityHash64(u.ticker)), 3) AS median_gap_pp,
round(quantileDeterministic(0.9)(abs(toFloat64(d.latest_cash) * d.pay_frequency - toFloat64(d.ttm_cash))
/ toFloat64(u.last_price) * 100,
cityHash64(u.ticker)), 3) AS p90_gap_pp,
round(100 * countIf(abs(toFloat64(d.latest_cash) * d.pay_frequency - toFloat64(d.ttm_cash))
/ toFloat64(u.last_price) * 100 >= 0.5) / count(), 1) AS pct_gap_over_half_point
FROM universe AS u
INNER JOIN paid AS d ON u.ticker = d.ticker
GROUP BY schedule
ORDER BY payers DESCNhóm lớn nhất là các doanh nghiệp trả cổ tức quarterly, gồm 1128 mã, với lợi suất cổ tức quá khứ trung vị là 1.93%, so với lợi suất kỳ vọng trung vị 2.03%. Ở mức trung vị, hai quy ước này chênh nhau 0.03 điểm phần trăm. Phân bổ có phần đuôi: 8.7% trong nhóm này có mức chênh ít nhất nửa điểm phần trăm, còn chênh lệch tại bách phân vị thứ chín mươi là 0.357 điểm. Chênh nửa điểm trên mức lợi suất 3% tương đương một phần sáu con số đó. Đây là khác biệt có thể quyết định một mã xuất hiện trên màn hình lọc hay bị bỏ qua. Nhóm monthly, gồm 21 mã, có mức chênh trung vị là 0.484 điểm.
Nếu quan tâm đến mặt bằng thay vì phương pháp, mức lợi suất cổ tức nào được xem là tốt tập hợp phân bổ của thị trường tại một nơi, còn lợi suất cổ tức là gì bắt đầu từ chính tỷ lệ này.
Vì sao hai công cụ sàng lọc lại hiển thị tỷ suất cổ tức khác nhau?
- Quy ước tính. Một nhà cung cấp quy đổi lần công bố gần nhất thành tỷ lệ cả năm, trong khi nhà cung cấp khác cộng các khoản cổ tức trong 12 tháng gần nhất. Đây là điểm bất đồng mà phần còn lại của trang này đề cập.
- Khoảng thời gian được chọn. Khoảng 365 ngày luân phiên có thể bao gồm bốn hoặc năm lần chi trả đối với doanh nghiệp trả cổ tức theo quý, và 12 hoặc 13 lần đối với doanh nghiệp trả cổ tức hằng tháng.
- Cổ tức đặc biệt. Một khoản chi trả một lần vẫn nằm trong khoảng thời gian gần nhất trong một năm. Một số nhà cung cấp giữ khoản này trong tử số, số khác loại bỏ, và một khoản cổ tức đặc biệt lớn có thể khiến tỷ suất trailing thay đổi đáng kể.
- Giá được sử dụng. Tỷ suất tính trên giá đóng cửa tối qua sẽ khác với tỷ suất tính trên giá lúc 2 giờ chiều.
- Trang web của công ty. Các trang quan hệ nhà đầu tư hầu như luôn công bố tỷ lệ cổ tức hằng năm đã tuyên bố. Đây là tử số forward, thường được đối chiếu với một mức giá không cập nhật theo thời gian thực. Bảng thông tin quỹ thường đưa ra SEC yield 30 ngày hoặc distribution yield. Đây lại là hai quy ước khác.
Cách xây dựng các con số này
Tỷ suất trailing ở đây cộng các khoản cổ tức tiền mặt định kỳ có ngày giao dịch không hưởng quyền trong 365 ngày kết thúc tại mỗi thời điểm ghi nhận, rồi chia cho giá đóng cửa của phiên đó. Tỷ suất forward lấy khoản chi trả định kỳ gần nhất nhân với tần suất chi trả được công bố cùng khoản đó, rồi chia cho cùng mức giá. Các khoản phân phối không định kỳ được loại khỏi cả hai cách tính. Giá được lấy từ các thanh giá theo phút của phiên giao dịch thông thường, quy đổi theo giờ New York. Các nhà cung cấp đưa cổ tức đặc biệt vào tính toán, hoặc quy đổi một số lần chi trả khác thành tỷ lệ cả năm, sẽ cho ra các con số khác nhau từ cùng một bộ dữ liệu gốc.
Câu hỏi thường gặp về dividend yield trailing và forward
TTM dividend yield là gì?
TTM là viết tắt của trailing twelve months, tức mười hai tháng gần nhất. TTM dividend yield cộng toàn bộ cổ tức đã chi trả trong năm qua rồi chia cho giá cổ phiếu hiện tại. Chỉ số này đo lượng tiền đã được chi trả, không phải một tỷ suất được kỳ vọng.
Trailing hay forward dividend yield tốt hơn?
Không có chỉ số nào đúng hơn trong mọi trường hợp. Trailing đo khoản tiền cổ đông đã nhận trong năm qua. Forward thể hiện mức cổ tức hiện được công bố sau khi quy đổi theo năm. Nếu so sánh khoản thu nhập đã nhận, bạn nên dùng trailing dividend yield. Nếu định giá mức cổ tức công ty đang chi trả hiện nay, bạn nên dùng forward dividend yield.
Vì sao broker của tôi hiển thị dividend yield khác với trang nhà đầu tư của công ty?
Các trang quan hệ nhà đầu tư thường công bố mức cổ tức theo năm đã tuyên bố. Đây là tử số forward, thường được đối chiếu với một mức giá không cập nhật theo thời gian thực. Broker hoặc screener có thể cộng cổ tức của mười hai tháng gần nhất. Cả hai con số đều có thể đúng về mặt số học tại cùng một thời điểm.
Việc cắt giảm cổ tức có hiển thị ngay trong trailing yield không?
Không. Mức điều chỉnh giảm được phản ánh trong forward yield ngay khi khoản chi trả đầu tiên ở mức thấp hơn được thực hiện. Trong trailing yield, thay đổi này được phản ánh từng lần chi trả trong năm tiếp theo. Trong khung 3M ở trên, hai quy ước cách nhau 2.36 điểm phần trăm tại Jun 2024 và cách nhau 0.06 điểm phần trăm vào Jul 2026.
Mọi con số ở trên đều được lấy từ một truy vấn đã lưu, sử dụng hồ sơ cổ tức đã công bố và giá thực tế trong phiên. Mở bất kỳ bảng nào để xem SQL, hoặc chạy cùng hai phép tính trên ticker bạn theo dõi trên terminal Strasmore.