Portfolio Dividend Yield கணக்கிடுவது எப்படி
Portfolio dividend yield-ஐ கணக்கிட, மொத்த ஆண்டு dividend income-ஐ market value-ஆல் வகுக்கவும். Yield column-ன் எளிய சராசரி ஏன் தவறாக வழிநடத்தும் என்பதையும் அறிக.
உங்கள் portfolio dividend yield என்பது ஒரு எண்ணாகும்: உங்கள் holdings வழங்கவிருக்கும் மொத்த ஆண்டு dividend income-ஐ, அந்த holdings-ன் மொத்த market value-ஆல் வகுத்த மதிப்பு. இதை மாறுபட்ட முறையில் எழுதினால், ஒவ்வொரு holding-ன் dollar மதிப்பு portfolio முழுவதிலும் கொண்டிருக்கும் பங்கின் அடிப்படையில் எடையிடப்பட்ட individual yields-ன் சராசரியாகும். Brokerage screen-இல் காணப்படும் yield column-ன் சராசரி வேறு எண்ணாகும். பெரும்பாலான உண்மையான portfolios-ல் அது அதிகமாகத் தோன்றும் எண்ணாக இருக்கும்.
Portfolio dividend yield-ஐ எவ்வாறு கணக்கிடுவது
ஒவ்வொரு position-க்கும் shares எண்ணிக்கையை, ஒரு share-க்கான annual dividend-ஆல் பெருக்குங்கள். இதன் மூலம் அந்த position வழங்கும் ஆண்டு dollar income கிடைக்கும். அந்த incomes அனைத்தையும் கூட்டுங்கள். பின்னர் ஒவ்வொரு position-க்கும் shares எண்ணிக்கையை price-ஆல் பெருக்கிக் கிடைக்கும் மதிப்புகளை கூட்டி, அதன் மூலம் வகுத்து, 100-ஆல் பெருக்குங்கள். நான்கு holdings இருந்தாலும் நாற்பது holdings இருந்தாலும் கணக்கீடு இதுவே.
இதை இரண்டு சமமான முறைகளில் எழுதலாம்:
- மொத்த ஆண்டு income-ஐ மொத்த portfolio market value-ஆல் வகுத்தல்.
- ஒவ்வொரு holding-க்கும் weight-ஐ yield-ஆல் பெருக்கி, அவற்றை கூட்டுதல். இங்கு weight என்பது position value-ஐ portfolio value-ஆல் வகுத்த மதிப்பாகும்.
எளிய சராசரி எங்கு தவறுகிறது என்பதை இரண்டாவது வடிவம் காட்டுகிறது. இரு முறைகளிலும் ஒவ்வொரு holding-மும் இடம்பெறும். ஆனால் சரியான முறையில் ஒவ்வொன்றுக்கும் ஒரு சமமான வாக்கு வழங்கப்படாது; அதற்குப் பின்னால் உள்ள dollar மதிப்புக்கு ஏற்ப weight வழங்கப்படும். Portfolio-வின் ஒரு பகுதியாக cash-ஐ கணக்கிட்டால், அது denominator-ல் இடம்பெற வேண்டும். Cash-ஐ விலக்கினால் income ஒரு cent கூட அதிகரிக்காமல் காட்டப்படும் yield உயரும். ஒரே பங்குக்கான இந்தக் கணக்கீட்டைப் பார்க்க dividend yield-ஐ எவ்வாறு கணக்கிடுவது என்பதைத் தொடங்குங்கள்.
Yield column-ஐ சராசரியாக்குவது உங்கள் income-ஐ ஏன் அதிகமாகக் காட்டுகிறது
இரண்டு முறைகளுக்கிடையிலான வேறுபாட்டை ஒரு worked example மூலம் எளிதாகப் பார்க்கலாம். கீழே உள்ள script, எதையும் import செய்யாத plain Python 3 குறியீடாகும். python3 உள்ள எந்தக் கணினியிலும் இதை இயக்கலாம். ஐந்து positions-க்கான hypothetical round numbers பயன்படுத்தப்பட்டுள்ளன. விளைவு தெளிவாகத் தெரியும்படி இவை தேர்ந்தெடுக்கப்பட்டன: name, share count, price, மற்றும் ஒரு share-க்கான annual dividend.
#!/usr/bin/env python3
# each row: (name, shares, price, annual dividend per share)
holdings = [
('A', 200, 50.00, 1.50),
('B', 150, 100.00, 2.00),
('C', 100, 80.00, 0.80),
('D', 300, 20.00, 1.00),
('E', 100, 10.00, 0.90),
]
total_value = sum(sh * px for _, sh, px, _ in holdings)
total_income = sum(sh * dps for _, sh, _, dps in holdings)
naive = sum(100 * dps / px for _, _, px, dps in holdings) / len(holdings)
print(f'market value : ${total_value:,.2f}')
print(f'annual income : ${total_income:,.2f}')
print(f'portfolio yield : {100 * total_income / total_value:.2f}%')
print(f'average of yields : {naive:.2f}%')
for name, sh, px, dps in holdings:
value = sh * px
income = sh * dps
print(
f'{name} weight {100 * value / total_value:5.1f}%'
f' yield {100 * dps / px:5.2f}%'
f' income ${income:8,.2f}'
f' share of income {100 * income / total_income:5.1f}%'
)
இதை இயக்கியதும், இரண்டு முக்கிய வரிகள் கணிசமாக வேறுபடும். Portfolio-வில் $40,000 மதிப்புள்ள பங்குகள் உள்ளன. அவை ஆண்டுக்கு $1,070 வழங்குகின்றன. இதனால் weighted yield 2.68% ஆகும். ஐந்து yield figures-ன் எளிய சராசரி 4.00% எனக் காட்டும். இது உண்மையான அளவைப் போல சுமார் ஒன்றரை மடங்கு ஆகும்.
Position E இதன் காரணத்தை முழுமையாக விளக்குகிறது. $1,000 மதிப்புள்ள பங்குகளில் இது 9.00% yield வழங்குகிறது. இது portfolio value-யின் 2.5% மட்டுமே. ஆனால் income-யில் 8.4% பங்கைக் கொண்டுள்ளது. எளிய சராசரியில் இதற்கு ஐந்தில் ஒரு பங்கு வாக்கு கிடைக்கிறது. அதற்கு அருகில் உள்ள $15,000 position-க்கும் அதே அளவு வாக்கு கிடைக்கிறது. Yield figure-க்கு பின்னால் உள்ள dollar மதிப்பை இணைத்துப் பார்த்தால்தான் அதன் பொருள் தெளிவாகும்.
உண்மையான holdings-ல் weighting எவ்வாறு அமைகிறது
Household dividend payers பல்வேறு yield நிலைகளில் காணப்படுகின்றன. இதுவே weighting தேர்வு ஏன் முக்கியம் என்பதற்குக் காரணம். கீழே உள்ள panel, ஒவ்வொரு பெயருக்குமான trailing yield-ஐ கணக்கிடுகிறது. இதற்காக கடந்த பன்னிரண்டு மாதங்களில் அறிவிக்கப்பட்ட dividend per share தொகை, சமீபத்திய daily close-ஆல் வகுக்கப்படுகிறது.
ஒவ்வொரு எண்ணின் பின்னணியில் உள்ள துல்லியமான SQL
WITH
last_px AS
(
SELECT
ticker,
toFloat64(argMax(close, date)) AS px,
formatDateTime(max(date), '%b %e, %Y') AS priced_through
FROM global_markets.stocks_daily_aggs
WHERE ticker IN ('AAPL', 'MSFT', 'HD', 'KO', 'PG', 'PEP', 'JNJ', 'XOM', 'CVX', 'VZ')
AND date >= today() - 30
GROUP BY ticker
),
ttm_dps AS
(
SELECT
ticker,
sum(amount) AS dps
FROM
(
SELECT
ticker,
id,
toFloat64(any(cash_amount)) AS amount
FROM global_markets.stocks_dividends
WHERE ticker IN ('AAPL', 'MSFT', 'HD', 'KO', 'PG', 'PEP', 'JNJ', 'XOM', 'CVX', 'VZ')
AND ex_dividend_date > today() - 365
AND ex_dividend_date <= today()
GROUP BY ticker, id
)
GROUP BY ticker
)
SELECT
p.ticker AS symbol,
round(d.dps, 2) AS ttm_dividend_usd,
round(100 * d.dps / p.px, 2) AS yield_pct,
p.priced_through AS priced_through
FROM last_px AS p
INNER JOIN ttm_dps AS d ON d.ticker = p.ticker
ORDER BY yield_pct DESCஇந்த 10 பெயர்களில், Aug 7, 2026 விலையில் கணக்கிடப்பட்ட yields, 5.96% முதல் VZ வரை உள்ளன. அவற்றில் குறைந்த yield 0.34%-இல் AAPL ஆகும். இத்தகைய spread கொண்ட holdings-ல் அமைக்கப்பட்ட portfolio, positions dollar மதிப்பில் சமமாக இல்லாவிட்டால் column-ன் midpoint-க்கு அருகில் இருக்காது.
இப்போது அவற்றில் ஐந்தை fixed share counts உடன் ஒரு portfolio-வில் சேர்த்து, இரண்டு எண்களை அருகருகே பாருங்கள்: ஒவ்வொரு holding-ன் market value பங்கு மற்றும் annual income பங்கு.
ஒவ்வொரு எண்ணின் பின்னணியில் உள்ள துல்லியமான SQL
WITH
positions AS
(
SELECT
tupleElement(p, 1) AS ticker,
toFloat64(tupleElement(p, 2)) AS shares
FROM
(
SELECT arrayJoin([('MSFT', 30.), ('PG', 60.), ('XOM', 80.), ('KO', 100.), ('VZ', 60.)]) AS p
)
),
last_px AS
(
SELECT
ticker,
toFloat64(argMax(close, date)) AS px
FROM global_markets.stocks_daily_aggs
WHERE ticker IN ('MSFT', 'PG', 'XOM', 'KO', 'VZ')
AND date >= today() - 30
GROUP BY ticker
),
ttm_dps AS
(
SELECT
ticker,
sum(amount) AS dps
FROM
(
SELECT
ticker,
id,
toFloat64(any(cash_amount)) AS amount
FROM global_markets.stocks_dividends
WHERE ticker IN ('MSFT', 'PG', 'XOM', 'KO', 'VZ')
AND ex_dividend_date > today() - 365
AND ex_dividend_date <= today()
GROUP BY ticker, id
)
GROUP BY ticker
),
holding AS
(
SELECT
pos.ticker AS ticker,
pos.shares * lp.px AS value_usd,
pos.shares * d.dps AS income_usd
FROM positions AS pos
INNER JOIN last_px AS lp ON lp.ticker = pos.ticker
INNER JOIN ttm_dps AS d ON d.ticker = pos.ticker
)
SELECT
h.ticker AS symbol,
round(100 * h.value_usd / t.total_value, 1) AS weight_pct,
round(100 * h.income_usd / t.total_income, 1) AS income_share_pct,
round(100 * h.income_usd / h.value_usd, 2) AS yield_pct
FROM holding AS h
CROSS JOIN
(
SELECT
sum(value_usd) AS total_value,
sum(income_usd) AS total_income
FROM holding
) AS t
ORDER BY weight_pct DESCScript-ல் காணப்பட்ட pattern, live prices-லும்கூட மீண்டும் தோன்றுகிறது. MSFT என்பது market value-யில் 31.4% பங்குடன் மிகப்பெரிய position ஆகும். இது 10% income-ஐ வழங்குகிறது; இதன் yield 0.72% ஆகும். மறுபுறம், VZ, value-யில் 5.9% பங்கைக் கொண்டுள்ளது. இது 15.7% income-ஐ வழங்குகிறது; இதன் yield 5.96% ஆகும். Yields வேறுபட்டால் weight மற்றும் income share வேறுபடும்.
அதே ஐந்து holdings-ஐ இரண்டு முறைகளில் சராசரியாக்கினால், இரண்டு வேறுபட்ட பதில்கள் கிடைக்கும்.
ஒவ்வொரு எண்ணின் பின்னணியில் உள்ள துல்லியமான SQL
WITH
positions AS
(
SELECT
tupleElement(p, 1) AS ticker,
toFloat64(tupleElement(p, 2)) AS shares
FROM
(
SELECT arrayJoin([('MSFT', 30.), ('PG', 60.), ('XOM', 80.), ('KO', 100.), ('VZ', 60.)]) AS p
)
),
last_px AS
(
SELECT
ticker,
toFloat64(argMax(close, date)) AS px
FROM global_markets.stocks_daily_aggs
WHERE ticker IN ('MSFT', 'PG', 'XOM', 'KO', 'VZ')
AND date >= today() - 30
GROUP BY ticker
),
ttm_dps AS
(
SELECT
ticker,
sum(amount) AS dps
FROM
(
SELECT
ticker,
id,
toFloat64(any(cash_amount)) AS amount
FROM global_markets.stocks_dividends
WHERE ticker IN ('MSFT', 'PG', 'XOM', 'KO', 'VZ')
AND ex_dividend_date > today() - 365
AND ex_dividend_date <= today()
GROUP BY ticker, id
)
GROUP BY ticker
),
holding AS
(
SELECT
pos.shares * lp.px AS value_usd,
pos.shares * d.dps AS income_usd
FROM positions AS pos
INNER JOIN last_px AS lp ON lp.ticker = pos.ticker
INNER JOIN ttm_dps AS d ON d.ticker = pos.ticker
)
SELECT
tupleElement(m, 1) AS method,
round(tupleElement(m, 2), 2) AS yield_pct
FROM
(
SELECT arrayJoin([
('Market-value weighted portfolio yield', weighted_yield),
('Simple average of the five yields', naive_yield)
]) AS m
FROM
(
SELECT
100 * sum(income_usd) / sum(value_usd) AS weighted_yield,
avg(100 * income_usd / value_usd) AS naive_yield
FROM holding
)
)
ORDER BY yield_pct DESCமேலுள்ள line, 2.93% என்ற Simple average of the five yields figure ஆகும். மற்ற line 2.24% எனக் காட்டுகிறது. இவற்றில் ஒன்று மட்டுமே cash-க்கு இணையானது. Weighted figure-ஐ portfolio market value-ஆல் பெருக்கினால் annual income மீண்டும் கிடைக்கும். Simple average-ஐ அதேபோல் பயன்படுத்தினால், எந்த statement-லும் காணப்படாத எண்ணிக்கை கிடைக்கும். இதன் திசை கட்டமைப்பால் தீர்மானிக்கப்படுகிறது: அதிக yield கொண்ட பெயர்கள் சிறிய positions ஆக இருந்தால், simple average உண்மையான portfolio yield-ஐவிட அதிகமாக இருக்கும். அதிக yield கொண்ட பெயர்கள் பெரிய positions ஆக இருந்தால், அது உண்மையான yield-ஐவிடக் குறைவாக இருக்கும்.
Yield on cost என்பது portfolio yield அல்ல
Yield on cost என்பது தற்போதைய annual dividend-ஐ, position இன்று கொண்டிருக்கும் மதிப்பால் அல்ல; நீங்கள் செலுத்திய price-ஆல் வகுக்கிறது. $20-க்கு வாங்கிய position இப்போது $80-க்கு வர்த்தகமாகி, ஆண்டுக்கு ஒரு share-க்கு $1.00 dividend தொடர்ந்து வழங்கினால், yield on cost 5.00% ஆகும். Current yield 1.25% மட்டுமே. Dividend ஒரே dollar தொகையாகும். Denominator மட்டும் மாறியுள்ளது.
இரண்டு figures-மும் செல்லுபடியாகும். ஆனால் அவை வெவ்வேறு கேள்விகளுக்குப் பதிலளிக்கின்றன. Denominator-ல் current market value பயன்படுத்தப்பட்டால், portfolio இன்று வழங்கும் yield தெரியும். இது ஒரு நல்ல dividend yield அல்லது Treasury bill உடன் ஒப்பிடக்கூடிய figure ஆகும். Denominator-ல் cost basis பயன்படுத்தப்பட்டால், கடந்த காலத்தில் நீங்கள் செய்த purchase பற்றிய தகவல் கிடைக்கும். பிரச்சினை, ஒரே portfolio total-க்குள் இரண்டையும் கலந்து பயன்படுத்தும்போது தொடங்குகிறது: சமீபத்தில் வாங்கிய holdings-க்கு current yield, பத்து ஆண்டுகளாக வைத்திருப்பவற்றுக்கு yield on cost. இத்தகைய கலவை income portfolio-ன் apparent yield-ஐ வழக்கமாக இரட்டிப்பாக்கும். Broker report செய்யும் எந்த எண்ணிக்கையுடனும் இது ஒத்துப்போகாது. Dividend yield traps எதிர்மாறான மாயையை விளக்குகிறது. அதாவது, விலை கடுமையாகக் குறைந்த பின் அதிகமாகக் காட்டப்படும் yield.
Trailing அல்லது forward inputs பதிலை மாற்றும்
மேலுள்ள ஒவ்வொரு figure-மும் numerator-ல் எந்த dividend number பயன்படுத்தப்படுகிறது என்பதையே சார்ந்துள்ளது. Trailing yield என்பது கடந்த பன்னிரண்டு மாதங்களில் உண்மையில் அறிவிக்கப்பட்ட payments-ன் கூட்டுத்தொகையாகும். Forward yield என்பது சமீபத்திய payment-ஐ ஆண்டு அடிப்படையில் கணக்கிடுவது. பொதுவாக சமீபத்திய quarterly amount-ஐ நான்கால் பெருக்குவது இதற்குப் பயன்படுத்தப்படும். ஒரு நிறுவனம் அதன் payout-ஐ மாற்றியிருந்தாலோ, அந்த ஆண்டில் special distribution வழங்கியிருந்தாலோ, இரண்டு measures-மும் வேறுபடும். ஒரு பெரிய holding மட்டும் portfolio total-ஐ குறிப்பிடத்தக்க அளவு மாற்றக்கூடும். இங்குள்ள panels trailing inputs-ஐப் பயன்படுத்துகின்றன. ஒவ்வொன்றை எப்போது பயன்படுத்த வேண்டும் என்பதை Trailing vs forward dividend yield விளக்குகிறது.
Yield என்பது rate; cash தொகுதிகளாக வந்து சேரும்
Weighted yield என்பது annual rate. அது payment schedule அல்ல. இந்த ஐந்து positions சில ஒன்றுக்கொன்று நெருக்கமான மாதங்களில் payout வழங்குகின்றன. பெரும்பாலான US companies காலாண்டுதோறும் ex-dividend ஆகின்றன. அவற்றின் calendars-லும் ஒத்த தேதிகள் காணப்படும்.
ஒவ்வொரு எண்ணின் பின்னணியில் உள்ள துல்லியமான SQL
WITH
positions AS
(
SELECT
tupleElement(p, 1) AS ticker,
toFloat64(tupleElement(p, 2)) AS shares
FROM
(
SELECT arrayJoin([('MSFT', 30.), ('PG', 60.), ('XOM', 80.), ('KO', 100.), ('VZ', 60.)]) AS p
)
),
payments AS
(
SELECT
ticker,
id,
any(ex_dividend_date) AS ex_date,
toFloat64(any(cash_amount)) AS amount
FROM global_markets.stocks_dividends
WHERE ticker IN ('MSFT', 'PG', 'XOM', 'KO', 'VZ')
AND ex_dividend_date > today() - 365
AND ex_dividend_date <= today()
GROUP BY ticker, id
)
SELECT
formatDateTime(toStartOfMonth(pay.ex_date), '%Y-%m') AS month,
formatDateTime(toStartOfMonth(pay.ex_date), '%b %Y') AS month_label,
round(sum(pos.shares * pay.amount), 2) AS income_usd
FROM payments AS pay
INNER JOIN positions AS pos ON pos.ticker = pay.ticker
GROUP BY month, month_label
ORDER BY monthகடந்த ஆண்டில் cash 12 வேறுபட்ட மாதங்களில் வந்து சேர்ந்தது. அவற்றில் சமீபத்திய மாதம் Jul 2026; அப்போது $107.76 கிடைத்தது. சில சதவீத portfolio yield, எந்த மாதத்தில் பணம் வரும் என்பதைச் சொல்லாது. அதனால் monthly figure-ஐ அடிப்படையாகக் கொண்ட income plan-க்கு rate உடன் calendar-யும் தேவை. இந்த portfolio numbers ஒப்பிடப்படும் market-wide level-க்கு the S&P 500 dividend yield என்பதைப் பார்க்கவும்.
FAQ
எனது முழு portfolio-ன் dividend yield-ஐ எவ்வாறு கணக்கிடுவது?
ஒவ்வொரு holding-ன் annual dividend income-ஐ கூட்டுங்கள். இதற்காக shares எண்ணிக்கையை, ஒரு share-க்கான annual dividend-ஆல் பெருக்குங்கள். பின்னர் ஒவ்வொரு holding-ன் market value-ஐ கூட்டுங்கள். இதற்காக shares எண்ணிக்கையை price-ஆல் பெருக்குங்கள். மொத்த income-ஐ மொத்த value-ஆல் வகுத்து, 100-ஆல் பெருக்குங்கள். கிடைக்கும் முடிவு, உங்கள் holdings-ன் market-value-weighted average yield ஆகும்.
எனது holdings-ன் yields-ன் சராசரி, portfolio yield-ஐவிட ஏன் அதிகமாக உள்ளது?
Simple average ஒவ்வொரு position-க்கும் ஒரு வாக்கு வழங்குகிறது. Portfolio yield ஒவ்வொரு position-க்கும் அதன் dollar மதிப்புக்கு ஏற்ப வாக்கு வழங்குகிறது. அதிக yield கொண்ட பெயர்கள் உங்கள் சிறிய positions ஆக இருந்தால், simple average உண்மையில் portfolio வழங்கும் yield-ஐவிட அதிகமாக இருக்கும். சில நேரங்களில் இந்த வேறுபாடு அரை மடங்கு கூட இருக்கலாம்.
Portfolio dividend yield-ல் cash-ஐக் கணக்கிட வேண்டுமா?
Cash-ஐ portfolio-வின் ஒரு பகுதியாகக் கருதினால், zero dividend உடன் அது denominator-ல் இடம்பெற வேண்டும். இதனால் yield குறையும். Cash-ஐ விலக்கினால், invested sleeve-ன் yield மட்டும் தெரிவிக்கப்படும். நீங்கள் ஒவ்வொரு முறையும் ஒரே convention-ஐப் பயன்படுத்தும் வரை, இரு முறைகளும் ஏற்றுக்கொள்ளத்தக்கவை.
Yield on cost என்பது எனது portfolio yield-க்கு சமமா?
இல்லை. Yield on cost என்பது இன்றைய dividend-ஐ, பல ஆண்டுகளுக்கு முன் நீங்கள் செலுத்திய price-ஆல் வகுக்கிறது. அதனால் stock விலை உயரும்போதெல்லாம் அது அதிகரிக்கும். Portfolio yield current market value-ஐப் பயன்படுத்துகிறது. இது உங்கள் தற்போதைய holdings உருவாக்கும் income-உடன் நேரடியாகத் தொடர்புடைய figure ஆகும்.
அதிக yield கொண்ட ஒரு stock-ஐ சேர்த்தால் portfolio yield அதிகமாக உயருமா?
அதில் முதலீடு செய்யப்பட்ட dollar மதிப்புக்கு ஏற்ப மட்டுமே உயர்வு இருக்கும். Portfolio-யில் 2.5% பங்காக வைத்திருக்கும் 9% yield கொண்ட stock, weighted yield-ஐ சுமார் 0.2 percentage points உயர்த்தும். இதற்கான கணக்கு 0.09-ஐ 0.025-ஆல் பெருக்குவது. Yield column-ன் average-க்கு அது ஏற்படுத்தும் மாற்றம் எதுவாக இருந்தாலும், weighted yield-ல் தாக்கம் இதற்கேற்ப மட்டுமே இருக்கும்.
இங்குள்ள ஒவ்வொரு panel-லும் அதை உருவாக்கிய exact SQL இடம்பெற்றுள்ளது. எனவே weighting-ஐ ஒவ்வொரு வரியிலும் audit செய்யலாம். உங்கள் சொந்த பெயர்கள் மற்றும் share counts பட்டியலில் இதே கணக்கீட்டை இயக்க, Strasmore terminal-ல் plain English-ல் கேளுங்கள்.