Strasmore Research
學習 Matt Connor作者: Matt Connor

價格報酬與總報酬差多少?S&P 500股息複利

S&P 500新聞指數未計股息,價格報酬與總報酬在二十年後差距如何?了解股息再投資的複利影響,以及兩種指數各自的使用情境。

價格報酬與總報酬的差異,在於市場圖表呈現的數字,與實際持有相同部位的投資人所賺取的報酬並不相同。價格報酬只計算價格本身的變動。總報酬則將所有股息按除息日的價格重新投入,使每筆股息都能與產生該股息的持股一同複利增長。

新聞報導中常見的 S&P 500 指數水準是價格指數。相對的總報酬指數持有相同的公司,並將股息重新投入。以單一年期來看,兩者幾乎沒有差異。以二十年來看,兩者呈現的結果則大不相同,而且累積差距大於年度殖利率所暗示的程度。

價格報酬與總報酬有何不同?

價格報酬是期末價格除以期初價格,再減一。電視上報導的每一個指數點位,以及你看過的每一張價格圖表,都是這個數字。

總報酬採用相同計算方式,但會將每筆現金股息在除息日的價格下再投入,買進更多股份。基金績效表,以及基金用來衡量績效的基準指數,都採用這個版本。

以下用假設情境說明計算方式。以每股 $100 買進一檔每年配發 $2 股息的股票,並在一年後以 $105 賣出。價格報酬為 5%。總報酬約為 7%。第一年的差異並不大。真正形成區別的是複利效果,因此這個主題值得另立一節:再投入的 $2 可買進部分額外股份,而這部分股份在隔年也會取得自身的股息。隨著時間經過,兩者的報酬率會以加速的速度拉開差距。

在進入數據前,先釐清一個容易混淆的概念。總報酬交換(total return swap)是一種衍生性契約。契約一方會將某項資產的完整經濟效益轉交給另一方,以換取融資利率。它與下文的指數計算慣例只有名稱相同,其他並無關聯。本頁其餘內容僅討論指數與基金。

S&P 500 的差距有多大?

2005年底將 $10,000 投入規模最大的 S&P 500 追蹤基金,並持有至2026年7月31日。第一條線在每次收到股息當天就將其花掉。第二條線則以當日收盤價將每次股息再投資。

查詢S&P 500追蹤ETF中的10,000美元:僅計價格與股息再投資,2006年底至2026年7月
每個數據背後的精確 SQL 語法
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

僅計價格的投資價值最後為 $59956。股息再投資後的投資價值最後為 $85775。股息占期末餘額的 30.1%,而這部分不會出現在價格圖表上。

圖表左端最容易讓人忽略這項差異。2007年底,兩條線分別為 $11755 和 $11971,股息占餘額的 1.8%。第一年的差距很小,很容易被視為四捨五入造成的細節。二十年來,每年都出現同樣的細小差距,並在前一年基礎上持續複利,最終形成右端的差距。

差距會隨時間持續擴大嗎?

相同基金、相同終止日期,搭配五個不同的起始日期。

查詢持有期間的價格報酬與總報酬比較:S&P 500追蹤ETF,截至2026年7月31日
每個數據背後的精確 SQL 語法
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

1-year 期間,價格報酬為 18.2%,總報酬則為 19.5%,兩者相差 1.3 個百分點。10-year 期間的數據分別為 244.3% 與 304.5%,相差 60.2 個百分點。在 20-year 期間,兩項數據分別為 485% 與 736.9%,相差 251.9 個百分點。

這條曲線並非直線上升。它的上升方式與帳戶餘額相同,因為每次再投資的股息都會併入本金,成為下一次複利的基礎。

為何一年的股息看起來微不足道

以下列出相同期間的每一個曆年,並拆分為價格變動與股息貢獻。

查詢S&P 500追蹤ETF各曆年表現:價格報酬與股息再投資增加的點數
每個數據背後的精確 SQL 語法
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

請將兩條序列放在一起觀察。價格線是較醒目的部分,雙向大幅波動。股息線則相對平靜:1.9點的2007、截至7月的部分年度為0.58點的2026,而介於兩者之間的年度,股息從未成為主要焦點。該面板中的任何單一列,都不會改變任何人的看法。將這些小幅數字沿著20列累積並複利後,便構成第一張圖中兩條線之間的全部差距。股息再投資也等同於在當天價格下自動買進,與平均成本法相近。這也是為何S&P 500股息殖利率看似數字不高,但在較長期間的影響遠比其表面規模更大。

哪些股票顯示出最寬的差距?

這項差距與殖利率同步變動:每一美元股價所返還的金額越高,持有人可再投資的資金就越多。以下列出七檔熟悉的股票,期間為截至2026年7月31日的十年,並採年化計算,使各期間具可比性。

查詢十年期年化價格報酬與總報酬比較:七家知名企業,截至2026年7月31日
每個數據背後的精確 SQL 語法
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 的年度差距最寬,在 7 檔股票中達每年 5.46 個百分點:僅按股價計算的年化報酬率為 -1.51%,將股息再投資後則為 3.96%。MSFT 的差距最窄,為 1.53 個百分點。對於比較圖表的投資人而言,這帶來兩項啟示。股價圖對高配息股票報酬的低估程度,遠高於對低配息股票的低估程度。任何依股價表現排序的篩選工具,也會在無形中降低配息股票的排名。這些股票各自的 股息殖利率,正是決定差距大小的關鍵。

各版本的使用情境

  • 基準指數與基金資料表會引用總報酬。「Total Return Index」、「TR」字尾,或註腳中的「股息再投資」說明,都表示已將股息計入。
  • 財經媒體與報價畫面使用價格報酬。「S&P 500收盤上漲0.4%」指的是價格變動。
  • 券商的帳戶績效頁面通常採用總報酬,因為現金確實已經入帳。單一持倉的損益欄位則常以成本基礎計算價格變化,因此兩者並非同一數字。
  • 回測與策略報告採用的版本,取決於作者資料源提供的內容。許多未明說的膨脹績效紀錄,都是由此產生。

真正重要的誤差,是將基金的總報酬與價格指數並列比較。基金會計入自身股息,但基準指數卻完全不計入自身股息,因此基金一開始就取得相當於該指數全部股息流的優勢。在上方的20-year期間,這項評分錯誤相當於251.9個百分點,而且其中沒有任何一點來自經理人的貢獻。公平的比較方式,是以總報酬對總報酬。月報酬如何計算以月度層級說明相同的計算方式;錯過最佳交易日則展示,當少數交易日從價格序列中移除後,價格線會如何變化。

這些數字的計算方式
  • 價格採用每日正常交易時段的收盤價。股息採用申報的現金分配,並在除息日以收盤價逐筆再投資;這是建立總報酬序列的標準慣例。
  • 期間自2005年12月起至2026年7月31日止,涵蓋這些面板背後的盤中價格歷史資料。期間越長,差距會進一步擴大。
  • 以追蹤該指數的基金代表指數本身,因此費用與現金拖累已包含在這些數字中。曆年價格報酬從該年度第一個收盤價計算至最後一個收盤價,因此不計入第一個交易日的變動。

價格報酬與總報酬常見問答

S&P 500 是價格指數還是總報酬指數?

市場報導中的指數點位是價格指數:它追蹤成分股的市值,但不計入股息。相同指數也有總報酬版本,並假設股息再投資。基金基準通常採用總報酬版本,而新聞報導通常引用價格版本。

股息為 S&P 500 報酬增加多少?

在截至2026年7月31日、為期 10-year 的期間內,本頁使用的追蹤指標價格報酬為 244.3%;若將股息再投資,報酬則為 304.5%。在單一曆年內,股息的貢獻小得多,約為 1.9 個百分點,落在 2007

我的券商帳戶顯示的是價格報酬還是總報酬?

現金股息會存入帳戶,因此帳戶餘額本身已包含股息。持倉的損益欄位通常只比較目前價格與你的成本基礎,因此反映的是價格報酬。除非股息再投資計畫一路買進更多股份,否則兩者的差異正好等於已收到的股息。

總報酬交換契約和總報酬是同一回事嗎?

不是。總報酬交換契約是雙邊衍生性金融商品契約,將資產的完整經濟報酬與融資利率進行交換。指數語境中的總報酬則是一種績效計算慣例。兩者使用相同措辭,是因為都涉及價格加上收益的概念;但作為工具而言,兩者並不相同。

為什麼基金與價格指數比較時,表現看起來較好?

基金公布的數據包含股息,但價格指數不包含自身股息。這種比較讓基金先取得相當於基準股息流的優勢,在上述 20-year 期間內高出 251.9 個百分點。


本頁每個數字都來自以每日收盤價與申報股息紀錄建立、具版本控管的儲存查詢。開啟任一面板即可查看 SQL,也可以在 Strasmore terminal 上,對你追蹤的 ticker 執行相同的價格報酬與總報酬比較。

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