# Any known bugs with Yahoo Finance adjusted close data ?

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?

• Based on a quick check of some edge cases (stocks I hold and know, or stocks that have changed exchanges), it looks reasonably decent. Commented Apr 24, 2011 at 6:09
• What about bloomberg? Have anyone found errors?
– DBS
Commented Jan 2, 2012 at 20:38
• look at VZ div/split history as reported by yahoo: do you really think it is good data source after that? Commented Jan 21, 2014 at 23:59
• My favorite, they missed a 10:1 reverse split: finance.yahoo.com/q/bc?s=UUUU+Basic+Chart&t=5y Commented Feb 18, 2014 at 5:17

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.

• The quantmod function adjustOHLC() can calculate correct adjust prices, using dividend and adjustment data from yahoo.
– Zach
Commented Jul 12, 2011 at 16:29
– HCSF
Commented Jun 13, 2021 at 9:53

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!

• Some story with Thomson. I helped them clean up lots of data. Glad we were paying for the privilege. Commented Aug 9, 2011 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!
– LJW
Commented Feb 6, 2013 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.

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

• my experience is that it beats by far the data quality found in many banks, including very reputed ones.. Commented Jul 9, 2011 at 17:26
• @nicolas I agree Commented Jun 29, 2012 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.

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

$$\log{\frac{adj.close(t)}{adj.close(t-1)}}$$

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:

$$\log{\frac{derived.actual.close(t)}{derived.actual.close(t-1)}}$$

• What if the stock had split at the open that day?
– user59
Commented Apr 8, 2011 at 14:22
• Close is available already, and won't include the effect of splits and dividends on the return.
– Paul
Commented Apr 8, 2011 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.

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.

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.