The Analyst's Path

Price return vs total return

Price return is the change in a share's price alone. Total return also counts the dividends the investor received, and the growth from reinvesting them. The two drift apart because the price drops on every ex-dividend date although no value is lost, so a price series understates what an investor actually earned. Analysts need to know which of the two a data feed gives them.

3 min readPart of Market & Fundamental Data Pipelines + Vendor LandscapeOpen in course mode

Advertisement

A cash dividend produces a smaller but structurally identical trap, and it is the more consequential one over a long horizon because dividends recur every quarter or every year, while a given company might split its stock only a handful of times in a decade. On the ex-dividend date, a stock's price mechanically drops by (approximately) the dividend amount, again, no value was destroyed; the cash simply moved from the company's balance sheet into the shareholder's pocket, and the share's ex-dividend value is correctly lower by the amount of cash that left. A pipeline that ignores this and only ever looks at the raw closing price will report every ex-dividend date as a small, spurious loss, and, far more consequentially over years of compounding, will report a price-return series that permanently and silently understates the investor's actual, lived total return, because the investor also received the dividend in cash and, if they reinvested it, compounded on it.

Advertisement

How do you adjust a price series for a dividend?

The standard adjustment mirrors the split case with one twist: instead of a fixed ratio, you compute a factor from the dividend amount relative to the price it was paid against. Take a fictional NILAM series with a ₹20 dividend (a plausible ~2% yield on a ₹1,000 share): raw closes [1224.00, 1200.00, 1000.00, 981.00, 985.00], ex-dividend at index 3, so the reference "previous close" is closes[2] = 1000.00. The adjustment factor is 1 − dividend / prev_close = 1 − 20/1000 = 0.98. Every close before the ex-date multiplies by that factor: 1224.00 × 0.98 = 1199.52, 1200.00 × 0.98 = 1176.00, 1000.00 × 0.98 = 980.00; the ex-date close and everything after: 981.00, 985.00, is left untouched, because it already reflects the post-dividend reality. A US companion example on a fictional CRSTNE (Crestone Financial Corp, $, illustrative), a financials name where dividends are routine: raw closes [153.00, 151.00, 150.00, 147.75, 148.50], a $2.25 dividend ex-date at index 3 against a prior close of $150.00 (a 1.5% yield), factor 1 − 2.25/150 = 0.985, adjusting the first three closes to 150.705, 148.735, 147.75. This is Exercise 2: adjust_for_dividend(closes, ex_div_index, dividend).

Price-return series vs total-return series

Hold the vocabulary precisely, because it is load-bearing for the rest of this branch: a series adjusted only for splits (never for dividends) is still a price-return series, it correctly measures the change in share price, but it silently omits every dividend an investor actually received. A series adjusted for both splits and dividends is a total-return series, the number a real investor's account balance would actually track. Vendor feeds routinely offer both, under names that vary by vendor (adj_close frequently means split-only in one vendor's convention and split-and-dividend in another's, this is exactly the kind of vendor-specific gotcha the rest-of-the-mess section returns to). Never assume; always check the vendor's own documentation for what "adjusted" means in their feed, and never compare an "adjusted close" from one vendor against another's without first confirming they mean the same adjustment.

Advertisement

Part of the course

This page is part of Market & Fundamental Data Pipelines + Vendor Landscape (QD1.01), in Phase 12: Finance Plus, AI and the quant-code track. The module's flashcards and its quiz are in the app.