Strasmore Research
Jifunze Matt ConnorNa Matt Connor · Imeboreshwa 2026-08-08 · data as of August 8, 2026 · refreshed weekly

Dividend Yield ya Portfolio: Wastani Wenye Uzito

Jinsi ya kukokotoa dividend yield ya portfolio kwa kugawa mapato ya kila mwaka kwa market value, na kwa nini wastani wa safu ya yield hupotosha.

Mavuno ya dividend ya portfolio yako ni nambari moja: jumla ya mapato ya kila mwaka ya dividend ambayo holdings zako zimepangwa kulipa, ikigawanywa kwa jumla ya market value ya holdings hizo. Kwa njia nyingine, ni wastani wa yields za kila holding uliopimwa kwa market value, ambapo uzito wa kila holding ni thamani yake ya dola kama sehemu ya jumla. Wastani wa safu ya yield kwenye skrini ya brokerage ni nambari tofauti, na katika portfolio nyingi halisi ndiyo inayopendeza zaidi.

Jinsi ya kukokotoa dividend yield ya portfolio

Kwa kila position, zidisha idadi ya shares kwa dividend ya kila mwaka kwa kila share. Hiyo inatoa mapato ya kila mwaka ya position kwa dola. Jumlisha mapato hayo, gawa kwa jumla ya shares zilizozidishwa kwa bei katika kila position, kisha zidisha kwa 100. Huo ndio ukokotoaji wote, iwe holdings ni nne au forty.

Kuna njia mbili zenye maana sawa za kuiandika:

  • Jumla ya mapato ya kila mwaka ikigawanywa kwa jumla ya market value ya portfolio.
  • Jumla, katika holdings zote, ya uzito uliozidishwa kwa yield, ambapo uzito ni thamani ya position iliyogawanywa kwa thamani ya portfolio.

Mfumo wa pili unaonyesha kosa la wastani rahisi. Kila holding huonekana katika mifumo yote miwili, lakini katika mfumo sahihi kila moja hubeba uzito wa dola zake badala ya kupata kura moja. Cash unayohesabu kuwa sehemu ya portfolio inapaswa pia kuwa kwenye denominator. Kuiacha nje huongeza yield iliyoonyeshwa bila kuongeza hata senti moja ya mapato. Kwa toleo la hisa moja la hesabu hii, anza na jinsi ya kukokotoa dividend yield.

Kwa nini kukokotoa wastani wa safu ya yield kunazidisha mapato yako

Tofauti kati ya mbinu hizi mbili inaonekana kwa urahisi katika mfano wa hesabu. Script iliyo hapa chini ni Python 3 ya kawaida, bila kuingiza chochote. Mashine yoyote yenye python3 inaweza kuiendesha. Positions hizi tano ni nambari za kubuni zilizorahisishwa, zilizochaguliwa ili kuonyesha athari wazi: jina, idadi ya shares, bei, na dividend ya kila mwaka kwa kila share.

#!/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}%'
    )

Iendeshe, kisha utaona mistari miwili mikuu ikitofautiana sana. Portfolio ina $40,000 za hisa na inalipa $1,070 kwa mwaka, ambayo ni weighted yield ya 2.68%. Wastani rahisi wa yield figures tano unaonyesha 4.00%, karibu mara moja na nusu zaidi.

Position E ndiyo inaeleza yote. Ina yield ya 9.00%, iliyo juu zaidi katika portfolio, kwenye hisa zenye thamani ya $1,000. Hiyo ni 2.5% ya thamani ya portfolio na 8.4% ya mapato yake. Katika wastani rahisi inapata kura moja kati ya tano, sawa na position ya $15,000 iliyo karibu nayo. Yield figure huwa na maana tu unapoiambatanisha na dola zilizo nyuma yake.

Uzito unavyoonekana katika holdings halisi

Waolipaji wa dividend wa kaya wana yields zinazotofautiana kwa kiwango kikubwa. Hilo ndilo linalofanya uchaguzi wa uzito kuwa muhimu. Paneli iliyo hapa chini inakokotoa trailing yield ya kila jina kutokana na dividends per share zilizotangazwa katika miezi kumi na miwili iliyopita, zikigawanywa kwa bei ya hivi karibuni ya kufunga kwa siku.

UlizaYield ya gawio ya miezi 12 iliyopita kwa walipaji 10 wa kaya
SQL halisi nyuma ya kila namba
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
Run this yourself

Katika majina haya ya 10, yenye bei zilizopitia Aug 7, 2026, yields zinaanzia 5.96% katika VZ hadi 0.34% katika AAPL. Portfolio iliyojengwa kwa spread kama hii haitafika karibu na midpoint ya safu hiyo isipokuwa positions ziwe na thamani sawa kwa dola.

Sasa weka majina matano kati yake kwenye portfolio yenye idadi maalumu ya shares, kisha linganisha nambari mbili: sehemu ya kila holding katika market value, na sehemu yake katika mapato ya kila mwaka.

UlizaJalada la hisa tano: sehemu ya thamani dhidi ya sehemu ya mapato
SQL halisi nyuma ya kila namba
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 DESC
Run this yourself

Mfumo kutoka kwenye script unajirudia katika bei halisi za soko. MSFT ndiyo position kubwa zaidi ikiwa na 31.4% ya market value, huku ikitoa 10% ya mapato, kwa yield ya 0.72%. Kwa upande mwingine, VZ ina 5.9% ya thamani na inalipa 15.7% ya mapato, kwa 5.96%. Uzito na sehemu ya mapato hutengana kila yield zinapotofautiana.

Ukikokotoa wastani kwa njia hizo mbili, holdings zilezile tano zinatoa majibu mawili tofauti.

UlizaWastani mbili za hisa tano zilezile
SQL halisi nyuma ya kila namba
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
Run this yourself

Mstari wa juu, wenye 2.93%, ni figure ya Simple average of the five yields. Mwingine unaonyesha 2.24%. Ni mmoja tu kati yao unaolingana na cash. Zidisha weighted figure kwa market value ya portfolio, nawe utapata mapato ya kila mwaka. Fanya hivyo hivyo kwa wastani rahisi, nawe utapata nambari ambayo hakuna statement itakayowahi kuonyesha. Mwelekeo huu unatokana na muundo: majina yenye yield kubwa yanapokuwa positions ndogo, wastani rahisi huwa juu ya true portfolio yield; na majina yenye yield kubwa yanapokuwa positions kubwa, huwa chini yake.

Yield on cost si portfolio yield

Yield on cost hugawa dividend ya sasa ya kila mwaka kwa bei uliyolipa, si kwa thamani ya position leo. Position iliyonunuliwa kwa $20 na sasa kufanya biashara kwa $80, huku ikiendelea kulipa $1.00 kwa share kwa mwaka, inaonyesha yield on cost ya 5.00% dhidi ya current yield ya 1.25%. Dividend ni dola zilezile. Denominator pekee ndiyo imebadilika.

Nambari zote mbili ni halali, lakini zinajibu maswali tofauti. Current market value katika denominator inakuonyesha portfolio inazalisha yield gani leo. Hiyo ndiyo figure inayoweza kulinganishwa na dividend yield nzuri au Treasury bill. Cost basis katika denominator inakuambia kuhusu ununuzi uliofanya zamani. Tatizo huanza unapochanganya hizi mbili ndani ya jumla moja ya portfolio: current yield kwa ununuzi wa hivi karibuni, na yield on cost kwa holdings ulizomiliki kwa muongo mmoja. Mchanganyiko huo mara kwa mara huongeza mara mbili yield inayoonekana ya portfolio ya mapato, na haulingani na chochote broker anaripoti. Dividend yield traps inaeleza udanganyifu wa kinyume, yaani yield inayoonekana kuwa kubwa baada ya bei kushuka sana.

Trailing au forward inputs hubadilisha jibu

Kila figure hapo juu inategemea ni nambari gani ya dividend inayowekwa kwenye numerator. Trailing yield hujumlisha malipo ya miezi kumi na miwili iliyopita ambayo yalitangazwa kwa kweli. Forward yield huannualize malipo ya hivi karibuni, kwa kawaida kiasi cha mwisho cha kila robo mwaka kikizidishwa kwa four. Nambari hizi mbili hutofautiana kwa jina lolote lililobadilisha payout yake au kulipa special distribution katika mwaka huo. Holding moja kubwa inaweza pia kubadilisha jumla ya portfolio kwa kiasi kinachoonekana. Paneli hizi zinatumia trailing inputs. Trailing vs forward dividend yield inaeleza ni wakati gani kila moja ni chaguo sahihi.

Yield ni rate; cash hufika kwa mafungu

Weighted yield ni rate ya kila mwaka, si ratiba ya malipo. Holdings zilezile tano hulipa katika miezi michache iliyokusanyika kwa karibu, kwa sababu kampuni nyingi za US huenda ex-dividend kila robo mwaka na kutumia kalenda zinazofanana.

UlizaMapato ya gawio kutoka jalada la hisa tano, kwa mwezi
SQL halisi nyuma ya kila namba
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
Run this yourself

Cash iliingia katika miezi 12 tofauti katika mwaka uliopita, na wa hivi karibuni ulikuwa Jul 2026 wenye $107.76. Portfolio yield ya asilimia chache haisemi chochote kuhusu mwezi ambao pesa itaingia. Ndiyo sababu mpango wa mapato unaotegemea figure ya kila mwezi unahitaji kalenda pamoja na rate. Kwa kiwango cha soko zima ambacho nambari hizi za portfolio hupimwa nacho, tazama dividend yield ya S&P 500.

Maswali yanayoulizwa mara kwa mara

Ninakokotoaje dividend yield ya portfolio yangu yote?

Jumlisha mapato ya kila mwaka ya dividend ya kila holding, yaani shares zilizozidishwa kwa dividend ya kila mwaka kwa kila share. Kisha jumlisha market value ya kila holding, yaani shares zilizozidishwa kwa bei. Gawa jumla ya mapato kwa jumla ya thamani, kisha zidisha kwa 100. Matokeo ni wastani wa yields za holdings zako uliopimwa kwa market value.

Kwa nini wastani wa yields za holdings zangu ni mkubwa kuliko portfolio yield yangu?

Wastani rahisi huipa kila position kura moja. Portfolio yield huipa kila position kura inayolingana na dola zake. Majina yenye yield kubwa yanapokuwa positions zako ndogo zaidi, wastani rahisi huwa juu ya yield ambayo portfolio inalipa kwa kweli, wakati mwingine kwa karibu nusu zaidi.

Je, cash huhesabiwa katika portfolio dividend yield?

Ukichukulia cash kuwa sehemu ya portfolio, inapaswa kuwa kwenye denominator ikiwa na dividend ya sifuri, na itapunguza yield. Ukiiacha nje, unaripoti yield ya sehemu iliyowekezwa pekee. Njia zote mbili zinafaa mradi utumie njia ileile kila unapopima.

Je, yield on cost ni sawa na yield ya portfolio yangu?

Hapana. Yield on cost hugawa dividend ya leo kwa bei uliyolipa miaka iliyopita, kwa hiyo huongezeka kila hisa inapopanda. Portfolio yield hutumia market value ya sasa. Hiyo ndiyo figure inayohusiana moja kwa moja na mapato yanayotokana na holdings zako za sasa.

Kuongeza hisa moja yenye yield kubwa kunaongeza portfolio yield yangu kwa kiasi kikubwa?

Huongeza tu kulingana na dola zilizowekezwa humo. Hisa yenye yield ya 9% inayoshikiliwa kwa 2.5% ya portfolio huongeza takribani 0.2 percentage points kwenye weighted yield (0.09 ikizidishwa kwa 0.025), bila kujali inavyobadilisha wastani wa safu ya yield.


Kila paneli hapa ina SQL kamili iliyotumika kuizalisha, kwa hiyo uzito unaweza kukaguliwa line by line. Ili kuendesha hesabu hiyo hiyo kwa orodha yako ya majina na idadi ya shares, iombe kwa Kiingereza rahisi kwenye terminal ya Strasmore.

#dividend yield#portfolio#weighted average#income#calculation