Comprehensive Financial Database and Scraping Financial Statement Data

This page describes how to use the database that scrapes financial data from the internet and creates historic databases of P/E ratios, EV/EBITDA ratios and other multiples as well as financial statements and cost of capital analysis. The financial statements, ratio analysis and cost of capital analysis that you can download are detailed and can be used as the basis corporate financial models. All you do is enter some ticker symbols, then wait as the download proceeds, and you will get a database with valuation multiples and financial statements.  The database can be used to generate historic financial statements for a financial models and it will present different multiples such as the P/E, P/B, EV/Invested capital and EV/EBITDA.

The databases that you can download below retrieve data from the internet (Market Watch and Yahoo finance) and present historic multiples for at least five historic years along with financial data like ROIC, ROE, Price to Book and other ratios like the growth rate in revenues and EBITDA. The databases are flexible meaning that you can pick your ticker symbols, press a button, patiently wait for a while and you get a comprehensive financial database.

Why the Financial Database is a Big Deal

You maybe saying to yourself what is the big deal; I can get so much data from the internet anyway (or maybe you pay scads of money to Bloomberg). You can indeed get amazing financial data websites like Market Watch for free including historic financial statements and analyst earnings projections. But key information is missing. Take the case of Market Watch. While historic financials are reported, Market Watch does not allow you to download stock prices so you can compute historic P/E ratios etc. Also Market Watch reports 2.5 billion as 2.5B and you need to adjust for the B,M and even T for trillions. Yahoo Finance has a lot of data also, in particular for stock prices. But the financial statement data is not as detailed and, again, the historic ratios for things ranging from ROIC to forward P/E are not available. Further, after may 2017, yahoo data is a pain to download.

The ability to scrape valuation multiples, cost of capital and historic financial data is, I believe, one of the most important items on my website. As shown below, in one of the pages you can set-up your financial forecast; in another one of the pages you can review a whole bunch of ratios for a company to get a background for valuation and forecasting; in other pages you can create valuation analyses from comparative multiples; in yet other pages you can develop cost of capital analysis that is far better than the traditional CAPM B.S.

Step by Step Use of File in Case with A Couple of Companies without Exchange Rate Issues

In this section I describe how to use the financial database in a simple case.  I hope this takes away any intimidation you may have about using the file. If you want to follow along with this you can start from a blank sheet.  Putting a few companies into the file should only take a few minutes.  You can download the Financial Database with examples and without tickers filled by clicking on the button below.

File with Database that can be Updated with Tickers that Produces Historic Multiples, Historic Financials and Other Statistics

File with Structure for Creating Financial Database that Displays Historic P/E, EV/EBITDA etc. as well as Historic Statements

You can create the financial database that includes historic multiples, cost of capital analysis and historic financial data structured for financial models by entering ticker symbols on the first page of the spreadsheets available for download below. The historic database can also be used for cost of capital analysis and many other analytical tasks.

 

Step 1: Clear the Sheets

To work through a case using the financial database from A-Z first clear the data in the sheets. You can do this by pressing the box named “Clear Sheets” on the menu sheet as shown in the screenshot below. When you press this button, all of the sheets after the sheet named “Break Sheet” will be deleted.  (Do not delete the sheet named Break Sheet or the Clear Sheets macro will not operate properly.)

 

Step 2: Enter Ticker Symbols in Menu Sheet

After clearing the sheets, enter the ticker symbols on the menu sheet.  Finding the appropriate ticker symbols can be the most time consuming part of the process. This can be a bit painful for companies outside of the US where the company has an ADR stock price as well as a stock price in local currency.  For the simple example to start with, I have entered three ticker symbols for U.S. companies as shown in the screenshot below.  As the currency is USD and no special adjustments are necessary, you can use 1.0 in column C.  Finally, change the TRUE and in column H and use TRUE for selected companies that you want to download information for.

 

 

If you want to use and existing set of tickers such as for the Dow 30 stocks, you can also go to the bottom of the sheet where I have put in some examples of companies to use.  To use the selected companies, just copy the ticker symbols in to column D and column F of the menu sheet and then copy the company names into column B. You can also copy the currency adjustment factors into column C which will normally be 1.0 except for UK companies and the pence/pounds problem as well as companies that do not have stocks in local currency on yahoo.

For the selected companies I have included the ticker symbols and potential adjustments for currencies (one of the horrible examples is that Yahoo Finance uses Pence for UK companies while Market Watch uses Pounds. This means when comparing earnings to stock price and other statistics, an adjustment is required.)  Another problem occurs for Japanese companies where Yahoo does not report stock prices in Yen.

Step 3: Download Data by Pressing Buttons on Menu Sheet

After you have collected the ticker symbols, you can run the three downloading buttons (the third of which is not be necessary unless you are making a CAPM analysis). The screenshot below shows the buttons that you press on the menu sheet.  After you press the buttons, there should be a message at the bottom of the sheet that shows which URL is being scrapped.  This is illustrated in the second screenshot. Please do not forget to clear the sheets first.  Reading the financial data may take a long time and it may be a good idea to even re-start your computer or get more RAM.

 

 

Finding the correct tickers on Market Watch and Yahoo can be the most time consuming part of the process for companies outside of the US where the company has an ADR stock price as well as a stock traded on a local exchange. As explained below, the Market Watch financials are expressed in the local currency of the company.  This means that to compare the company to stock prices, the stock prices must also be expressed in the same local currency.

 

 

Step 4: Review the Data

The screenshot below shows the results of one of the website scrapes that is put in a separate sheet. Note that the revenues have a B behind the numbers and other numbers have M behind.  Because of this, a function is used to summarise the data.

 

 

 

Explanation of How to Collect Tickers and Download Data

The thing that takes me the most time in structuring the database on historic financial data is simply to find the appropriate ticker symbols.  For companies like those in the Dow 30, you can just google the Dow 30 and get the list of companies.  The ticker symbols for these companies are the same in Yahoo and Market Watch.  So, you can google the name of the company along with yahoo finance.  For companies that are not in the US and primarily trade on other exchanges, the process is a little more complex. Take for example the case of EDF in France.  You can google EDF Market Watch and find the ADR.  When you look at the financials in Market Watch you will see that financial statements are in Euro and not in USD.  This means when you get the stock price from Yahoo, you must also get the data in Euro.  So you must get the ticker symbol from Yahoo that uses Euro for stock prices (rather than the ADR).

The case is illustrated below for a UK company called Interserve.  When you make a google search for the company with Market Watch,  a couple of options appear.  Note in the screenshot below there are different ticker symbols for Interserve. You cannot simply take the first option without checking the Market Watch site to see which of the tickers includes the financial statements.

 

 

The screenshot below shows the Market Watch site using the IRV ticker symbol.  Note that you do not see any financial statements.  The URL in the screenshot shows that the URL is IRV.  But when you look at the page, you can see a menu that includes items for “OVERVIEW” and for “CHARTS.”  But in the menu, there is no “FINANCIALS” option. When you see no financial statements, there will be nothing to download and if you use this IRV ticker in the financial database, there will be no financial statements for the company.

 

 

In the screenshot below, the ISVJF ticker is used as shown in the URL at the top.  Now the menu on the page includes FINANCIALS after the “OVERVIEW”.  Because the FINANCIALS are included, this ticker ISVJF should work in the file while the ticker in the above file will not work.  Note that because the company is in London, the financials are in Sterling and not in USD.

 

 

The financials in GBP are shown in the screenshot below. I have circled the currency of the financials.  As the financials are in GBP, the stock price must be in the same currency as stated above.

 

One of the main aspects of the financial database is combining stock prices with the financials to compute things like P/E, EV/EBITDA and Price to Book.  Market Watch does not (to my knowledge) have stock prices that can be easily downloaded. This is why I use the Yahoo website.  When you look for the Interserve stock price you find something like the following.  Notice that I have circled the ticker with the .L at the end.

The screenshot below shows the IRV.L in Yahoo.  Note how the price is in GBP. Note that even though the Yahoo site states that the price is in GBP.  But the price is really in pence.  This means that when you make calculations like Price to Book Ratio, the book value per share is pounds and the stock price is in pence.  This means the ratio must be divided by 100.

 

 

For some companies such as TEPCO in Japan, you can get the financials from Market Watch in Yen.  But for Yahoo, the stock prices are not reported in Yahoo (only in USD).  In this case you can enter an exchange rate to adjust the downloaded stock prices.  A similar problem arises with companies in the UK.  Market Watch reports data in GBP but Yahoo reports data in Pence.  To resolve these issues you can enter a currency adjustment in the menu page of the file.  This currency adjustment is shown in column C of the excerpt below.  These adjustments and the general way ticker symbols are entered into the file are illustrated in the excerpt below.  Note that the Yahoo and Market Watch symbols are the same for companies traded in the U.S. but the ticker symbols are different for companies traded outside the U.S.

 

 

If you want to see the process of finding ticker symbols along with some discussion of the file, you can watch the video below.  In this video I simply show you how to do a search for the ticker symbols and then enter the ticker symbols into the file to create a new database. The challenging issues are for companies that are primarily traded in markets outside the U.S.

Preliminary Step: Make Sure the WinHttp Services Add-in to VBA is Installed

To read the stock price data from finance.yahoo you need to have one of the VBA references installed. You can find this on the VBA menu by going first to Tools and References.  Then make sure the item has a check box.  Your can find more details of this on the stock price page.

The VBA menu is illustrated on the screenshot below. When this page appears, select the Tools menu as illustrated with my attempted circle.  After selecting the tools menu, a sub-menu appears that is not shown.  The first option is References.  After selecting References, a set of check boxes appears as shown below. Note that “Microsoft WinHTTP Services, version 5.1” is listed and it does not have a check box.  You need to make sure that this box is checked.

 

Downloading Comprehensive Financial Data for Different Industries and Selected Groups of Companies

You can create your own files for different industries by entering ticker symbols in the menu page of the files that are available for download below.  This ticker symbol business can be a bit tricky if the companies report financial statements in different currencies than the USD.
I have included a few examples of how you can download files below for various industries that are attached to the buttons below so you can see how the programs work before you try things yourself. After you look through the stuff that is produced, you can to press the buttons to download and arrange the data.
The file for insurance companies is different from the other files because of financial reporting.  For insurance and financial companies, financial statements are reported in a different format from industrial companies.  The file to download named insurance companies includes an example of how the process can work when there are different financial statements.
 .
Please note: When you open the files, run the macro titled “RECALCULATE ALL” (find the button on the second page).
.

Financial Database for International Electricity Companies   Financial Database for Selected Companies Like Amazon and Google

Financial Database for Non-Financial Dow Stocks   Financial Database for Insurance Companies with Different Format

Financial Database for Beverage Companies with International Companiers   File with Exercise for Computing Simple LCOE Using Four or Seven Factors

 

Using the Database File for Scrapping Financial Statements and Creating Historic Analysis for Financial Models

One of the really painful things about creating a model is getting the financial data and then arranging it in a consistent format across years.  I have other videos explaining how you can use the Read_PDF.xlsm file and put data together with the a UDF called the UNION function.  Using the database, this process is much easier and all you have to do is to press the button to download the data.

One of the elements that you can work with is to try to create a forecast of the current fiscal year when you have some quarterly actuals.  There are a multitude of different ways to use the quarterly data and some of these are illustrated in the page.

This idea of starting with historic data is absolutely crucial in my opinion. If you don’t understand history and use history as a basis for your forecasts, your forecasts are utterly worthless. As the amount of detail provided by Market Watch is comprehensive, the financial database file can be used to download data that you can then use to create a financial model.

 

 

The video below further elaborates on how to find the data to download.

 

Using the Financial Database File to Compare Financial Performance of Individual Companies

The excerpt below is an example of how you can look at different companies to try and tell a story.  You can use drop down boxes for selecting different ratios and selecting different companies.  Then you can do things like quickly working through different companies and observe the ROIC, growth in EBITDA, forward P/E ratios etc.

 

Using the Financial Database File to Evaluate Time Series and Comparative Data and the Proposition of Stability.

If multiples are used in valuation, they should be stable across time and stable within an industry. One of the main advantages of this database is that you can evaluate this proposition of stability.  Most of the analyses demonstrate that the proposition of stability is false.  You can use the drop down box to compare EV/EBITDA multiples, P/E multiples, P/B multiples and so forth. The first screen shot from the file demonstrates how you can compare ROIC across companies.  If a company has a low ROIC, it may be difficult to increase to the industry average.

 

 

The second example demonstrates comparison of the P/E ratio across companies.  The first question from looking at a table like this is determining whether you believe the ratios are constant across time and across the sample.  As explained in the corporate finance theory pages, there are very good reasons that P/E ratios should should not be constant across either companies or across time.  In this case, the median P/E ratio is pretty stable.  But don’t be mislead.  The individual companies have wide swings.

 

 

Using the Database Files for Analysis of Cost of Capital

I originally created the file to analyse cost of capital. I also go crazy about finding alternatives to the CAPM with market to book analysis and use of the P/E ratio. But in analysing corporate finance I am obsessed with things like using the value driver formula (1-g/ROIC)/(WACC-g) and demonstrating its flaws.

The files below go to the different financial websites including market watch.com, finance.yahoo.com and the St. Louis Fed to gather data to evaluate the cost of capital using alternatives to the CAPM. The file computes cost of capital using different techniques including CAPM, P/E ratios, P/B ratios and EV/EBITDA ratios. It has dynamic goal seeks inside to evaluate cost of capital with stable long-term growth rates and returns.

Macros are used in the files that allow you to enter ticker symbols and then get a whole lot of data. The process adjusts URLs market watch and yahoo.com according to ticker symbols and then puts financial data into a lot of sheets. The INDIRECT function is then used to gather data together and summarize data in different ways. You can update the data like with other files although depending on your internet speed it may take a bit longer to read all of the stuff when you update your analysis.

 

Videos that Demonstrate how to Collect Ticker Symbols in Different Countries and Put Together a Database

The video below demonstrates how to use the file once the tickers have been entered and the types of information you can get from the file including: (1) comparative reports of P/E, EV/EBITDA, P/B, ROE etc.; (2) a historic layout of data that you can use as the basis of financial models; (3) an interactive report for single companies; and (4) cost of capital analysis.

 

Technical Discussion of the Financial Database File

It has taken a lot of iterations to develop this file and I will probably change it in the future.  I had thought you may be interested in the method for reading the data into the file and then arranging the data for comparison.  I am told by young people that this is not interesting.  People seem to want to press a button and just be finished.  Apparently you do not want to look at any VBA code or other techniques.

Despite what I have been told, I have made various videos that describe technical details of how to develop the databases.  I have also put a set of power point slides together that documents technical details of developing the file.

Power Point Slides that Describe Technical Details of the Financial Databases