Price Return বনাম Total Return: আসল পার্থক্য
S&P 500-এর headline index-এ লভ্যাংশ ধরা হয় না। 20 বছরে price return ও total return-এর যৌগিক ব্যবধান এবং কোনটি কোথায় ব্যবহৃত হয়, তা জানুন।
মূল্য রিটার্ন বনাম মোট রিটার্ন বলতে বাজারের চার্টে দেখানো ফলাফল এবং একই পজিশন ধরে রাখা কোনো বিনিয়োগকারী বাস্তবে যা আয় করেছেন—এই দুটির পার্থক্য বোঝায়। মূল্য রিটার্নে শুধু দামের পরিবর্তন ধরা হয়। মোট রিটার্নে প্রতিটি লভ্যাংশ ex-dividend তারিখের দামে পুনঃবিনিয়োগ করে হিসাব করা হয়। ফলে প্রতিটি পেআউট সেই লভ্যাংশ উৎপন্ন করা শেয়ারগুলোর সঙ্গে যৌগিক হারে বাড়তে পারে।
সংবাদে উদ্ধৃত S&P 500-এর প্রধান সূচকস্তরটি একটি price index। এর total-return সংস্করণ একই কোম্পানিগুলো ধরে রাখে এবং লভ্যাংশ পুনরায় বিনিয়োগ করে। এক বছরের সময়কালে দুটি ফলাফল প্রায় একই রকম দেখায়। কিন্তু 20 বছরে তারা সম্পূর্ণ ভিন্ন ফলাফল নির্দেশ করে। তাদের ব্যবধান বার্ষিক yield দেখে যতটা মনে হয়, তার চেয়েও বেশি।
Price return এবং total return-এর মধ্যে পার্থক্য কী?
Price return হলো শেষের দামকে শুরুর দাম দিয়ে ভাগ করে 1 বিয়োগ করা। টেলিভিশনে দেখানো প্রতিটি index level এবং আপনি দেখা প্রতিটি price chart-এ এই সংখ্যাই থাকে।
Total return একই হিসাব করে, তবে প্রতিটি নগদ dividend ex-dividend date-এ থাকা দামে আরও শেয়ার কিনতে ব্যবহার করা হয়। Fund performance table এবং যে benchmark index-এর সঙ্গে ওই fund-এর কর্মদক্ষতা তুলনা করা হয়, সেগুলো এই পদ্ধতি ব্যবহার করে।
একটি কাল্পনিক উদাহরণে বিষয়টি স্পষ্ট হয়। $100 দামে একটি শেয়ার কিনলেন। শেয়ারটি বছরে $2 dividend দেয়। এক বছর পরে $105 দামে বিক্রি করলেন। Price return হলো 5%। Total return প্রায় 7%। প্রথম বছরটি ব্যতিক্রমী নয়। আসল পার্থক্য তৈরি হয় compounding-এর কারণে। পুনর্বিনিয়োগ করা $2 দিয়ে আরও একটি শেয়ারের ভগ্নাংশ কেনা হয়। পরের বছর ওই ভগ্নাংশও নিজস্ব dividend পায়। এভাবে দুইটি হিসাবের ফল দ্রুত আলাদা হতে থাকে।
ডেটায় যাওয়ার আগে একটি বিষয় স্পষ্ট করা দরকার। Total return swap হলো একটি derivative contract, যেখানে এক পক্ষ financing rate-এর বিনিময়ে কোনো asset-এর সম্পূর্ণ অর্থনৈতিক ফলাফল অন্য পক্ষকে দেয়। নিচে বর্ণিত index convention-এর সঙ্গে এর নামের মিল ছাড়া আর কোনো সম্পর্ক নেই। এই পৃষ্ঠার বাকি অংশ index এবং fund নিয়েই আলোচনা করছে।
S&P 500-এ ব্যবধান কতটা বড়?
2005 সালের শেষে বৃহত্তম S&P 500 tracker-এ $10,000 বিনিয়োগ করে 2026 সালের July 31 পর্যন্ত ধরে রাখা হয়েছে। প্রথম লাইনে প্রতিটি লভ্যাংশ পাওয়ার দিনই নগদ হিসেবে নেওয়া হয়েছে। দ্বিতীয় লাইনে প্রতিটি লভ্যাংশ ওই দিনের closing price-এ পুনর্বিনিয়োগ করা হয়েছে।
প্রতিটি সংখ্যার পেছনের সঠিক 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শুধু দামের ভিত্তিতে হিসাব করা লাইনটি শেষ হয়েছে $59956-এ। পুনর্বিনিয়োগ করা লাইনটি শেষ হয়েছে $85775-এ। ওই শেষ ব্যালান্সের 30.1% এসেছে লভ্যাংশ থেকে, অথচ এর কোনো অংশ price chart-এ দেখা যায় না।
চার্টের বাম প্রান্তেই বিষয়টি অনেকের চোখ এড়িয়ে যায়। 2007-এর শেষে দুটি লাইন ছিল যথাক্রমে $11755 এবং $11971-এ; তখন লভ্যাংশের মূল্য ছিল ব্যালান্সের 1.8%। প্রথম বছরে এত ছোট ব্যবধান সহজেই rounding detail হিসেবে উপেক্ষিত হয়। কিন্তু একই rounding detail 20 বছর ধরে চলতে থাকে এবং প্রতিবার আগেরটির ওপর compounding হয়। এর ফলেই ডান প্রান্তে এই spread তৈরি হয়।
সময়ের সঙ্গে কি ব্যবধান বাড়তেই থাকে?
একই ফান্ড, একই শেষ তারিখ, পাঁচটি ভিন্ন শুরুর তারিখ।
প্রতিটি সংখ্যার পেছনের সঠিক 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.years1-year সময়সীমায় price return ছিল 18.2%, আর total return ছিল 19.5%। ব্যবধান ছিল 1.3 percentage points। 10-year সময়সীমায় 244.3% এবং 304.5%-এর ব্যবধান 60.2 points। 20-year সময়সীমায় দুটি পরিমাপ ছিল 485% এবং 736.9%। ব্যবধান ছিল 251.9 percentage points।
বক্ররেখাটি সরলরেখার মতো ঊর্ধ্বমুখী হয় না। এটি ব্যালান্সের মতো বাড়ে, কারণ পুনর্বিনিয়োগ করা প্রতিটি লভ্যাংশ মূলধনের সঙ্গে যুক্ত হয় এবং পরবর্তী লভ্যাংশ সেই বর্ধিত ভিত্তির ওপর চক্রবৃদ্ধি হারে বাড়ে।
এক বছরের লভ্যাংশ কেন তুচ্ছ মনে হয়
এখানে একই সময়সীমার প্রতিটি ক্যালেন্ডার বছর দেখানো হয়েছে। মূল্যপরিবর্তন এবং লভ্যাংশের অবদান আলাদা করে দেখানো হয়েছে।
প্রতিটি সংখ্যার পেছনের সঠিক 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দুটি সিরিজ একসঙ্গে দেখুন। মূল্যরেখাটিই বেশি দৃশ্যমান। এটি উভয় দিকেই তীব্র ওঠানামা করে। লভ্যাংশের রেখাটি তুলনামূলকভাবে নীরব: 1.9 পয়েন্ট 2007-এ, জুলাই পর্যন্ত আংশিক বছরে 0.58 পয়েন্ট 2026-এ, এবং মাঝের কোনো সময়েই এটি প্রধান বিষয় নয়। ওই প্যানেলের কোনো একটি সারি একাই কারও মতামত বদলানোর মতো নয়। কিন্তু 20টি সারিতে একত্রে সঞ্চিত এবং পুনঃবিনিয়োগ করা হলে, প্রথম চার্টের দুটি রেখার মধ্যকার পুরো ব্যবধান এই ছোট সংখ্যাগুলোই তৈরি করে। লভ্যাংশ পুনঃবিনিয়োগের অর্থ হলো, সেদিন যে মূল্যই থাকুক, স্বয়ংক্রিয়ভাবে সেই মূল্যে কেনা। এটি ডলার কস্ট অ্যাভারেজিং-এর কাছাকাছি একটি পদ্ধতি। একই কারণে S&P 500-এর লভ্যাংশের ফলন একটি পরিমিত সংখ্যা হিসেবে দেখা যায়, অথচ দীর্ঘ সময়সীমায় এর আকারের তুলনায় এর প্রভাব অনেক বেশি।
কোন শেয়ারগুলোতে ব্যবধান সবচেয়ে বেশি?
এই ব্যবধান yield-এর সঙ্গে সামঞ্জস্যপূর্ণ। প্রতি ডলার দামের বিপরীতে যে কোম্পানি বেশি অর্থ ফেরত দেয়, সেই শেয়ারধারী পুনর্বিনিয়োগের জন্য বেশি অর্থ পান। 31 July 2026 পর্যন্ত 10 বছরে পরিচিত 7টি নামের বার্ষিকীকৃত ফল এখানে দেখানো হয়েছে, যাতে সময়সীমাগুলো তুলনাযোগ্য হয়।
প্রতিটি সংখ্যার পেছনের সঠিক 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 DESCVZ-এর বার্ষিক ব্যবধান 7-টির মধ্যে সবচেয়ে বেশি, প্রতি বছর 5.46 percentage point। শুধু দামের ভিত্তিতে annualized ফল -1.51%, আর dividends পুনর্বিনিয়োগ করলে তা 3.96%। MSFT-এর ব্যবধান সবচেয়ে কম, 1.53 point। চার্ট তুলনা করার সময় এর দুটি দিক মনে রাখা দরকার। একটি price chart উচ্চ dividend প্রদানকারী শেয়ারের পারফরম্যান্সকে নিম্ন dividend প্রদানকারী শেয়ারের তুলনায় অনেক বেশি কম দেখায়। আর price performance-এর ভিত্তিতে নামগুলোর ranking করা কোনো screen নীরবে dividend প্রদানকারী শেয়ারগুলোর অবস্থান নিচে নামায়। এই নামগুলোর পেছনে থাকা dividend yield-ই ব্যবধানের আকার নির্ধারণ করে।
কোন ক্ষেত্রে কোন সংস্করণ ব্যবহার করা হয়
- Benchmark এবং fund fact sheet-এ total return উল্লেখ করা হয়। "Total Return Index", "TR" suffix অথবা fine print-এ "net dividends reinvested" নোট—সবগুলোর অর্থ হলো, লভ্যাংশ হিসাবের মধ্যে অন্তর্ভুক্ত।
- Financial media এবং quote screen-এ price return ব্যবহার করা হয়। "The S&P 500 closed up 0.4%" বলতে দামের পরিবর্তন বোঝায়।
- Brokerage-এর performance tab সাধারণত account-এর জন্য total return দেখায়, কারণ নগদ অর্থটি বাস্তবে সেখানে জমা হয়েছে। কোনো single position-এর gain column-এ প্রায়ই cost basis-এর তুলনায় price change দেখানো হয়। এটি একই figure নয়।
- Backtest এবং strategy write-up-এ লেখকের data feed যে সংস্করণ সরবরাহ করেছে, সেটিই ব্যবহার করা হয়। অনেক সময় এ কারণেই track record নীরবে অতিরঞ্জিত হয়।
যে অমিলটি গুরুত্বপূর্ণ, তা হলো কোনো fund-এর total return-কে price index-এর পাশে রাখা। Fund নিজের লভ্যাংশের জন্য credit পায়, কিন্তু benchmark নিজের লভ্যাংশের কোনো credit পায় না। ফলে index-এর পুরো dividend stream-এর সমান অগ্রিম সুবিধা fund-এর হাতে চলে যায়। উপরের 20-year সময়কালে এই ভুল হিসাবের মূল্য 251.9 percentage points। এর একটিও manager-এর কারণে আসেনি। সঠিক তুলনায় total return-এর পাশে total return রাখা হয়। মাসিক রিটার্ন কীভাবে মাপা হয় মাসিক পর্যায়ে একই হিসাব দেখায়। আর সেরা দিনগুলো বাদ পড়লে দেখায়, কয়েকটি trading session বাদ দিলে price line-এর কী হয়।
এই সংখ্যাগুলো কীভাবে তৈরি করা হয়েছে
- Price হলো প্রতিদিনের regular-session closing price। Dividend হলো নথিভুক্ত cash distribution। প্রতিটি dividend তার ex-dividend date-এর closing price-এ reinvest করা হয়েছে। Total return series তৈরির এটিই standard convention।
- সময়কাল December 2005 থেকে July 31, 2026 পর্যন্ত। এই সময়সীমাই panel-গুলোর পেছনে থাকা intraday price history-তে অন্তর্ভুক্ত। আরও দীর্ঘ সময়কাল নিলে ব্যবধান আরও বাড়ে।
- Index-কে অনুসরণ করা একটি fund-কে index-এর proxy হিসেবে ধরা হয়েছে। তাই fee এবং cash drag এই figure-গুলোর মধ্যেই অন্তর্ভুক্ত। Calendar-year price return বছরের প্রথম close থেকে শেষ close পর্যন্ত মাপা হয়। এতে প্রথম session-এর price move বাদ পড়ে।
Price return বনাম total return: সাধারণ প্রশ্নোত্তর
S&P 500 কি price index, নাকি total return index?
শিরোনামে ব্যবহৃত সংখ্যাটি একটি price index। এটি সূচকের উপাদানগুলোর বাজারমূল্য অনুসরণ করে, কিন্তু তাদের লভ্যাংশ হিসাব করে না। একই সূচকের একটি total return সংস্করণও আছে, যেখানে লভ্যাংশ পুনঃবিনিয়োগ করা হয়। ফান্ডের benchmark সাধারণত total return সংস্করণ ব্যবহার করে। তবে সংবাদ প্রতিবেদনে সাধারণত price সংস্করণের সংখ্যা উদ্ধৃত হয়।
লভ্যাংশ S&P 500-এর রিটার্নে কতটা যোগ করে?
31 July 2026-এ শেষ হওয়া 10-year সময়পর্বে এখানে ব্যবহৃত tracker লভ্যাংশ বাদ দিয়ে 244.3% price return দিয়েছে। লভ্যাংশ পুনঃবিনিয়োগ করলে রিটার্ন হয়েছে 304.5%। একটি মাত্র calendar year-এর মধ্যে এর অবদান অনেক কম, প্রায় 1.9 পয়েন্ট, 2007-এ।
আমার brokerage account-এ price return দেখানো হয়, নাকি total return?
নগদ লভ্যাংশ account-এ জমা হয়। তাই account balance-এ লভ্যাংশ ইতিমধ্যে অন্তর্ভুক্ত থাকে। তবে position-এর gain column প্রায়ই বর্তমান price-এর সঙ্গে আপনার cost basis-এর তুলনা করে। সেটি price return। পথে কোনো reinvestment plan-এর মাধ্যমে অতিরিক্ত শেয়ার কেনা না হলে, দুটি সংখ্যার পার্থক্য ঠিক প্রাপ্ত লভ্যাংশের সমান হয়।
Total return swap কি total return-এর একই বিষয়?
না। Total return swap হলো একটি bilateral derivative contract, যেখানে কোনো asset-এর সম্পূর্ণ অর্থনৈতিক ফলাফল একটি financing rate-এর বিনিময়ে বদল করা হয়। Index-এর ক্ষেত্রে total return হলো performance মাপার একটি পদ্ধতি। দুটি পরিভাষায় price-এর সঙ্গে income যোগ করার একই ধারণা বোঝায়। কিন্তু instrument হিসেবে তারা পরস্পর সম্পর্কহীন।
Price index-এর সঙ্গে তুলনা করলে কোনো fund-কে কেন ভালো দেখায়?
Fund-এর প্রকাশিত সংখ্যায় তার লভ্যাংশ অন্তর্ভুক্ত থাকে। অন্যদিকে, price index নিজের লভ্যাংশ বাদ দেয়। ফলে তুলনাটি fund-কে benchmark-এর dividend stream-এর সমান একটি প্রাথমিক সুবিধা দেয়। উপরের 20-year সময়পর্বে এই সুবিধা 251.9 percentage points।
এখানে প্রতিটি figure daily close এবং filed dividend record-এর ওপর তৈরি একটি সংরক্ষিত, versioned query থেকে নেওয়া। যেকোনো panel খুলে SQL দেখুন। অথবা Strasmore terminal-এ আপনি অনুসরণ করেন এমন কোনো ticker-এর জন্য একই price-versus-total-return তুলনা চালান।