Recently I've started gathering some end-of-day (EOD) prices data for my testing. The first obvious place where such data is freely available is Yahoo Finance site. However I've noticed that many data providing companies sell this data, and not so cheap. So my question is: why would anyone purchase this data if it is freely available on Yahoo? One of my assumptions would be the data packaging (as Yahoo only allows you to download the data file-by-file) but then there are dozens of downloaders freely available on the nets. So do I miss something? Is this Yahoo data not reliable enough?
There are several reasons to pay for data instead of using Yahoo Finance, although these reasons don't necessarily apply to you if you're only planning to use the data for personal use.
Yahoo will throttle you if you attempt to download too much data in a short time period. You can opt to use the Yahoo Query Language (YQL), which does provide another interface to their financial data apart from simply downloading the CSV files. Although the rate limit is higher for YQL, you may still run into it. An API that a paid data provider exposes will likely have higher thresholds.
Although the reliability varies throughout the site, Yahoo Finance isn't considered the most reliable of sources. You can't beat free, of course, but at least for research purposes, the Center for Research in Security Prices (CRSP) at UChicago and Wharton is considered the gold standard. On the commercial side, data providers like eSignal, Bloomberg, Reuters also enjoy widespread popularity.
If you're designing a commercial application, a paid provider will probably provide technical support for their API.
According to Yahoo Finance's license terms, you can't use the data in a commercial application unless you specifically use their "badges" (whatever those are). See here. In this post, a Yahoo employee states:
The Finance TOS is fairly specific. Redistribution of data is only allowed if you are using the badges the team has created.
Otherwise, you can use YQL or whatever method to obtain data for personal use.
The license itself states that you may not:
sell, lease, or sublicense the Yahoo! Finance Modules or access thereto or derive income from the use or provision of the Yahoo! Finance Modules, whether for direct commercial or monetary gain or otherwise, without Yahoo!'s prior, express, written permission
In short, for personal use, Yahoo Finance is more than adequate. For research or commercial purposes, a data provider is a better option. Furthermore, many commercial applications require more data than Yahoo provides, e.g. tick-by-tick data for equities, derivatives, futures, data on mergers, etc., which a paid data source will likely provide.
Yahoo is also known for inaccuracies in its financial statements; I can't find any examples at the moment, but I had a professor who enjoyed pointing out flaws in the 10K's that he had come across. I've always assumed this is because the data were manually entered, although I would assume EDGAR has some method for automatic retrieval. If you want data that are guaranteed to be accurate, or at least have a support contract associated with them so you know who to bother if it isn't, you'll need to pay for it.