Strasmore Research
Apprendre Matt ConnorPar Matt Connor · Mis à jour le 2026-08-08

Price return ou total return : quelle différence ?

Le S&P 500 headline index exclut les dividendes. Comparez price return et total return sur vingt ans, avec l’écart de capitalisation et leurs usages.

La différence entre price return et total return tient à l’écart entre ce qu’affiche un graphique de marché et ce qu’a effectivement gagné un investisseur détenant la même position. Le price return mesure uniquement la variation du cours. Le total return réintègre chaque dividende, réinvesti au cours de clôture de la date ex-dividende. Chaque versement peut ainsi capitaliser avec les actions qui l’ont généré.

Le niveau de l’S&P 500 cité dans les médias correspond à un indice de prix. Son équivalent en total return détient les mêmes sociétés et réinvestit les dividendes. Sur une seule année, les deux évolutions paraissent presque identiques. Sur vingt ans, elles décrivent des résultats très différents. L’écart entre les deux est supérieur à ce que laisserait penser le rendement annuel.

Quelle est la différence entre le price return et le total return ?

Le price return correspond au cours de clôture divisé par le cours de départ, moins un. Chaque niveau d’indice affiché à la télévision et chaque graphique de cours que vous avez consulté correspondent à cette mesure.

Le total return applique le même calcul, en utilisant chaque dividende en numéraire pour acheter davantage de titres au cours observé à leur date ex-dividende. Les tableaux de performance des fonds et les indices de référence auxquels ces fonds sont comparés utilisent cette version.

Un exemple hypothétique permet de comprendre le mécanisme. Vous achetez une action à 100 dollars. Elle verse 2 dollars de dividende par an, puis vous la revendez un an plus tard à 105 dollars. Le price return est de 5 %. Le total return est d’environ 7 %. Cette première année n’a rien d’exceptionnel. C’est la capitalisation qui justifie une présentation distincte : les 2 dollars réinvestis permettent d’acheter une fraction d’action supplémentaire. Cette fraction perçoit à son tour un dividende l’année suivante. Les deux séries s’écartent alors à un rythme qui s’accélère.

Une précision avant de passer aux données. Un total return swap est un contrat dérivé par lequel une partie transfère à l’autre l’intégralité de la performance économique d’un actif, en échange d’un taux de financement. Il ne partage avec la convention d’indice présentée ci-dessous que son nom. Le reste de cette page porte sur les indices et les fonds.

Quelle est l’ampleur de l’écart sur le S&P 500 ?

10 000 $ investis dans le plus grand tracker du S&P 500 à la fin de 2005, puis conservés jusqu’au 31 juillet 2026. La première ligne dépense chaque dividende le jour de son versement. La seconde réinvestit chacun d’eux au cours de clôture du jour.

Requête10 000 $ dans le tracker du S&P 500 : cours uniquement vs dividendes réinvestis, de fin 2006 à juillet 2026
annéecours seul ($)réinvesti ($)part des dividendes (%)
200711755119711.8
2008724775564.1
2009894795456.3
201010100109868.1
2011100831119710
2012114371298311.9
2013148161715813.7
2014165001948215.3
2015163721973317
2016179472209618.8
2017214262689120.3
2018200802568421.8
2019258423367923.3
2020300143986024.7
2021381255131325.7
2022307034199726.9
2023381625299928
2024470466617528.9
2025547407789829.7
2026599568577530.1
Le SQL exact derrière chaque chiffre
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
Essayez cette requête

La ligne fondée uniquement sur le cours termine à $59956. La ligne avec réinvestissement des dividendes termine à $85775. Les dividendes représentent 30.1% de ce solde final, sans apparaître sur un graphique de cours.

C’est au bord gauche du graphique que le phénomène surprend le plus. À la fin de 2007, les deux lignes s’établissaient à $11755 et $11971, les dividendes représentant 1.8% du solde. Un écart aussi faible après la première année passe facilement pour un simple effet d’arrondi. Vingt ans du même effet d’arrondi, chacun se capitalisant sur le précédent, produisent l’écart visible à l’extrémité droite.

L’écart continue-t-il de se creuser avec le temps ?

Même fonds, même date de fin, cinq dates de début différentes.

RequêteRendement du cours vs rendement total selon la durée de détention : tracker du S&P 500, périodes se terminant le 31 juillet 2026
horizonperformance du cours (%)performance totale (%)points de dividendes (%)
1-year18.219.51.3
3-year63.169.36.2
5-year70.782.612
10-year244.3304.560.2
20-year485736.9251.9
Le SQL exact derrière chaque chiffre
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
Essayez cette requête

Sur la période de 1-year, la performance hors dividendes s’est établie à 18.2%, contre 19.5% pour la performance totale, soit un écart de 1.3 points de pourcentage. La période de 10-year fait ressortir 244.3% contre 304.5%, soit 60.2 points d’écart. Sur la période de 20-year, les deux mesures ressortent à 485% et 736.9%, soit un écart de 251.9 points de pourcentage.

La courbe ne progresse pas en ligne droite. Elle évolue comme le solde, car chaque dividende réinvesti vient accroître la base sur laquelle le suivant se capitalise.

Pourquoi une année de dividendes paraît négligeable

Voici chaque année civile de la même période, ventilée entre l’évolution du cours et la contribution du dividende.

RequêteTracker du S&P 500 par année civile : rendement du cours vs points ajoutés par les dividendes réinvestis
annéeperformance du cours (%)points de dividendes (%)
20073.51.9
2008-37.61.49
200919.92.79
2010112.18
2011-1.12.07
201211.72.48
201326.32.55
201412.32.19
2015-0.72.07
201611.22.39
201718.52.3
2018-6.91.78
201928.62.43
202015.12.19
202128.71.73
2022-201.3
202324.81.91
2024241.59
202516.61.37
20269.30.58
Le SQL exact derrière chaque chiffre
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
Essayez cette requête

Lisez les deux séries ensemble. La courbe des cours est la plus visible : elle oscille fortement dans les deux sens. La courbe des dividendes est plus discrète : 1.9 points en 2007, 0.58 points sur la période partielle allant jusqu’en juillet 2026, sans jamais être au premier plan entre-temps. Aucune ligne de ce panneau ne suffirait à elle seule à changer l’opinion de qui que ce soit. Cumulés et composés sur 20 lignes, ces mêmes petits montants représentent toute la distance entre les deux courbes du premier graphique. Réinvestir un dividende revient aussi à acheter automatiquement au prix en vigueur ce jour-là, ce qui s’apparente au lissage du prix de revient par investissements réguliers. C’est la même raison pour laquelle le rendement du dividende du S&P 500 paraît modeste, tout en ayant une incidence bien plus importante sur de longues périodes que ne le laisse penser son niveau.

Quelles actions affichent l’écart le plus large ?

L’écart suit le rendement : une entreprise qui restitue davantage par dollar de cours offre à son détenteur une somme plus importante à réinvestir. Sept noms familiers sur les dix années arrêtées au 31 juillet 2026, annualisés pour rendre les périodes comparables.

RequêteRendement annualisé du cours vs rendement total sur dix ans : sept valeurs connues, au 31 juillet 2026
tickerCAGR du cours (%)CAGR total (%)points de dividendes (%)
VZ-1.513.965.46
XOM6.1110.824.71
KO7.2610.663.4
JNJ7.4210.392.98
PG5.288.192.91
SPY13.16151.84
MSFT23.4524.981.53
Le SQL exact derrière chaque chiffre
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
Essayez cette requête

VZ affiche l’écart annuel le plus large parmi les 7, à 5.46 points de pourcentage par an : -1.51% annualisés sur le seul cours, contre 3.96% dividendes réinvestis. MSFT se situe à l’autre extrémité, avec un écart de 1.53 points. Deux conclusions s’imposent pour quiconque compare des graphiques. Un graphique du cours sous-estime beaucoup plus la performance d’un titre à rendement élevé que celle d’un titre à faible rendement. De même, tout screener qui classe les titres selon la performance du cours pénalise implicitement les valeurs distributrices. Le rendement du dividende de chacun de ces titres détermine l’ampleur de son écart.

Utilisation de chaque version

  • Les indices de référence et les fiches des fonds indiquent le total return. La mention « Total Return Index », le suffixe « TR » ou l’indication « dividendes nets réinvestis » en petits caractères signifient tous que les dividendes sont pris en compte.
  • Les médias financiers et les écrans de cotation utilisent le price return. « Le S&P 500 a clôturé en hausse de 0,4 % » décrit une variation de cours.
  • Les onglets de performance des courtiers affichent généralement le total return pour le compte, puisque les liquidités ont effectivement été créditées. La colonne de performance d’une position affiche souvent la variation du cours par rapport au cost basis, ce qui ne correspond pas au même chiffre.
  • Les backtests et les présentations de stratégies utilisent la version fournie par la source de données de l’auteur. C’est l’origine de nombreuses performances historiques discrètement gonflées.

L’écart important apparaît lorsqu’on compare le total return d’un fonds à un indice fondé sur le price return. Le fonds bénéficie de ses propres dividendes, tandis que l’indice ne bénéficie d’aucun des siens. Le fonds commence ainsi avec une avance égale à l’intégralité du flux de dividendes de l’indice. Sur la période 20-year présentée ci-dessus, cette erreur de comparaison représente 251.9 points de pourcentage. Aucun de ces points ne provient du gérant. Une comparaison homogène oppose le total return au total return. Comment sont mesurés les rendements mensuels reprend le même calcul à l’échelle mensuelle, tandis que rater les meilleures séances montre ce qui arrive à la courbe des cours lorsqu’on en retire quelques séances seulement.

Construction de ces chiffres
  • Les cours correspondent aux clôtures quotidiennes de la séance régulière. Les dividendes sont les distributions en numéraire publiées. Ils sont chaque fois réinvestis au cours de clôture de leur date ex-dividende, conformément à la convention standard de construction d’une série de total return.
  • La période va de décembre 2005 au 31 juillet 2026. Elle correspond à l’intervalle couvert par l’historique intraday utilisé pour ces panneaux. Une période plus longue creuse davantage l’écart.
  • Un fonds répliquant l’indice sert de référence pour l’indice lui-même. Les frais et le cash drag sont donc intégrés à ces chiffres. Le price return de l’année civile est calculé entre la première clôture et la dernière clôture de l’année, ce qui exclut la variation de la première séance.

Rendement du cours ou rendement total : FAQ

Le S&P 500 est-il un indice de cours ou un indice de rendement total ?

Le chiffre de référence est un indice de cours : il suit la valeur de marché de ses composantes et exclut leurs dividendes. Il existe une version en rendement total du même indice, qui réinvestit ces dividendes. Les benchmarks des fonds utilisent généralement la version en rendement total, tandis que les médias citent généralement la version de cours.

Quelle contribution les dividendes apportent-ils au rendement du S&P 500 ?

Sur la période de 10-year se terminant le 31 juillet 2026, le tracker utilisé ici a affiché un rendement de 244.3% hors dividendes, contre 304.5% avec réinvestissement des dividendes. Sur une seule année civile, la contribution est bien plus faible, de l’ordre de 1.9 points en 2007.

Mon compte-titres indique-t-il le rendement du cours ou le rendement total ?

Les dividendes en numéraire sont crédités sur le compte. Le solde les inclut donc déjà. La colonne de gain d’une position compare souvent uniquement le cours actuel avec le cost basis. Elle correspond alors au rendement du cours. Les deux mesures diffèrent exactement du montant des dividendes reçus, sauf si un plan de réinvestissement a permis d’acheter des actions supplémentaires entre-temps.

Un total return swap est-il la même chose que le rendement total ?

Non. Un total return swap est un contrat dérivé bilatéral qui échange l’intégralité de la performance économique d’un actif contre un taux de financement. Le rendement total, au sens des indices, est une convention de mesure de la performance. La formulation commune renvoie à la même idée sous-jacente, à savoir le cours augmenté des revenus. Ces deux notions n’ont toutefois pas de lien en tant qu’instruments.

Pourquoi un fonds semble-t-il plus performant lorsqu’on le compare à un indice de cours ?

Le chiffre publié par le fonds inclut ses dividendes, tandis qu’un indice de cours exclut les siens. La comparaison donne ainsi au fonds une avance correspondant au flux de dividendes de l’indice de référence, soit 251.9 points de pourcentage sur la période de 20-year mentionnée ci-dessus.


Chaque donnée chiffrée présentée ici provient d’une requête versionnée enregistrée, fondée sur les cours de clôture quotidiens et les relevés de dividendes déposés. Ouvrez un panneau pour consulter le SQL, ou reproduisez la même comparaison entre rendement du cours et rendement total sur un ticker que vous suivez sur le terminal Strasmore.

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