Cổ phiếu chi cổ tức hàng tháng: Danh sách đầy đủ
Cổ phiếu chi cổ tức hàng tháng được sàng lọc theo lịch sử chi trả thực tế. Bạn sẽ thấy mã niêm yết tại Mỹ nào thật sự trả mười hai lần mỗi năm, và lợi suất hiện tại của từng mã.
Cổ phiếu chi cổ tức hàng tháng trả tiền mặt mỗi tháng thay vì mỗi quý, và danh sách thực sự ngắn hơn nhiều so với những gì các bài liệt kê trên mạng gợi ý. Khi sàng lọc trực tiếp theo lịch sử chi trả thay vì nhãn do nhà cung cấp gắn, 1590 mã ticker niêm yết tại Mỹ đã thực hiện từ mười đến mười bốn lần chi trả tiền mặt định kỳ trong mười hai tháng gần nhất, và chỉ 35 trong số đó có hồ sơ dữ liệu cơ bản của doanh nghiệp. Mọi giá trị trên trang này đều được định giá theo giá đóng cửa của phiên Oct 16.
Danh sách cổ phiếu chi cổ tức hàng tháng
Mọi mã dưới đây là công ty niêm yết tại Mỹ, có nghĩa vụ nộp báo cáo, đã chi trả tiền mặt đều đặn từ mười đến mười bốn lần trong mười hai tháng qua. Mỗi mã có giá trị giao dịch ít nhất một triệu đô la mỗi ngày. Thứ tự xếp hạng theo giá trị giao dịch hằng ngày.
| ticker | Chi trả hàng tháng (USD) | Lợi suất năm (%) | Số năm trả hàng tháng | GD TB/ngày (mUSD) | Giá đến ngày |
|---|---|---|---|---|---|
| O | 0.2715 | 5.81 | 14.3 | 351.5 | Oct 16 |
| AGNC | 0.12 | 16.48 | 12 | 294.8 | Oct 16 |
| DOC | 0.1017 | 6.43 | 1.6 | 83.1 | Oct 16 |
| ADC | 0.267 | 4.77 | 5.8 | 75.1 | Oct 16 |
| DX | 0.17 | 18.63 | 7.7 | 73.7 | Oct 16 |
| ARR | 0.24 | 21.79 | 6.3 | 53.4 | Oct 16 |
| ORC | 0.1 | 24.07 | 13.5 | 32.1 | Oct 16 |
| EPR | 0.31 | 6.67 | 5.2 | 31.4 | Oct 16 |
| PECO | 0.115 | 3.61 | 5.2 | 30.5 | Oct 16 |
| APLE | 0.08 | 5.58 | 4.8 | 25.6 | Oct 16 |
| MAIN | 0.265 | 5.87 | 14.1 | 22.7 | Oct 16 |
| SMA | 0.1315 | 4.6 | 1.4 | 19.6 | Oct 16 |
| LTC | 0.19 | 5.18 | 14.3 | 18.9 | Oct 16 |
| IVR | 0.12 | 25.92 | 0.7 | 18.1 | Oct 16 |
| EFC | 0.13 | 13.32 | 7.4 | 16.8 | Oct 16 |
| TRIN | 0.17 | 12.6 | 0.8 | 13.9 | Oct 16 |
| PSEC | 0.035 | 26.35 | 14 | 11.4 | Oct 16 |
| CSWC | 0.1934 | 10.03 | 1.3 | 11.3 | Oct 16 |
| PFLT | 0.08 | 14.56 | 14.2 | 4.8 | Oct 16 |
| GOOD | 0.1 | 9.55 | 14.3 | 4.3 | Oct 16 |
Câu lệnh SQL chính xác đằng sau mỗi con số
SELECT m.ticker AS ticker,
round(m.latest_payment, 4) AS monthly_payment_usd,
round(100 * m.latest_payment * 12 / l.last_close, 2) AS annual_yield_pct,
round(dateDiff('day', s.streak_start, s.last_ex) / 365.25, 1) AS years_paying_monthly,
round(l.adv_usd / 1e6, 1) AS avg_daily_traded_musd,
formatDateTime(l.last_session, '%b %e') AS priced_through
FROM (
SELECT ticker, argMax(cash_amount, ex_dividend_date) AS latest_payment
FROM global_markets.stocks_dividends
WHERE ex_dividend_date > today() - 365
AND ex_dividend_date <= today()
AND cash_amount > 0
AND distribution_type = 'recurring'
AND ticker NOT IN ('SPCX')
AND ticker NOT IN ('KORU','SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT')
AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
WHERE execution_date BETWEEN today() - 400 AND today())
GROUP BY ticker
HAVING count() BETWEEN 10 AND 14
AND argMax(frequency, ex_dividend_date) = 12
) AS m
INNER JOIN (
SELECT ticker,
maxIf(ed, gap_days > 70) AS streak_start,
max(ed) AS last_ex
FROM (
SELECT ticker, ex_dividend_date AS ed,
dateDiff('day',
lagInFrame(ex_dividend_date) OVER (PARTITION BY ticker ORDER BY ex_dividend_date),
ex_dividend_date) AS gap_days
FROM (
SELECT ticker, ex_dividend_date
FROM global_markets.stocks_dividends
WHERE distribution_type = 'recurring' AND cash_amount > 0 AND ex_dividend_date <= today()
GROUP BY ticker, ex_dividend_date
)
)
GROUP BY ticker
) AS s ON s.ticker = m.ticker
INNER JOIN (
SELECT ticker,
avg(dollar_vol) AS adv_usd,
argMax(close_px, d) AS last_close,
max(d) AS last_session,
count() AS sessions
FROM (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
sum(toFloat64(close) * volume) AS dollar_vol,
argMax(toFloat64(close), window_start) AS close_px
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= toDateTime(today() - 32)
AND toDate(toTimeZone(window_start, 'America/New_York')) < today()
AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York')) < 960
GROUP BY ticker, d
)
GROUP BY ticker
HAVING sessions >= 15 AND adv_usd >= 1000000 AND last_close > 0
) AS l ON l.ticker = m.ticker
INNER JOIN (
SELECT ticker
FROM global_markets.stocks_ratios
GROUP BY ticker
HAVING argMax(market_cap, date) > 0
) AS f ON f.ticker = m.ticker
ORDER BY l.adv_usd DESC
LIMIT 60O là cổ phiếu chi trả hàng tháng có khối lượng giao dịch lớn nhất trong danh sách này. Khoản chi trả hàng tháng là $0.2715. Cổ phiếu đã chi trả liên tục, không gián đoạn, trong 14.3 năm theo hồ sơ ghi nhận. Lợi suất năm hóa là 5.81%, so với giá đóng cửa Oct 16. Giá trị giao dịch trung bình mỗi phiên là 351.5 triệu đô la. Bộ lọc trả về 31 mã.
Cột lợi suất tính năm hóa khoản chi trả gần nhất bằng cách nhân với mười hai lần mỗi năm, rồi chia cho giá đóng cửa đó. Vì vậy, lợi suất thay đổi mỗi khi giá thay đổi. Đây không phải là dự báo dòng tiền trong mười hai tháng tới.
Để nhận khoản chi trả tiếp theo, nhà đầu tư phải nắm giữ cổ phiếu trước ngày không hưởng quyền. Lịch các ngày không hưởng quyền sắp tới liệt kê các mã sẽ đến ngày không hưởng quyền tiếp theo. Còn giải thích về ngày không hưởng quyền trình bày mốc cắt quyền, yếu tố quyết định người mua có nhận được khoản chi trả hay không.
Cách xác định một ticker chi trả hàng tháng
Nguồn dữ liệu cổ tức có kèm nhãn tần suất, nhưng chỉ dựa vào nhãn này sẽ cho kết quả sai theo cả hai chiều. Phép kiểm tra ở đây đếm số lần chi trả mà ticker thực sự đã thực hiện, rồi giới hạn con số đó ở cả hai đầu.
| Nhóm | Mã | Gắn nhãn hàng tháng | Công bố thông tin |
|---|---|---|---|
| One a year | 3387 | 62 | 34 |
| Two a year | 2994 | 41 | 36 |
| Three to six a year | 4538 | 189 | 1483 |
| Seven to nine a year | 157 | 153 | 3 |
| Ten to fourteen a year | 1590 | 1581 | 35 |
| Fifteen to thirty-nine a year | 64 | 0 | 0 |
| Forty or more a year | 122 | 0 | 0 |
Câu lệnh SQL chính xác đằng sau mỗi con số
WITH payers AS (
SELECT ticker,
count() AS payments_12m,
argMax(frequency, ex_dividend_date) AS freq_flag
FROM global_markets.stocks_dividends
WHERE ex_dividend_date > today() - 365
AND ex_dividend_date <= today()
AND cash_amount > 0
AND distribution_type = 'recurring'
AND ticker NOT IN ('SPCX')
GROUP BY ticker
),
filers AS (
SELECT ticker
FROM global_markets.stocks_ratios
GROUP BY ticker
HAVING argMax(market_cap, date) > 0
)
SELECT multiIf(payments_12m = 1, 'One a year',
payments_12m = 2, 'Two a year',
payments_12m BETWEEN 3 AND 6, 'Three to six a year',
payments_12m BETWEEN 7 AND 9, 'Seven to nine a year',
payments_12m BETWEEN 10 AND 14, 'Ten to fourteen a year',
payments_12m BETWEEN 15 AND 39, 'Fifteen to thirty-nine a year',
'Forty or more a year') AS bucket,
count() AS tickers,
countIf(freq_flag = 12) AS labelled_monthly,
countIf(ticker IN (SELECT ticker FROM filers)) AS company_filings
FROM payers
GROUP BY bucket
ORDER BY min(payments_12m)122 ticker đã thực hiện từ bốn mươi khoản chi trả tiền mặt định kỳ trở lên trong một năm gần nhất, và 64 ticker khác thực hiện từ mười lăm đến ba mươi chín khoản. Đó là các quỹ chi trả hằng tuần và hằng ngày, một phân khúc đang tăng trưởng nhanh của thị trường quỹ. Bộ lọc chỉ yêu cầu "từ mười lần chi trả trở lên" sẽ đưa toàn bộ các ticker này vào danh sách hàng tháng. Giới hạn số lần ở mười bốn sẽ loại chúng ra.
Riêng nhãn cũng không đáng tin hơn. 62 ticker mang nhãn tần suất hàng tháng chỉ chi trả đúng một lần trong năm, và 189 trong số đó chi trả từ ba đến sáu lần. Trong khoảng từ mười đến mười bốn lần, nhãn và dữ liệu ghi nhận khớp nhau trong 1581 trên tổng số 1590 trường hợp, đó là lý do trang này yêu cầu cả hai điều kiện.
Phần lớn mã trả cổ tức hằng tháng là quỹ, không phải doanh nghiệp hoạt động
Đây là phần mà các bài liệt kê thường bỏ qua. Kho dữ liệu không có trường đánh dấu loại quỹ, ETF hay REIT, nên danh sách mã trả cổ tức hằng tháng không thể lọc ra doanh nghiệp hoạt động chỉ dựa trên nhãn. Điều kho dữ liệu có là một nguồn dữ liệu cơ bản doanh nghiệp, trong đó báo cáo vốn hóa thị trường cho các doanh nghiệp hoạt động mà nguồn này theo dõi. Quỹ giao dịch trên sàn và quỹ đóng nằm ngoài phạm vi theo dõi đó, nên sự hiện diện của vốn hóa thị trường trở thành tiêu chí thay thế trong thực tế để xác định doanh nghiệp hoạt động trên trang này. Trong nhóm mã trả cổ tức hằng tháng có 1590 mã, và 35 mã có vốn hóa thị trường. Các mã còn lại không có bản ghi nào như vậy. Phần lớn trong số đó là quỹ giao dịch trên sàn, quỹ đóng và quỹ định kỳ mở (interval fund), phần còn lại là chứng chỉ ủy thác, quỹ tín thác và đơn vị phát hành nhỏ mà nguồn dữ liệu chưa bao phủ tới.
Số ít mã có dữ liệu này chủ yếu là REIT, REIT thế chấp, công ty phát triển kinh doanh (BDC) và quỹ ủy thác tiền bản quyền (royalty trust). Đó là bức tranh thực tế của thu nhập hằng tháng: các hình thức doanh nghiệp trả tiền mỗi tháng được thiết kế để chuyển thẳng dòng tiền cho nhà đầu tư. Hầu như không tồn tại doanh nghiệp hoạt động thông thường nào trả cổ tức hằng tháng và tương đương với nhà vô địch tăng cổ tức hai thập kỷ, vì các doanh nghiệp này thường trả hằng quý. Vì sao hằng quý trở thành thông lệ mặc định ở Mỹ ngay từ đầu, và những cấu trúc nào đi ngược lại thông lệ đó, được trình bày chi tiết trong Cổ phiếu trả cổ tức hằng tháng được giải thích.
Tỷ suất cổ tức của cổ phiếu trả hàng tháng
Tỷ suất cổ tức trong nhóm cổ phiếu trả hàng tháng chênh lệch lớn hơn nhiều so với toàn thị trường. Bảng dữ liệu phân nhóm mọi cổ phiếu trả hàng tháng đạt ngưỡng thanh khoản tối thiểu và có đủ lịch sử giá một năm. Bảng còn thêm một cột mà bộ lọc tỷ suất thông thường không bao giờ hiển thị: giá cổ phiếu đã thay đổi thế nào trong mười hai tháng đó.
| Nhóm | Số đơn vị chi trả | Lợi suất trung vị (%) | Biến động giá trung vị 12 tháng (%) | Công bố thông tin |
|---|---|---|---|---|
| Under 3% | 77 | 2.44 | -1.1 | 1 |
| From 3% to 5% | 316 | 4.2 | -4.4 | 3 |
| From 5% to 8% | 241 | 6.2 | -4.8 | 9 |
| From 8% to 12% | 128 | 9.22 | -7.2 | 3 |
| Above 12% | 93 | 14.73 | -15.1 | 15 |
Câu lệnh SQL chính xác đằng sau mỗi con số
WITH monthly AS (
SELECT ticker, argMax(cash_amount, ex_dividend_date) AS latest_payment
FROM global_markets.stocks_dividends
WHERE ex_dividend_date > today() - 365
AND ex_dividend_date <= today()
AND cash_amount > 0
AND distribution_type = 'recurring'
AND ticker NOT IN ('SPCX')
AND ticker NOT IN ('KORU','SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT')
AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
WHERE execution_date BETWEEN today() - 400 AND today())
GROUP BY ticker
HAVING count() BETWEEN 10 AND 14
AND argMax(frequency, ex_dividend_date) = 12
),
filers AS (
SELECT ticker
FROM global_markets.stocks_ratios
GROUP BY ticker
HAVING argMax(market_cap, date) > 0
),
tape AS (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
sum(toFloat64(close) * volume) AS dollar_vol,
argMax(toFloat64(close), window_start) AS close_px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN (SELECT ticker FROM monthly)
AND (window_start >= toDateTime(today() - 32)
OR (window_start >= toDateTime(today() - 378) AND window_start < toDateTime(today() - 358)))
AND toDate(toTimeZone(window_start, 'America/New_York')) < today()
AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York')) < 960
GROUP BY ticker, d
),
px AS (
SELECT ticker,
avgIf(dollar_vol, d > today() - 32) AS adv_usd,
argMaxIf(close_px, d, d > today() - 32) AS last_close,
argMaxIf(close_px, d, d <= today() - 358) AS close_year_ago,
countIf(d > today() - 32) AS recent_sessions,
countIf(d <= today() - 358) AS old_sessions
FROM tape
GROUP BY ticker
HAVING recent_sessions >= 15
AND old_sessions > 0
AND adv_usd >= 1000000
AND last_close > 0
AND close_year_ago > 0
),
named AS (
SELECT m.ticker AS ticker,
100 * m.latest_payment * 12 / p.last_close AS yld,
100 * (p.last_close - p.close_year_ago) / p.close_year_ago AS price_change,
m.ticker IN (SELECT ticker FROM filers) AS is_filer
FROM monthly m
INNER JOIN px p ON p.ticker = m.ticker
)
SELECT multiIf(yld < 3, 'Under 3%',
yld < 5, 'From 3% to 5%',
yld < 8, 'From 5% to 8%',
yld < 12, 'From 8% to 12%',
'Above 12%') AS bucket,
count() AS payers,
round(quantileDeterministic(0.5)(yld, cityHash64(ticker)), 2) AS median_yield_pct,
round(quantileDeterministic(0.5)(price_change, cityHash64(ticker)), 1) AS median_price_change_12m_pct,
countIf(is_filer) AS company_filings
FROM named
GROUP BY bucket
ORDER BY median_yield_pctNhóm lớn nhất là From 3% to 5%, với 316 mã, so với 241 mã ở nhóm From 5% to 8% và 77 mã ở nhóm Under 3%. Tỷ suất cổ tức trung vị tăng đều qua các nhóm, từ 2.44% ở đáy đến 14.73% ở đỉnh.
Bây giờ hãy xem cột giá bên cạnh. Mức thay đổi giá trung vị trong mười hai tháng là -1.1% ở nhóm tỷ suất thấp nhất và -4.4% ở nhóm From 3% to 5%, sau đó là -15.1% ở nhóm Above 12%. Tỷ suất có giá nằm ở mẫu số, nên một mã có thể leo lên nhóm cao nhất mà khoản chi trả không đổi. Tỷ suất cực cao thường là phép tính số học phản ánh giá cổ phiếu đang giảm, chứ không phải bằng chứng của một đơn vị chi trả hào phóng. Tỷ suất cổ tức so với lợi suất trái phiếu Kho bạc trình bày những gì một con số thu nhập cao cần vượt qua.
Những mã vượt ngưỡng 12%
Bất kỳ mã nào trả cổ tức hằng tháng với lợi suất trên khoảng 12% đều đáng được xem xét thêm. Dưới đây là các công ty vượt ngưỡng này, cùng với diễn biến giá cổ phiếu và khoản chi trả hằng tháng trong một năm qua.
| ticker | Lợi suất năm (%) | Biến động giá 12 tháng (%) | Biến động chi trả 12 tháng (%) | GD TB/ngày (mUSD) |
|---|---|---|---|---|
| OXSQ | 31.84 | -28.5 | 0 | 1.5 |
| EARN | 27.46 | -33.8 | 0 | 1.6 |
| PSEC | 26.35 | -41.7 | -22.2 | 11.6 |
| IVR | 25.92 | -24.6 | -64.7 | 18 |
| ORC | 24.07 | -33 | -16.7 | 32.1 |
| ARR | 21.79 | -17.1 | 0 | 53.7 |
| SAR | 19.93 | -33.5 | 0 | 2.4 |
| DX | 18.63 | -17.2 | 0 | 74.1 |
| CION | 18.22 | -30.6 | -72.2 | 1.8 |
| HRZN | 16.69 | -27.4 | -45.5 | 1.6 |
| AGNC | 16.48 | -13.3 | 0 | 296.2 |
| PNNT | 15.69 | -52.8 | -50 | 1.4 |
| PFLT | 14.56 | -26.4 | -22 | 4.8 |
| EFC | 13.32 | -13.1 | 0 | 17 |
| TRIN | 12.6 | 8.1 | -66.7 | 14 |
Câu lệnh SQL chính xác đằng sau mỗi con số
WITH monthly AS (
SELECT ticker,
argMax(cash_amount, ex_dividend_date) AS latest_payment,
argMin(cash_amount, ex_dividend_date) AS oldest_payment
FROM global_markets.stocks_dividends
WHERE ex_dividend_date > today() - 400
AND ex_dividend_date <= today()
AND cash_amount > 0
AND distribution_type = 'recurring'
AND ticker NOT IN ('SPCX')
AND ticker NOT IN ('KORU','SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT')
AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
WHERE execution_date BETWEEN today() - 400 AND today())
GROUP BY ticker
HAVING countIf(ex_dividend_date > today() - 365) BETWEEN 10 AND 14
AND argMax(frequency, ex_dividend_date) = 12
AND oldest_payment > 0
),
filers AS (
SELECT ticker
FROM global_markets.stocks_ratios
GROUP BY ticker
HAVING argMax(market_cap, date) > 0
),
tape AS (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
sum(toFloat64(close) * volume) AS dollar_vol,
argMax(toFloat64(close), window_start) AS close_px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN (SELECT ticker FROM monthly)
AND (window_start >= toDateTime(today() - 32)
OR (window_start >= toDateTime(today() - 378) AND window_start < toDateTime(today() - 358)))
AND toDate(toTimeZone(window_start, 'America/New_York')) < today()
AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York')) < 960
GROUP BY ticker, d
),
px AS (
SELECT ticker,
avgIf(dollar_vol, d > today() - 32) AS adv_usd,
argMaxIf(close_px, d, d > today() - 32) AS last_close,
argMaxIf(close_px, d, d <= today() - 358) AS close_year_ago,
countIf(d > today() - 32) AS recent_sessions,
countIf(d <= today() - 358) AS old_sessions
FROM tape
GROUP BY ticker
HAVING recent_sessions >= 15
AND old_sessions > 0
AND adv_usd >= 1000000
AND last_close > 0
AND close_year_ago > 0
)
SELECT m.ticker AS ticker,
round(100 * m.latest_payment * 12 / p.last_close, 2) AS annual_yield_pct,
round(100 * (p.last_close - p.close_year_ago) / p.close_year_ago, 1) AS price_change_12m_pct,
round(100 * (m.latest_payment - m.oldest_payment) / m.oldest_payment, 1) AS payment_change_12m_pct,
round(p.adv_usd / 1e6, 1) AS avg_daily_traded_musd
FROM monthly m
INNER JOIN px p ON p.ticker = m.ticker
INNER JOIN filers f ON f.ticker = m.ticker
WHERE 100 * m.latest_payment * 12 / p.last_close >= 12
ORDER BY annual_yield_pct DESC
LIMIT 25Có 15 mã vượt ngưỡng. OXSQ có lợi suất năm hóa cao nhất, đạt 31.84%. Giá cổ phiếu của mã này biến động -28.5% trong mười hai tháng, còn khoản chi trả hằng tháng biến động 0%. EARN đứng ngay sau với 27.46%, trong đó giá biến động -33.8% và khoản chi trả biến động 0%. Cắt giảm khoản chi trả và giá giảm thường xảy ra cùng lúc ở cùng một mã. Khi đó, lợi suất tăng lên từ cả hai phía.
Một con số lợi suất đứng riêng lẻ chưa nói lên đầy đủ. Đây là luận điểm mà lợi suất cổ tức là gì phân tích chi tiết.
Cổ tức hàng tháng của Realty Income, theo từng năm
Realty Income là điểm tham chiếu của nhóm này và thường là điểm bắt đầu cho bất kỳ ai tìm hiểu về cổ tức hàng tháng. Mức chi trả hàng tháng được công bố, tức khoản chi trả cao nhất được công bố trong mỗi năm dương lịch, đặt cạnh mức tăng so với năm trước và số lần mức chi trả được nâng lên trong chính năm đó:
| Năm | Chi trả hàng tháng (USD) | Tỷ lệ tăng hằng năm (%) | Số lần tăng | Tỷ lệ tăng năm thấp nhất (%) |
|---|---|---|---|---|
| 2014 | 0.1834 | 0.69 | 4 | 0.69 |
| 2015 | 0.191 | 4.13 | 5 | 0.69 |
| 2016 | 0.2025 | 6.02 | 6 | 0.69 |
| 2017 | 0.2125 | 4.94 | 5 | 0.69 |
| 2018 | 0.221 | 4 | 5 | 0.69 |
| 2019 | 0.2275 | 2.94 | 5 | 0.69 |
| 2020 | 0.2345 | 3.08 | 5 | 0.69 |
| 2021 | 0.2465 | 5.12 | 5 | 0.69 |
| 2022 | 0.2485 | 0.81 | 4 | 0.69 |
| 2023 | 0.2565 | 3.22 | 5 | 0.69 |
| 2024 | 0.2635 | 2.73 | 4 | 0.69 |
| 2025 | 0.27 | 2.47 | 6 | 0.69 |
Câu lệnh SQL chính xác đằng sau mỗi con số
WITH steps AS (
SELECT ed, amt,
lagInFrame(amt) OVER (ORDER BY ed ASC) AS prior_amt
FROM (
SELECT ex_dividend_date AS ed, max(cash_amount) AS amt
FROM global_markets.stocks_dividends
WHERE ticker = 'O'
AND distribution_type = 'recurring'
AND cash_amount > 0
AND ex_dividend_date >= '2013-01-01'
AND ex_dividend_date < toStartOfYear(today())
GROUP BY ed
)
),
yearly AS (
SELECT toYear(ed) AS year,
max(amt) AS monthly_rate,
countIf(prior_amt > 0 AND amt > prior_amt) AS raise_count
FROM steps
GROUP BY year
),
seq AS (
SELECT year, monthly_rate, raise_count,
lagInFrame(monthly_rate) OVER (ORDER BY year ASC) AS prior_rate
FROM yearly
),
panel AS (
SELECT year, monthly_rate, raise_count,
100 * (monthly_rate - prior_rate) / prior_rate AS raise_pct
FROM seq
WHERE prior_rate > 0 AND year >= 2014
)
SELECT year,
round(monthly_rate, 4) AS monthly_payment_usd,
round(raise_pct, 2) AS annual_raise_pct,
raise_count,
round(min(raise_pct) OVER (), 2) AS smallest_annual_raise_pct
FROM panel
ORDER BY yearMức chi trả hàng tháng tăng từ $0.1834 năm 2014 lên $0.27 năm 2025. Mức tăng hằng năm nhỏ nhất trong bảng là 0.69%, nên mức chi trả tăng ở mọi năm được hiển thị. Mức tăng là 2.47% trong năm đầy đủ gần nhất và 0.69% trong 2014. Cột số lần điều chỉnh bên cạnh cho thấy mức chi trả đã tăng bằng cách nào: 6 lần tăng riêng biệt, chỉ riêng trong 2025. Các quỹ trả cổ tức hàng tháng thường điều chỉnh mức chi trả bằng những bước nhỏ vài lần mỗi năm, thay vì một lần tăng lớn duy nhất. Hồ sơ đầy đủ các số liệu đã đo được nằm ở trang cổ tức Realty Income.
Hồ sơ chi trả hằng tháng kéo dài bao lâu
Mọi chuỗi trên trang này đều được tính từ hồ sơ cổ tức, không phải từ năm một công ty lần đầu chi trả hằng tháng. Hồ sơ này còn non trẻ hơn những công ty chi trả lâu đời nhất. Đếm các mã có từ mười đến mười bốn ngày ex-dividend định kỳ trong mỗi năm dương lịch đã hoàn tất:
| Năm | Người trả hằng tháng | Tỷ trọng hằng tháng (%) |
|---|---|---|
| 2005 | 0 | 0 |
| 2006 | 7 | 0.25 |
| 2007 | 69 | 2.32 |
| 2008 | 40 | 1.2 |
| 2009 | 47 | 1.32 |
| 2010 | 61 | 1.53 |
| 2011 | 60 | 1.44 |
| 2012 | 135 | 1.88 |
| 2013 | 730 | 10.2 |
| 2014 | 831 | 11.12 |
| 2015 | 857 | 11.5 |
| 2016 | 839 | 10.92 |
| 2017 | 869 | 10.98 |
| 2018 | 934 | 8.76 |
| 2019 | 983 | 8.94 |
| 2020 | 971 | 9.44 |
| 2021 | 1004 | 9.49 |
| 2022 | 1094 | 9.88 |
| 2023 | 1169 | 10.44 |
| 2024 | 1299 | 11.35 |
Câu lệnh SQL chính xác đằng sau mỗi con số
WITH per_year AS (
SELECT ticker,
toYear(ex_dividend_date) AS year,
count(DISTINCT ex_dividend_date) AS payments
FROM global_markets.stocks_dividends
WHERE distribution_type = 'recurring'
AND cash_amount > 0
AND ex_dividend_date >= '2005-01-01'
AND ex_dividend_date < toStartOfYear(today())
GROUP BY ticker, year
)
SELECT year,
countIf(payments BETWEEN 10 AND 14) AS monthly_payers,
round(100 * countIf(payments BETWEEN 10 AND 14) / count(), 2) AS monthly_share_pct
FROM per_year
GROUP BY year
ORDER BY yearHồ sơ ghi nhận 60 mã chi trả hằng tháng trong 2011 và 135 mã trong 2012, sau đó là 730 mã trong 2013 và 1481 mã trong 2025. Cột tỷ trọng tách bước nhảy này khỏi tăng trưởng thông thường trong nguồn dữ liệu: tỷ trọng mã chi trả hằng tháng trên tổng số mã chi trả định kỳ tăng từ 1.44% lên 10.2%. Một công ty đã chi trả hằng tháng từ rất lâu trước bước nhảy đó không thể hiện được số năm chuỗi dài hơn những gì chính hồ sơ lưu giữ.
Cách đo lường danh sách này
Mọi ngưỡng và tiêu chí loại trừ, được diễn giải bằng ngôn ngữ đơn giản.
- Tần suất. Một mã được xếp vào nhóm hằng tháng khi ghi nhận từ mười đến mười bốn lần chi trả tiền mặt định kỳ trong 365 ngày gần nhất, VÀ nhãn tần suất mới nhất của mã đó ghi là hằng tháng. Cả hai giới hạn đều quan trọng: giới hạn dưới cho phép bỏ qua một bản ghi bị thiếu thỉnh thoảng, còn giới hạn trên loại bỏ các mã chi trả hằng tuần và hằng ngày.
- Loại chi trả. Chỉ các khoản chi trả mà nguồn dữ liệu gắn nhãn là định kỳ mới được tính. Các khoản chi trả đặc biệt, bổ sung và không định kỳ bị loại khỏi phép kiểm tra tần suất và khỏi phép tính yield.
- Chuỗi liên tục. Số năm chi trả hằng tháng liên tục được tính bằng số ngày không hưởng quyền định kỳ liên tiếp, với khoảng cách giữa hai ngày liên tiếp không vượt quá bảy mươi ngày. Nguồn dữ liệu đôi khi thiếu bản ghi của một tháng mà công ty thực sự đã chi trả, nên nếu yêu cầu đúng mười hai bản ghi mỗi năm, mọi chuỗi chi trả sẽ bị đánh giá thấp. Việc chuyển sang chi trả hằng quý tạo ra khoảng cách gần ba tháng và chấm dứt chuỗi một cách chính xác. Chính dữ liệu ghi nhận quyết định giới hạn trên của chuỗi, như bảng độ phủ dữ liệu ở trên cho thấy.
- Ngưỡng thanh khoản. Giá trị giao dịch cổ phiếu trung bình mỗi ngày tối thiểu là một triệu đô la, trải trên ít nhất mười lăm phiên giao dịch trong giờ thường của tháng gần nhất. Dưới ngưỡng này, chênh lệch giá mua-bán (spread) được niêm yết khiến con số yield chỉ còn mang tính lý thuyết.
- Định giá. Yield được tính theo giá đóng cửa của một phiên ĐÃ HOÀN TẤT. Phiên đang diễn ra tại thời điểm trang được tạo lại bị loại trừ, nên ngày ghi nhận có thể chậm hơn lịch thực tế một hoặc hai ngày.
- Bộ lọc doanh nghiệp. Danh sách chính chỉ giữ các mã có bản ghi dữ liệu cơ bản của doanh nghiệp. Bảng phân phối yield giữ lại mọi mã chi trả hằng tháng, kể cả quỹ.
- Loại trừ. Các sản phẩm giao dịch trao đổi (ETP) có đòn bẩy và nghịch đảo bị loại bỏ theo tên, cũng như mọi mã có đợt chia tách cổ phiếu trong vòng một năm qua. Việc chia tách tạo ra biến động giá giả và làm hỏng phép so sánh theo từng cổ phiếu. Một mã được hai tổ chức phát hành dùng chung sẽ bị loại trừ ở mọi nơi.
- Những gì không có trong dữ liệu. Dữ liệu này không bao gồm tỷ lệ chi phí quỹ (expense ratio) và tính chất thuế của khoản phân phối (hoàn trả vốn hay thu nhập). Nhiều quỹ chi trả cao hằng tháng thực chất trả lại vốn thay vì lợi nhuận, và điều này không bao giờ thể hiện trong yield.
Câu hỏi thường gặp
Những cổ phiếu nào chi cổ tức hàng tháng?
Tính theo lịch sử chi trả trong mười hai tháng gần nhất, có 1590 ticker niêm yết tại Mỹ chi trả hàng tháng, nhưng chỉ 35 trong số đó có hồ sơ dữ liệu cơ bản của doanh nghiệp. Gần như toàn bộ phần còn lại là quỹ. Ticker được giao dịch nhiều nhất trong nhóm doanh nghiệp nộp báo cáo là O, và danh sách vượt ngưỡng thanh khoản tối thiểu gồm 31 mã.
Cổ phiếu chi cổ tức hàng tháng có an toàn không?
Lịch chi trả hàng tháng không đảm bảo an toàn. Nhóm này nghiêng về các REIT thế chấp và quỹ thu nhập từ quyền chọn, những loại có mức chi trả biến động theo điều kiện tín dụng và lãi suất. Trong nhóm các ticker chi trả hàng tháng được đo lường tại đây, mức thay đổi giá trung vị trong mười hai tháng là -15.1% đối với các mã có lợi suất trên 12%, so với -1.1% đối với các mã có lợi suất dưới 3%.
Cổ phiếu chi cổ tức hàng tháng nào có lợi suất cao nhất?
Trong số các doanh nghiệp có nộp báo cáo, chi trả hàng tháng và vượt ngưỡng thanh khoản, OXSQ có lợi suất năm hóa cao nhất, đạt 31.84% tính theo giá đóng cửa ngày Oct 16. Giá cổ phiếu của mã này đã thay đổi -28.5% trong mười hai tháng trước đó. Đây chính là phép tính đứng sau phần lớn các mức lợi suất từ hai con số trở lên.
Lợi suất hàng tháng trên trang này được tính như thế nào?
Khoản chi trả hàng tháng được công bố gần nhất được nhân với mười hai, rồi chia cho giá đóng cửa của phiên giao dịch hoàn tất gần nhất. Cách này năm hóa mức chi trả hiện tại, thay vì cộng tổng tiền mặt của mười hai tháng qua. Vì vậy, một mã đã tăng mức chi trả giữa năm sẽ có lợi suất hiển thị ở đây cao hơn lợi suất trailing của mã đó.
Mọi bảng trên đây đều là truy vấn được lưu và có phiên bản, dựa trên hồ sơ cổ tức đã công bố và dữ liệu giá theo phút thực tế. Mở rộng phần SQL bên dưới mỗi khung, hoặc tự xây dựng bộ lọc mã chi trả hàng tháng của riêng bạn trên terminal Strasmore.