Data is normally adjusted for splits/reverse splits, etc. The current shares outstanding is usually available. Is there a data repository that captures the shares outstanding for any point in the past?
-
$\begingroup$ $ or free data? the later I won't think exists $\endgroup$– pyCthonSep 4, 2012 at 16:49
-
$\begingroup$ I guess either one though this seems obscure enough, for whatever reasons, that it is hard to imagine anyone is collecting it with a big payoff in mind. $\endgroup$– Rage With The MachineSep 4, 2012 at 19:34
9 Answers
That information is available in the SEC's EDGAR database, though there can be many flavors of "shares outstanding". It is reported quarterly in a company's 10-Q/K, sometimes on a weighted-average basis. If you don't want to get it manually, a service like Bloomberg will let you access the historical levels quite easily, or you can parse the EDGAR XML feeds.
You should note that the "current" number you refer to is just the most recent quarterly number -- the data isn't available with finer granularity.
If you need to reconcile splits, one (free) option is to use a service like Yahoo Finance -- their "Adjusted Close" normalizes historical prices for dividends and splits. You could back out the dividend impact and use the ratio of "Close" to your new "dividend-excluding Adjusted Close" to get the necessary scaling factor. Alternatively, you can download a table of just dividend/split information and parse it to get the required factors for splits only. To get that table, choose the misleadingly-named "Dividends Only" option.
-
$\begingroup$ I expanded on this answer below. I tried to put it here but there was no room or formatting $\endgroup$– RBZMar 13, 2014 at 0:31
I wanted to add this answer for anyone still searching for a convenient way to find this data,
go to http://www.quandl.com/
search in this format
<ticker> outstanding shares
Edit: The appropriate result should be in there somewhere, it may no longer be the first link as it previously was.
-
2$\begingroup$ "That's it"? I did what you suggested for Microsoft and got, "539,748 results for "MSFT outstanding shares". Page 1 / 26988". If you're going to say "that's it", at least tell people to search for "<ticker> number of shares outstanding" where the first result is what they're looking for. $\endgroup$ Jul 29, 2013 at 20:58
-
$\begingroup$ yields first result either way, i added "click the first link" to the directions in case that wasn't overly obvious to someone $\endgroup$ Jul 30, 2013 at 13:20
One more source now
http://www.katelynnsreport.com/main/query
You can find the history of shares outstanding, PE, price to book value, ... every popular financial metrics, as well as history of ranking comparing to industry, sector peers.
YCharts provides historical data and charts for the number of shares outstanding. Here is Yahoo's chart as an example.
-
1$\begingroup$ YCharts limits daily use and wants to charge for use. $\endgroup$– RBZMar 12, 2014 at 23:29
-
$\begingroup$ True, but the OP didn't care. "guess either one though this seems obscure enough, for whatever reasons, that it is hard to imagine anyone is collecting it with a big payoff in mind." $\endgroup$– fnyNov 28, 2016 at 22:23
user25064 gave http://www.quandl.com/, which is a good source.
To use quandl.com to retrieve shares outstanding history the following works: http://www.quandl.com/api/v1/datasets/OFDP/DMDRN_MSFT_FLOAT.json?&trim_start=2003-12-31&trim_end=2012-12-31&sort_order=desc
I gave json since it is just the easiest form to deal with. But several other formats are available. "MSFT" in the URL can be replaced with any stock symbol and quandl.com "offers free and unlimited access".
Update: This is an old answer. It no longer works
-
2$\begingroup$ Fails with
API requests for OFDP has been deprecated. Please contact [email protected] for further information.
. $\endgroup$– John MNov 24, 2016 at 4:44
Here's a pretty clean solution via scraping the NASDAQ website:
import requests
from bs4 import BeautifulSoup
def get_n_shares_outstanding(ticker):
nasdaq_soup = requests.get("https://www.nasdaq.com/symbol/{}/stock-report".format(ticker))
soup = BeautifulSoup(nasdaq_soup.content, "html.parser")
for td in soup.find_all("th",text="Shares Outstanding"):
n_shares_outstanding = int(td.find_next_sibling().get_text().replace(',', ''))
return n_shares_outstanding
get_n_shares_outstanding('AAPL')
4915138000
Previous Quandl links/suggestions have been depreciated or are totally unclear. Here's a link that's good as of 7/15/2016, you can get data since 2010 for free with this: https://www.quandl.com/data/RAYMOND?keyword=outstanding%20shares
In there you can find export to CSV/XML/JSON options, and instructions on how to get this through the Quandl API in python/matlab/R (and presumably more).
Please comment if you find one of these that's free and with data that goes back further.
Historical outstanding shares can be obtained for free from Quandl: Following is the R code for outsatnding shares for IBM from 2012-12-30 onwards.
Quandl.datatable("ZACKS/FC", ticker=c("IBM"), per_end_date.gt="2012-12-30",qopts.columns=c("comm_shares_out","wavg_shares_out_diluted","wavg_shares_out", "per_end_date"))
Also account can be created for free on Quandl and you can get your API key to access the database, it has limited usage though (50 calls per day)
I couldn't get it in quadl but found it in https://financialmodelingprep.com/developer/docs#Financial-Statements-Growth