Strasmore Research
Leren Matt ConnorDoor Matt Connor

Price return versus total return: het echte verschil

Price return toont alleen koerswinst. Total return herbelegt dividenden. Bekijk het verschil over 20 jaar en wanneer u elke versie gebruikt.

Het verschil tussen price return en total return is het verschil tussen wat een marktgrafiek toont en wat iemand met dezelfde positie daadwerkelijk heeft verdiend. Price return telt alleen de verandering in de koers. Total return voegt elk dividend opnieuw toe. Daarbij wordt het dividend herbelegd tegen de koers op de ex-dividenddatum. Zo kan elke uitkering meegroeien met de aandelen die het dividend hebben voortgebracht.

Het S&P 500-niveau dat in het nieuws wordt genoemd, is een price index. De tegenhanger met total return bevat dezelfde ondernemingen en belegt de dividenden opnieuw. Over één jaar lijken beide vrijwel identiek. Over twintig jaar laten zij zeer verschillende uitkomsten zien. Het verschil tussen beide is groter dan de jaarlijkse yield zou doen vermoeden.

Wat is het verschil tussen price return en total return?

Price return is de slotkoers gedeeld door de startkoers, min één. Elk indexniveau dat u op televisie ziet en elke koersgrafiek die u ooit hebt bekeken, geeft dit getal weer.

Total return gebruikt dezelfde berekening, maar zet elk contant dividend in op de aankoop van extra aandelen tegen de koers op de ex-dividenddatum. Rendementstabellen van fondsen en de benchmarkindexen waartegen die fondsen worden gemeten, gebruiken deze versie.

Een hypothetisch voorbeeld maakt de werking concreet. U koopt een aandeel voor $100. Het aandeel keert jaarlijks $2 uit. Een jaar later verkoopt u het voor $105. De price return bedraagt 5%. De total return bedraagt ongeveer 7%. Dat eerste jaar is niet uitzonderlijk. Het is de compounding die het verschil steeds groter maakt: de herbelegde $2 koopt een fractie van een extra aandeel, die fractie ontvangt het volgende jaar haar eigen dividend, en de twee reeksen lopen daardoor in een steeds hoger tempo uiteen.

Eerst één verduidelijking voordat we naar de data gaan. Een total return swap is een derivatencontract waarin de ene partij de volledige economische blootstelling aan een asset doorgeeft in ruil voor een financieringsrente. De term heeft alleen de naam gemeen met de indexconventie hieronder. De rest van deze pagina gaat over indexen en fondsen.

Hoe groot is het verschil bij de S&P 500?

$10.000 belegd in de grootste S&P 500-tracker aan het eind van 2005 en aangehouden tot en met 31 juli 2026. De eerste lijn besteedt elk dividend op de dag waarop het wordt ontvangen. De tweede lijn herbelegt elk dividend tegen de slotkoers van die dag.

Query$10.000 in de S&P 500-tracker: alleen koers versus herbelegde dividenden, jaareinde 2006 tot juli 2026
De exacte SQL achter elk getal
WITH daily AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           argMax(toFloat64(close), window_start) AS close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2005-12-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 d
),
base AS (
    SELECT argMax(close, d) AS start_px
    FROM daily
    WHERE d <= toDate('2005-12-31')
),
year_end AS (
    SELECT toYear(d) AS year,
           argMax(close, d) AS close,
           max(d) AS last_day
    FROM daily
    WHERE d >= toDate('2006-01-01')
    GROUP BY year
),
reinvest AS (
    SELECT dv.ex_dividend_date AS d,
           log(1 + toFloat64(dv.cash_amount) / dl.close) AS log_growth
    FROM global_markets.stocks_dividends AS dv
    INNER JOIN daily AS dl ON dl.d = dv.ex_dividend_date
    WHERE dv.ticker = 'SPY'
      AND dv.cash_amount > 0
      AND dv.ex_dividend_date >= toDate('2006-01-01')
      AND dv.ex_dividend_date <= toDate('2026-07-31')
)
SELECT ye.year AS year,
       round(10000 * ye.close / any(b.start_px)) AS price_only_usd,
       round(10000 * ye.close / any(b.start_px) * exp(sum(ri.log_growth))) AS reinvested_usd,
       round(100 * (1 - exp(-sum(ri.log_growth))), 1) AS dividend_share_pct
FROM year_end AS ye, reinvest AS ri, base AS b
WHERE ri.d <= ye.last_day
GROUP BY ye.year, ye.close
ORDER BY year
Run this yourself

De lijn op basis van alleen de koers eindigt op $59956. De lijn met herbelegde dividenden eindigt op $85775. Dividenden zijn goed voor 30.1% van dat eindvermogen, terwijl daarvan niets zichtbaar is in een koersgrafiek.

Aan de linkerkant van de grafiek wordt dit vaak onderschat. Aan het eind van 2007 stonden de twee lijnen op $11755 en $11971, waarbij dividenden 1.8% van het vermogen uitmaakten. Een verschil van die omvang in het eerste jaar wordt gemakkelijk afgedaan als een afrondingsdetail. Twintig jaar lang hetzelfde afrondingsdetail, waarbij elk bedrag verder doorwerkt op het vorige, leidt tot het spread aan de rechterkant.

Wordt de kloof in de loop van de tijd groter?

Eenzelfde fonds, dezelfde einddatum, vijf verschillende startdata.

QueryKoersrendement versus totaalrendement per aanhoudingsperiode: S&P 500-tracker, perioden eindigend op 31 juli 2026
De exacte SQL achter elk getal
WITH daily AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           argMax(toFloat64(close), window_start) AS close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2006-07-31')
      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 d
),
spans AS (
    SELECT y AS years,
           concat(toString(y), '-year') AS horizon,
           subtractYears(toDate('2026-07-31'), y) AS start_date
    FROM (SELECT arrayJoin([1, 3, 5, 10, 20]) AS y)
),
divs AS (
    SELECT dv.ex_dividend_date AS d,
           log(1 + toFloat64(dv.cash_amount) / dl.close) AS log_growth
    FROM global_markets.stocks_dividends AS dv
    INNER JOIN daily AS dl ON dl.d = dv.ex_dividend_date
    WHERE dv.ticker = 'SPY'
      AND dv.cash_amount > 0
      AND dv.ex_dividend_date <= toDate('2026-07-31')
),
endpoints AS (
    SELECT s.horizon AS horizon,
           s.years AS years,
           argMin(dl.close, dl.d) AS start_px,
           argMax(dl.close, dl.d) AS end_px
    FROM spans AS s, daily AS dl
    WHERE dl.d >= s.start_date
    GROUP BY s.horizon, s.years
),
reinvest AS (
    SELECT s.years AS years,
           exp(sum(dvs.log_growth)) AS factor
    FROM spans AS s, divs AS dvs
    WHERE dvs.d > s.start_date
    GROUP BY s.years
)
SELECT e.horizon AS horizon,
       round(100 * (e.end_px / e.start_px - 1), 1) AS price_return_pct,
       round(100 * (e.end_px / e.start_px * r.factor - 1), 1) AS total_return_pct,
       round(100 * (e.end_px / e.start_px) * (r.factor - 1), 1) AS dividend_points_pct
FROM endpoints AS e
INNER JOIN reinvest AS r ON e.years = r.years
ORDER BY e.years
Run this yourself

Over de periode van 1-year bedroeg het price return 18.2%, tegenover een total return van 19.5%. Dat is een verschil van 1.3 procentpunt. Over de periode van 10-year komt 244.3% uit tegenover 304.5%, een verschil van 60.2 punt. Over de periode van 20-year bedragen de twee uitkomsten 485% en 736.9%. Het verschil is 251.9 procentpunt.

De curve stijgt niet in een rechte lijn. Zij stijgt zoals het saldo groeit. Elk herbelegd dividend wordt toegevoegd aan de basis waarop het volgende dividend verder aangroeit.

Waarom één jaar aan dividend er triviaal uitziet

Hier ziet u elk kalenderjaar binnen dezelfde periode, opgesplitst in de koersbeweging en de bijdrage van het dividend.

QueryS&P 500-tracker per kalenderjaar: koersrendement versus de puntenbijdrage van herbelegde dividenden
De exacte SQL achter elk getal
WITH daily AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           argMax(toFloat64(close), window_start) AS close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2006-01-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 d
),
yearly AS (
    SELECT toYear(d) AS year,
           argMin(close, d) AS first_px,
           argMax(close, d) AS last_px
    FROM daily
    GROUP BY year
),
divs AS (
    SELECT toYear(dv.ex_dividend_date) AS year,
           exp(sum(log(1 + toFloat64(dv.cash_amount) / dl.close))) AS factor
    FROM global_markets.stocks_dividends AS dv
    INNER JOIN daily AS dl ON dl.d = dv.ex_dividend_date
    WHERE dv.ticker = 'SPY'
      AND dv.cash_amount > 0
    GROUP BY year
)
SELECT y.year AS year,
       round(100 * (y.last_px / y.first_px - 1), 1) AS price_return_pct,
       round(100 * (y.last_px / y.first_px) * (d.factor - 1), 2) AS dividend_points_pct
FROM yearly AS y
INNER JOIN divs AS d ON y.year = d.year
ORDER BY year
Run this yourself

Bekijk de twee reeksen samen. De koerslijn valt het meest op en beweegt sterk in beide richtingen. De dividendlijn is de rustige reeks: 1.9 punten in 2007, 0.58 punten in het gedeeltelijke jaar tot en met juli 2026, en daartussen nooit de hoofdzaak. Geen enkele rij in dat paneel zou iemand ergens van overtuigen. Opgeteld en samengesteld over 20 rijen vormen diezelfde kleine cijfers de volledige afstand tussen de twee lijnen in de eerste grafiek. Een dividend herbeleggen betekent bovendien automatisch kopen tegen de koers die die dag geldt. Dat ligt dicht bij dollar-cost averaging. Om dezelfde reden is de dividend yield van de S&P 500 een bescheiden cijfer, terwijl die over lange periodes veel belangrijker is dan de omvang ervan doet vermoeden.

Welke aandelen laten het grootste verschil zien?

Het verschil volgt het yield: een onderneming die per dollar koers meer uitkeert, biedt de belegger meer om opnieuw te beleggen. Zeven bekende namen over de tien jaar tot en met 31 juli 2026, geannualiseerd zodat de periodes vergelijkbaar zijn.

QueryGeannualiseerd koersrendement versus totaalrendement over tien jaar: zeven bekende namen, tot en met 31 juli 2026
De exacte SQL achter elk getal
WITH daily AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           argMax(toFloat64(close), window_start) AS close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'KO', 'JNJ', 'XOM', 'PG', 'VZ', 'MSFT')
      AND toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2016-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 ticker, d
),
px AS (
    SELECT ticker,
           argMin(close, d) AS start_px,
           argMax(close, d) AS end_px
    FROM daily
    GROUP BY ticker
),
divs AS (
    SELECT dv.ticker AS ticker,
           exp(sum(log(1 + toFloat64(dv.cash_amount) / dl.close))) AS factor
    FROM global_markets.stocks_dividends AS dv
    INNER JOIN daily AS dl ON dl.ticker = dv.ticker AND dl.d = dv.ex_dividend_date
    WHERE dv.ticker IN ('SPY', 'KO', 'JNJ', 'XOM', 'PG', 'VZ', 'MSFT')
      AND dv.cash_amount > 0
      AND dv.ex_dividend_date >= toDate('2016-08-01')
      AND dv.ex_dividend_date <= toDate('2026-07-31')
    GROUP BY dv.ticker
)
SELECT px.ticker AS ticker,
       round(100 * (pow(px.end_px / px.start_px, 0.1) - 1), 2) AS price_cagr_pct,
       round(100 * (pow(px.end_px / px.start_px * divs.factor, 0.1) - 1), 2) AS total_cagr_pct,
       round(100 * (pow(px.end_px / px.start_px * divs.factor, 0.1)
                    - pow(px.end_px / px.start_px, 0.1)), 2) AS dividend_points_pct
FROM px
INNER JOIN divs ON px.ticker = divs.ticker
ORDER BY dividend_points_pct DESC
Run this yourself

VZ heeft van de 7 het grootste jaarlijkse verschil, namelijk 5.46 procentpunt per jaar: -1.51% geannualiseerd op basis van alleen de koers, tegenover 3.96% wanneer dividenden opnieuw worden belegd. MSFT staat met 1.53 procentpunt aan de onderkant. Voor iedereen die grafieken vergelijkt, volgen daar twee conclusies uit. Een koersgrafiek onderschat een aandeel met een hoog yield veel sterker dan een aandeel met een laag yield. Bovendien zet elke screener die aandelen rangschikt op basis van koersrendement de dividendbetalers impliciet lager. Het dividendyield achter elk van deze namen bepaalt de omvang van het verschil.

Waar elke versie wordt gebruikt

  • Benchmarks en factsheets van fondsen vermelden total return. Een “Total Return Index”, een suffix “TR” of een opmerking als “net dividends reinvested” in de kleine lettertjes betekent telkens dat de dividenden zijn meegerekend.
  • Financiële media en koersschermen gebruiken price return. “De S&P 500 sloot 0,4% hoger” verwijst naar een koersbeweging.
  • Prestatietabbladen van brokers komen voor de rekening meestal uit op total return, omdat de cash daar daadwerkelijk is bijgeschreven. De winstkolom van één positie toont vaak de koersverandering ten opzichte van de cost basis. Dat is niet hetzelfde cijfer.
  • Backtests en strategieanalyses gebruiken de versie die de datafeed van de auteur heeft aangeleverd. Dat is de oorzaak van veel stilzwijgend opgeblazen trackrecords.

De relevante mismatch ontstaat wanneer u de total return van een fonds naast een price index zet. Het fonds krijgt krediet voor zijn eigen dividenden, terwijl de benchmark geen van zijn eigen dividenden krijgt. Daardoor begint het fonds met een voorsprong die gelijk is aan de volledige dividendstroom van de index. In de periode van 20-year hierboven is die beoordelingsfout goed voor 251.9 procentpunt. Geen daarvan is door de beheerder gecreëerd. Een vergelijking op gelijke basis zet total return naast total return. Hoe maandrendementen worden gemeten werkt dezelfde berekening op maandniveau uit. Het missen van de beste dagen laat zien wat er met de koersreeks gebeurt wanneer een handvol handelssessies wordt weggelaten.

Hoe deze cijfers zijn opgebouwd
  • De koersen zijn de slotkoersen van de reguliere handelssessie. Dividenden zijn geregistreerde uitkeringen in cash. Elke uitkering is herbelegd tegen de slotkoers op de ex-dividenddatum. Dat is de standaardconventie voor het opbouwen van een total-returnreeks.
  • De periode loopt van december 2005 tot en met 31 juli 2026. Dit is de periode die wordt bestreken door de intraday-koershistorie achter deze panelen. Een langere periode vergroot het verschil verder.
  • Een fonds dat de index volgt, staat model voor de index zelf. Daardoor zijn fondskosten en cash drag in deze cijfers verwerkt. Het price return over een kalenderjaar wordt gemeten van de eerste slotkoers van het jaar tot de laatste. Daardoor wordt de beweging tijdens de eerste sessie niet meegenomen.

FAQ over koersrendement versus total return

Is de S&P 500 een prijsindex of een total-returnindex?

Het belangrijkste cijfer is een prijsindex: deze volgt de marktwaarde van de samenstellende fondsen en laat hun dividenden buiten beschouwing. Er bestaat ook een total-returnversie van dezelfde index, waarin de dividenden worden herbelegd. Fondsbenchmarks gebruiken doorgaans de total-returnversie, terwijl in het nieuws meestal de prijsversie wordt genoemd.

Hoeveel voegen dividenden toe aan het rendement van de S&P 500?

Over de periode van 10-year tot en met 31 juli 2026 bedroeg het rendement van de hier gebruikte tracker 244.3% op basis van de koers, tegenover 304.5% inclusief herbelegde dividenden. Binnen één kalenderjaar is de bijdrage veel kleiner, ongeveer 1.9 punten in 2007.

Toont mijn effectenrekening het koersrendement of total return?

Contante dividenden worden op de rekening bijgeschreven, waardoor het saldo zelf deze al omvat. De winstkolom van een positie vergelijkt de huidige koers vaak alleen met uw cost basis. Dat is een koersrendement. De twee uitkomsten verschillen precies met de ontvangen dividenden, tenzij een herbeleggingsplan tussentijds extra aandelen heeft gekocht.

Is een total return swap hetzelfde als total return?

Nee. Een total return swap is een bilateraal derivatencontract waarbij de volledige economische opbrengst van een actief wordt geruild tegen een financieringsrente. Total return is in de context van een index een conventie voor het meten van performance. De overeenkomstige terminologie verwijst naar hetzelfde onderliggende idee van koers plus inkomsten. Als instrumenten hebben de twee niets met elkaar te maken.

Waarom lijkt een fonds beter wanneer het met een prijsindex wordt vergeleken?

Het gepubliceerde cijfer van het fonds omvat zijn dividenden, terwijl een prijsindex de eigen dividenden buiten beschouwing laat. Daardoor krijgt het fonds bij de vergelijking een voorsprong ter grootte van de dividendstroom van de benchmark: 251.9 procentpunt over de bovenstaande periode van 20-year.


Elk cijfer hier is afkomstig uit een opgeslagen, versieerde query op basis van dagelijkse slotkoersen en geregistreerde dividendgegevens. Open een paneel om de SQL te lezen, of voer dezelfde vergelijking tussen koersrendement en total return uit voor een ticker die u volgt op de Strasmore-terminal.

#total return#dividends#s&p 500#index funds#performance