Strasmore Research
Edukasi Matt ConnorOleh Matt Connor

Price Return vs Total Return: Selisih Sebenarnya

Price return vs total return: indeks headline S&P 500 tidak menghitung dividen. Lihat selisih compounding selama dua puluh tahun dan penggunaan masing-masing versi.

Price return vs total return menunjukkan perbedaan antara apa yang ditampilkan grafik pasar dan hasil aktual yang diperoleh investor yang memegang posisi yang sama. Price return hanya menghitung perubahan harga. Total return menambahkan kembali seluruh dividen dan menginvestasikannya pada harga saat saham memasuki ex-dividend, sehingga setiap pembayaran dapat mengalami compounding bersama saham yang menghasilkannya.

Level S&P 500 utama yang dikutip dalam berita merupakan indeks harga. Versi total return-nya memiliki perusahaan yang sama dan menginvestasikan kembali dividennya. Dalam satu tahun, keduanya terlihat hampir identik. Dalam dua puluh tahun, keduanya menunjukkan hasil yang sangat berbeda, dan selisihnya lebih besar daripada yang tersirat dari yield tahunan.

Apa perbedaan antara price return dan total return?

Price return adalah harga akhir dibagi harga awal, lalu dikurangi satu. Setiap level indeks yang dikutip di televisi dan setiap grafik harga yang pernah Anda lihat menunjukkan angka ini.

Total return menggunakan perhitungan yang sama, tetapi setiap dividen tunai digunakan untuk membeli lebih banyak saham pada harga di tanggal ex-dividend. Tabel kinerja dana dan indeks acuan yang digunakan untuk mengukur kinerja dana memakai versi ini.

Contoh hipotetis memperjelas mekanismenya. Anda membeli satu saham seharga $100 yang membayar $2 per tahun, lalu menjualnya setahun kemudian seharga $105. Price return adalah 5%. Total return kira-kira 7%. Tahun pertama ini biasa saja. Compounding-lah yang membuat perbedaan tersebut layak dibahas tersendiri: $2 yang diinvestasikan kembali membeli sebagian kecil saham tambahan, bagian tersebut kemudian menerima dividennya sendiri pada tahun berikutnya, dan kedua seri itu semakin berjauhan dengan laju yang makin cepat.

Satu pembedaan sebelum masuk ke data. Total return swap adalah kontrak derivatif ketika satu pihak meneruskan seluruh manfaat dan risiko ekonomi suatu aset sebagai imbalan atas tingkat pembiayaan. Istilah tersebut hanya memiliki nama yang sama dengan konvensi indeks di bawah ini. Selebihnya, halaman ini membahas indeks dan dana.

Seberapa besar kesenjangan pada S&P 500?

$10.000 yang diinvestasikan pada tracker S&P 500 terbesar pada akhir 2005 dan ditahan hingga 31 Juli 2026. Baris pertama membelanjakan setiap dividen pada hari dividen tersebut diterima. Baris kedua menginvestasikan kembali setiap dividen pada harga penutupan hari itu.

Query$10.000 pada tracker S&P 500: hanya harga vs dividen yang diinvestasikan kembali, akhir tahun 2006 hingga Juli 2026
SQL tepat di balik setiap angka
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

Garis yang hanya mencerminkan harga berakhir di $59956. Garis dengan dividen yang diinvestasikan kembali berakhir di $85775. Dividen menyumbang 30.1% dari saldo akhir tersebut, dan tidak ada bagian itu yang terlihat pada grafik harga.

Sisi kiri grafik menunjukkan hal yang sering luput dari perhatian. Pada akhir 2007, kedua garis berada di $11755 dan $11971, dengan dividen senilai 1.8% dari saldo. Kesenjangan pada tahun pertama yang sekecil itu mudah dianggap sekadar perbedaan pembulatan. Dua puluh tahun dengan perbedaan pembulatan yang sama, masing-masing berakumulasi di atas hasil sebelumnya, menghasilkan spread di sisi kanan.

Apakah kesenjangan terus melebar seiring waktu?

Dana yang sama, tanggal akhir yang sama, lima tanggal mulai yang berbeda.

QueryImbal hasil harga vs total berdasarkan periode kepemilikan: tracker S&P 500, periode berakhir 31 Juli 2026
SQL tepat di balik setiap angka
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

Selama periode 1-year, price return tercatat sebesar 18.2%, sedangkan total return mencapai 19.5%. Selisihnya sebesar 1.3 poin persentase. Periode 10-year memisahkan 244.3% dari 304.5%, dengan selisih 60.2 poin. Selama periode 20-year, kedua angka tersebut masing-masing sebesar 485% dan 736.9%, dengan selisih 251.9 poin persentase.

Kurva tersebut tidak meningkat dalam garis lurus. Kenaikannya mengikuti pola saldo, karena setiap dividen yang diinvestasikan kembali menambah basis yang menjadi dasar compounding berikutnya.

Mengapa dividen selama satu tahun terlihat sepele

Berikut setiap tahun kalender dalam periode yang sama, yang dipisahkan menjadi perubahan harga dan kontribusi dividen.

QueryTracker S&P 500 berdasarkan tahun kalender: imbal hasil harga vs poin yang ditambahkan oleh dividen yang diinvestasikan kembali
SQL tepat di balik setiap angka
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

Baca kedua seri tersebut secara bersamaan. Garis harga adalah yang paling mencolok karena bergerak tajam ke kedua arah. Garis dividen lebih tenang: 1.9 poin pada 2007, 0.58 poin pada tahun parsial hingga Juli 2026, dan tidak pernah menjadi berita utama di antaranya. Tidak ada satu pun baris dalam panel tersebut yang akan mengubah pandangan siapa pun tentang apa pun. Jika diakumulasikan dan dikompaun selama 20 baris, angka-angka kecil yang sama itu menjelaskan seluruh jarak antara kedua garis pada grafik pertama. Menginvestasikan kembali dividen juga berarti membeli secara otomatis pada harga yang berlaku hari itu, yang merupakan kerabat dekat dari dollar cost averaging. Inilah alasan yield dividen S&P 500 terlihat moderat, tetapi dampaknya jauh lebih besar dalam periode panjang daripada yang ditunjukkan ukurannya.

Saham mana yang menunjukkan kesenjangan paling lebar?

Kesenjangan tersebut mengikuti yield: perusahaan yang mengembalikan nilai lebih besar untuk setiap dolar harga memberikan lebih banyak dana untuk diinvestasikan kembali kepada pemegang saham. Tujuh nama yang umum dikenal selama sepuluh tahun hingga 31 Juli 2026, disetahunkan agar periodenya dapat dibandingkan.

QueryImbal hasil harga tahunan vs total selama sepuluh tahun: tujuh nama perusahaan terkemuka, hingga 31 Juli 2026
SQL tepat di balik setiap angka
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 mencatat kesenjangan tahunan paling lebar dari 7, yaitu 5.46 poin persentase per tahun: -1.51% secara tahunan berdasarkan harga saja, dibandingkan dengan 3.96% jika dividen diinvestasikan kembali. MSFT berada di sisi tersempit, sebesar 1.53 poin. Ada dua hal yang perlu diperhatikan saat membandingkan grafik. Grafik harga lebih meremehkan kinerja saham dengan yield tinggi daripada saham dengan yield rendah. Selain itu, setiap penyaring yang mengurutkan nama berdasarkan kinerja harga secara tidak langsung menurunkan peringkat saham pembayar dividen. Dividend yield yang mendasari setiap nama inilah yang menentukan besarnya kesenjangan tersebut.

Di mana setiap versi digunakan

  • Benchmark dan fact sheet reksa dana mengutip total return. Keterangan “Total Return Index”, akhiran “TR”, atau catatan “net dividends reinvested” dalam tulisan kecil semuanya berarti dividen telah diperhitungkan.
  • Media keuangan dan layar kuotasi menggunakan price return. Pernyataan “S&P 500 ditutup naik 0,4%” menunjukkan pergerakan harga.
  • Tab kinerja pada broker biasanya menggunakan total return untuk akun, karena dana tunai tersebut benar-benar masuk ke akun. Kolom gain untuk satu posisi sering menunjukkan perubahan harga dibandingkan cost basis, yang bukan angka yang sama.
  • Backtest dan ulasan strategi menggunakan versi yang disediakan oleh data feed penulis. Inilah sumber banyak rekam jejak kinerja yang diam-diam terlihat terlalu tinggi.

Ketidaksesuaian yang penting terjadi ketika total return suatu fund dibandingkan dengan indeks harga. Fund mendapat kredit atas dividennya sendiri, sedangkan benchmark tidak mendapat kredit atas dividennya. Ini memberi fund keunggulan awal sebesar seluruh aliran dividen indeks. Pada periode 20-year di atas, kesalahan penilaian ini bernilai 251.9 percentage points. Tidak satu pun berasal dari manajer. Perbandingan yang setara menempatkan total return di samping total return. Cara return bulanan diukur menjelaskan perhitungan yang sama pada tingkat bulanan, sedangkan dampak melewatkan hari-hari terbaik menunjukkan apa yang terjadi pada garis harga ketika beberapa sesi dihapus darinya.

Cara angka-angka ini dibentuk
  • Harga adalah harga penutupan sesi reguler harian. Dividen adalah distribusi tunai yang dilaporkan, masing-masing diinvestasikan kembali pada harga penutupan di tanggal ex-dividend. Ini merupakan konvensi standar untuk membentuk seri total return.
  • Periode ini berlangsung dari Desember 2005 hingga 31 Juli 2026. Rentang tersebut merupakan periode yang tercakup dalam riwayat harga intraday yang mendasari panel-panel ini. Periode yang lebih panjang akan memperlebar selisihnya.
  • Fund yang melacak indeks digunakan sebagai representasi indeks itu sendiri. Karena itu, biaya dan cash drag termasuk dalam angka-angka ini. Price return tahun kalender diukur dari penutupan pertama tahun tersebut hingga penutupan terakhir. Perhitungan ini mengeluarkan pergerakan pada sesi pertama.

FAQ price return vs total return

Apakah S&P 500 merupakan price index atau total return index?

Angka utama tersebut merupakan price index: indeks ini melacak nilai pasar konstituen dan mengabaikan dividennya. Versi total return dari indeks yang sama juga tersedia dan menginvestasikan kembali dividen tersebut. Benchmark dana umumnya menggunakan versi total return, sedangkan pemberitaan umumnya mengutip versi price index.

Seberapa besar kontribusi dividen terhadap return S&P 500?

Selama periode 10-year yang berakhir pada 31 Juli 2026, tracker yang digunakan di sini menghasilkan return 244.3% berdasarkan price return, dibandingkan dengan 304.5% jika dividen diinvestasikan kembali. Dalam satu tahun kalender, kontribusinya jauh lebih kecil, sekitar 1.9 poin dalam 2007.

Apakah akun brokerage saya menampilkan price return atau total return?

Dividen tunai masuk ke akun, sehingga saldo akun itu sendiri sudah mencakup dividen tersebut. Kolom gain suatu posisi sering kali hanya membandingkan harga saat ini dengan cost basis Anda, yang berarti price return. Keduanya berbeda sebesar dividen yang diterima, kecuali ada rencana reinvestasi yang membeli saham tambahan selama periode tersebut.

Apakah total return swap sama dengan total return?

Tidak. Total return swap merupakan kontrak derivatif bilateral yang menukar seluruh eksposur ekonomi suatu aset dengan financing rate. Total return dalam konteks indeks merupakan konvensi pengukuran kinerja. Kesamaan istilah tersebut merujuk pada gagasan dasar yang sama, yaitu price plus income, tetapi keduanya tidak berkaitan sebagai instrumen.

Mengapa kinerja dana terlihat lebih baik ketika dibandingkan dengan price index?

Angka yang dipublikasikan dana tersebut mencakup dividennya, sedangkan price index tidak memasukkan dividennya sendiri. Perbandingan itu memberikan keunggulan awal kepada dana sebesar aliran dividen benchmark, yakni 251.9 percentage points selama periode 20-year di atas.


Setiap angka di sini berasal dari stored query berversi yang menggunakan daily close dan catatan dividen yang telah diajukan. Buka panel mana pun untuk membaca SQL, atau jalankan perbandingan price return versus total return yang sama pada ticker yang Anda ikuti di terminal Strasmore.

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