I'm trying to understand why the total return (return including dividends) that I get from calculating return using adjusted close price, does not equal the total return calculated in another manner.

My example is SNMP in the month of Aug 2018 (simply because it has a large price movement and pays a large dividend, so differences get amplified).

Looking at adjusted prices from yahoo (adjusted prices match Bloombergs) I calculate the total return as

(9.25 / 11.2570) - 1 = -17.83%


To compare I calculate the total return I would have experienced if I had invested $100 on 7/31.

Start = 100   
PnL from unadjusted price change = 100 * ((9.25 / 11.75) - 1) = -21.2765
PnL from Div = (100 / 11.75) * 0.451 = 3.8383
PnL from Div reinvestment = 3.8383 * ((9.25 / 9.95) - 1) = -0.2700
End = 100 - 21.2765 + 3.8383 - 0.2700 = 82.2918
% Ret = (82.2918 / 100) - 1 = -17.71%

This matches the total return I get from Bloomberg and from https://www.dividendchannel.com/drip-returns-calculator/. But not the total return I calculated using adjusted prices above. The question is why not?

I dont think this is just a rounding error as the adjusted open price appears to have 4 digits of accuracy, and I have to tweak by more than 0.01 to make it match.

  • $\begingroup$ The total returns calculators you are using may fall down a bit for a stock like this. SNMP opened at 10.45 on August 20 and closed at 9.95. That's quite a change (nearly 5%). There will be a difference in your total return depending on when you reinvested the cash. The adjusted close just subtracts the dividend from the closing price on the ex-dividend date. $\endgroup$ Nov 1 '18 at 11:41

It is indeed no rounding error, but follows from the way Yahoo computes the adjusted price: it does not reflect the actual returns of the investor.

Just look at August 17 and 20. The actual close prices were 10.75 and 9.95. On August 20 the company went ex-dividend for an amount 0.4508.

The return on that day is $\frac{P_t+D_t}{P_{t-1}} -1 = \frac{9.95+0.4508}{10.75}-1=-0.032483$.

What Yahoo does: $\frac{P_t}{P_{t-1}-D_t} -1 = \frac{9.95}{10.75-0.4508}-1=-0.0339055$.

Thus, their backward-adjusted price is $10.75-0.4508 = 10.2992$, which one could argue is simply wrong. But then, they probably never claim that it properly reflects returns.

By the way, since you mention Bloomberg: it does the same thing. If you ask for PX_LAST and have DPDF set to adjust dividends, you get the same adjusted price as Yahoo. If you retrieve a field like TOT_RETURN_INDEX_NET_DVDS, you get a properly adjusted price.

  • $\begingroup$ Is there a correct way to backward adjust prices for dividends (TOT_RETURN_INDEX forward adjusts)? I also tried the method here stockcharts.com/docs/doku.php?id=policies:adjusted_data which is applying a multiplier to the days before ex-dividend. But that is also giving -17.83%. $\endgroup$ Nov 1 '18 at 20:49
  • 1
    $\begingroup$ The return-preserving way to adjust prices is to start with returns: first compute a series of total returns; then chain them together S = (1+r_1)*(1+r_2)...; and then you may scale this series to any desired price level. Suppose you want to adjusted series to match the final price P_T, then divide every element in S by S_T and multiply by P_T. In case you use R, an implementation is in the PMwR package (which I maintain): enricoschumann.net/R/packages/PMwR/manual/PMwR.html#dividends $\endgroup$ Nov 2 '18 at 7:32
  • $\begingroup$ I have come up with another technique: Take the current days return and go backwards by backing out the prior days return. P0 = P1 / (R0+1) On dates with dividends adjust R0 to include the dividend: R0Div = (1+R0)*(1+Div / P0_unadj)-1. I get the same adjusted prices as Enricos method. Strange that market data providers dont use this method. $\endgroup$ Nov 2 '18 at 15:34
  • $\begingroup$ Both are right on the context, but the Yahoo is the actual de facto way most total returns indices are calculated. Yahoo way is similar to futures adjustment, where you are selling a a stock and buying an ex-dividend stock etc. $\endgroup$
    – uday
    Nov 13 '18 at 14:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.