Tell me more ×
Quantitative Finance Stack Exchange is a question and answer site for finance professionals and academics. It's 100% free, no registration required.

Yahoo Finance allows you to download tables of their daily historical stock price data.

The data includes an adjusted closing price that I thought I might use to calculate daily log returns as a first step to other kinds of analyses.

To calculate the adj. close you need to know all the splits and dividends, and ex-div and ex-split dates. If someone gets this wrong it should create some anomalous returns on the false vs. true ex dates.

Has anyone seen any major problems in the adj. closing price data on Yahoo Finance?

share|improve this question
Based on a quick check of some edge cases (stocks I hold and know, or stocks that have changed exchanges), it looks reasonably decent. – Tangurena Apr 24 '11 at 6:09
What about bloomberg? Have anyone found errors? – DBS Jan 2 '12 at 20:38

7 Answers

up vote 10 down vote accepted

Yahoo rounds the adjusted price to 2 decimals even though dividend amounts often have 3 decimal places. Since they apply the adjustment formula to adjusted prices, if you go far enough back in time, the value they give for Adjusted Price will be different than it would be if there were no rounding.

edit: For example, for C (Citigroup), on January 2, 1990, Yahoo gives a close value of 29.37 and an Adjusted value of 1.50. Using the dividend data that Yahoo supplies, if they didn't round to cents on every adjustment, the adjusted value would be 1.677.

share|improve this answer
2  
The quantmod function adjustOHLC() can calculate correct adjust prices, using dividend and adjustment data from yahoo. – Zach Jul 12 '11 at 16:29

Do not passively use Yahoo where you need reliable historical data; it will just fail at one point (from what I have seen due to corporate actions/dividends not properly implemented). Paying for a single alternative data source will not save you either (Bloomberg sometimes reports crazy intraday prices); the only way is to write some data cleaning routines (that will warn you if something strange happens), and to compare what several different providers say.

Welcome to the prehistory!

share|improve this answer
1  
Some story with Thomson. I helped them clean up lots of data. Glad we were paying for the privilege. – Steve Aug 9 '11 at 21:33
I've been more recently dealing with Yahoo data issues on this question. Seems Erwin is correct in his summary - you can't trust any one source implicitly! – Marcus Feb 6 at 7:25

Yahoo's historical data is sometimes missing dividends. For example: http://finance.yahoo.com/q/hp?s=VWINX&a=00&b=1&c=2010&d=11&e=20&f=2011&g=v (VWINX) is missing two dividends for 2011, though it has the ones for 2010.

Also, this paper: http://arxiv.org/PS_cache/arxiv/pdf/1105/1105.2956v1.pdf from 2010 reports Yahoo finance as missing a dividend in the 2007 data.

share|improve this answer

Yahoo data is not as clean as alternative data providers such as CSI. Some issues are: i) data for some tickers is missing, ii) incorrect data (rare but it does happen), iii) sometimes they fail to merge the price histories of firms that undergoe corporate actions (i.e. merger, acquisition, or changes in corporate headquarters).

share|improve this answer
my experience is that it beats by far the data quality found in many banks, including very reputed ones.. – nicolas Jul 9 '11 at 17:26
@nicolas I agree – silencer Jun 29 '12 at 23:18

I read your question as you planning to calculate the daily log return as

\begin{equation} \log{\frac{adj.close(t)}{adj.close(t-1)}} \end{equation}

which I think might be problematic as the adjusted close does not necessarily represent a "price" that would have been traded at in the past. I think it would be better if you used the adjusted close to derive the actual close value and calculate returns thus:

\begin{equation} \log{\frac{derived.actual.close(t)}{derived.actual.close(t-1)}} \end{equation}

share|improve this answer
2  
What if the stock had split at the open that day? – barrycarter Apr 8 '11 at 14:22
Close is available already, and won't include the effect of splits and dividends on the return. – Paul Apr 8 '11 at 22:49

Beyond these points and rounding errors, Yahoo (and others) have a fundamental error in how they adjust prices. This can easily be shown by taking the stock of your choice that pays dividends (and, for simplicity, has not had recent splits). Have your program or spreadsheet compute the difference between the close and the adjusted close. This number should be (exactly) the amount of dividends paid during the period. Even allowing for rounding errors, this number varies far too much from the "correct" number.

My speculation is that the data provider creates and stores an adjustment multiplier for efficiency of computation and data storage, but cash dividends are a strictly additive operation. (There is no meaningful number you can multiply a closing price by to "adjust" it for dividends, other than one that would hae to be uniquely calculated for each date, in which case, nothing is gained over simply the sum of the dividends paid). It is attractive to think that there might be a multiplicative factor that would be recomputed and stored on each dividend date, but I can't visualize one. Part of the attraction is that splits and dividends are handled in one computation.

The algorithm that they appear to use does seem to readjust itself back closer to the "true" number over time, and sometimes gets back to precisely correct, but not on any basis that I can spot. I am sure that the errors are much larger than rounding errors, but they are not too inaccurate over long time periods. I reported this to Yahoo Finance 6 months ago, but I don't think it was forwarded to the data supplier.

share|improve this answer
2  
-1 A swing and a miss. See help.yahoo.com/kb/…. – user508 Jul 29 '12 at 18:28
Prices cannot be adjusted by simply adding up the dividends paid in a period. For each dividend, you have to calculate what fraction of the price of the stock on the last day before ex it represents, and then adjust all prices and prior dividends before that ex date by the same fraction. – JL344 Jul 29 '12 at 18:40
Why on earth would you do that? The calculation you are describing has no connection to the real world. What is the significance of this "fraction"? – Howard Richoux Aug 7 '12 at 0:14

I understand your words, and I have previously studied the help reference you gave. What I don't understand is why they are correct (or not). Possibly my problem is that I can't find a precise definition of "adjusted price", and what its significance should be. My best guess is that the price is "adjusted" to reflect the "total return" of a stock purchased some time in the past. Then we have to define "total return", which I would say is the capital gain reflected in the current price versus the purchase price, plus the sum of all cash dividends received in the meantime. A stock split (dividend) does not directly contribute to either of these, it just makes them a bit harder to compute. This algorithm must be strictly additive - there is no number (that applies to more than one date) which you can multiply a closing price by to get an adjusted close.

IF those definitions are correct, I stand by my computational objections - the adjusted price SHOULD be the current price minus the sum of cash dividends paid. At MOST, the rounding error could be 1 cent in the stock prices (current and date being computed) plus 1 cent for each dividend payment due to rounding/truncation. Most of these could be easily avoided, so there should not be any large systematic errors in the computation.

If those definitions are not correct, PLEASE tell me what the definitions actually are, because the algorithm you cite with fractions mathematically assumes that there is some multiplying factor that can be computed on the "ex" date that can be used to compute some other day's adjusted price. I do believe that this is what is happening, but I do not see a definition of "adjustment" that makes this a meaningful number. Cash dividend checks are additive in nature, and are totally independent of the closing price on ANY particular date.

The trouble is, that there are discrepencies much larger than potential rounding errors.

(apparantly this is too long for a "comment" to the previous comment)

share|improve this answer
Whom is this aimed at? If your comment is too long, then perhaps don't post it. – chrisaycock Aug 1 '12 at 13:38
aimed at your response to my other post. I believe there is a problem with Yahoo's "adjusted price" computation and I am trying to figure out why it is computed the way it is. It just doesn't seem make sense mathematically. – Howard Richoux Aug 1 '12 at 16:53
I didn't respond to your other post. – chrisaycock Aug 1 '12 at 20:09
If you don't understand how something works, post a new question asking how it works instead of speculating. – user508 Aug 3 '12 at 21:28
that is the trouble - I think I understand how it ought to work, it is just that the algorithm Yahoo is using to compute the adjusted close does not produce correct results. – Howard Richoux Aug 7 '12 at 0:18

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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