Quantitative Finance Stack Exchange is a question and answer site for finance professionals and academics. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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
look at VZ div/split history as reported by yahoo: do you really think it is good data source after that? – lowtech Jan 21 '14 at 23:59
My favorite, they missed a 10:1 reverse split: finance.yahoo.com/q/bc?s=UUUU+Basic+Chart&t=5y – Peter Feb 18 '14 at 5:17
up vote 19 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
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
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 '13 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

There is a major bug when you are getting information from exchanges outside USA. If you get the adjusted prices for BOVESPA (Brazilian Stock Exchange) for example, it will only consider the events that happened using the US Calendar and not the Brazilian calendar of working days, this leads to a lack of information on other exchanges.

Be aware of this if you are retrieving information for other exchanges.

share|improve this answer

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
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

Yahoo data is good enough, but it has its quirks. As people have mentioned, sometimes it does miss out on corporate actions.

I remember a while back I was looking at price for Ford (F) around 1999 , and computing my own adjusted close using yahoo's methodology and noticed that yahoo was missing a dividend payment in 1999(which I verified from bloomberg). Interestingly enough, yahoo had incoporated that missing data point in their adjusted price calculation.

Point being, its not perfect but its good enough ( in 99% of the cases). It might be a good idea to purchase EOD data so you can atleast get them to fix any issues with it.

share|improve this answer

Yahoo Historical Prices will seem fine for a while, and then you'll discover missing dates, or that it stops getting updated for a week or so.

share|improve this answer

Errors in some data can cause the calculation to go awry. For EPD, I have reported that they believe the stock had a 2:1 split on August 21, 2014 and on August 22, 2014. Only one of these splits occurred, so all the split adjusted data is off by a factor of 2 before the split that did not happen. I reported this error in August, but in November I noticed the error is still there. This error really screws up my own software that depends on the data.

share|improve this answer

Your Answer


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.