Updated daily, this database provides 16 years of history, for 123 essential fundamental indicators and financial ratios, for more than 8,000 US public companies. This is reference grade fundamental stock data.
- 5,000 active and 3,000 delisted companies.
- Continuously expanding ticker and indicator coverage, and history extensions (more here).
- Data including or excluding restatements.
- Point-in-time dimension to data with time-indexing to the filing date or the fiscal/report period.
- Includes foreign issuers (ADRs and Canadian) that trade publicly on US markets.
- Annual, Trailing Twelve month, and Quarterly (domestic-only) datasets available.
- Personalised support with direct contact with the principal data curator.
- Lowest cost single user and developer licenses for professional fundamental data in the world.
- Free preview access; use this data right now.
- Works with the Quandl API and all Quandl libraries
Single Users pay only $50 per month (paid quarterly), small business and start-ups get redistribution rights for just $100 per month. Annual discounts are 33%. This is the lowest priced professional grade fundamental database available anywhere. More»
Sharadar is an independent research and analytics firm founded in 2013. Sharadar specializes in extraction, standardization and organization of financial data from company filings. We combine people, software and rigorous review processes to generate accurate, professional grade data for professional investors and analysts.
This database is continuously expanding to cover more tickers, more indicators and to provide more history. Here we chart our progress in expanding the databasefrom 2014 to 2017 (YTD):
The amount of history has significantly increased to 16 years recently, during which time expansion of tickers and indicators has temporarily slowed. Moving forward we anticipate accelerated expansion of ticker coverage, and continued expansion of indicators and the history available.
For your convenience we provide two mechanisms for you to retrieve data: the new Datatable API and the old Dataset API. The Datatable API is generally easier and more flexible to interact with and therefore recommended as the default API to use.
In addition there are batch download options for both the Datatable API and the Dataset API, which provide the most convenient way to download the entire database. Find out more
The Datatable API (New)
The Datatable API provides the most convenience in retrieving all data for a particular company, and the most flexibility in retrieving multiple datasets.
Data is presented in tabular format with indicators represented in columns.
There are 3 filter columns in the database that you can use to specify which data to retrieve, these are: ticker, calendardate, and dimension.
When you integrate this API you should not assume a particular column order as additional indicators will be added in the future.
Data is not sorted by default and you should sort the data upon retrieval.
We'll now demonstrate how to access the database and use the filters in the series of basic examples which follow below. These examples can also be combined to produce more complex queries.
All requests must be authenticated with your API key. An example of a request is as follows which can be found in account settings, here.
To retrieve all data for a specified ticker:
3. Ticker and Dimension
To retrieve all data for a specified ticker and dimension
4. Multiple Tickers
To retrieve data for multiple specified tickers:
5. Ticker and Date
To retrieve data for a specified ticker and calendar date:
Data can retrieved based on greater than (gt), less than (lt), greater than or equal to (gte) or less than or equal to (lte) operators.
For example, the following request retrieves all specified ticker data where the calendar date is greater than or equal to 2013-12-31:
The operators can be applied to the filter columns:
7. Ticker and Indicators
To retrieve data for a specified ticker and indicators (columns):
8. More than 10,000 Rows of Data
Data retrieval is currently limited to 10,000 rows in a single request. This is enough to obtain all data for approximately 40 tickers in a single request.
We recommend that you don't make a single request that retrieves more than 10,000 rows, but we do provide a mechanism for you to do so if you choose to.
For example, to download the entire database:
Your initial call would retrieve 10,000 rows. In addition, this initial call will return a value in the
NEXT_CURSOR_ID field of the
json request which you can use in a subsequent API call to retrieve the next 10,000 rows:
9. EVENT data
There is a distinct API route for EVENT datasets under the Datatable API.
The filter fields for use in this route are:
To retrieve EVENT data for a specified ticker:
To retrieve EVENT data for a specified date:
The reason for this distinct route is because these events occur at multiple times throughout the quarter. Therefore this data is updated and retrieved at different intervals to other datasets, and the separate route maximises the convenience of intra-quarter retrieval. In addition, EVENT data is typically indexed to different dates than the other indicators which renders it unsuitable for tabular representation with the other indicators.
The previously described operators (gt, lt, gte, and lte) can be applied to the
date filter fields.
10. Most recent observation
To obtain the most recent observation:
This will retrieve the most recent single observation for each combination of dimension and ticker defined. A future iteration will likely allow you to specify a number of observations to retrieve.
11. Recently updated data
To obtain data that has been updated since a specified date:
General Datatable API docs, not specific to the SF1 database, can be found here.
The Dataset API (old)
The Dataset API is not recommended for use with SF1, but notes for it's use are provide here for those that have not migrated to the new Datatable API.
The url path for a dataset is constructed out of the ticker, indicator and dimension of the desired dataset as follows:
For example, if we set ticker to AAPL, indicator to REVENUE, and dimension to MRY, we can browse here:
This data can be retrieved by making API calls to either of the following addresses:
<YOURAPIKEY> above with your API key which can be found in account settings, here.
You can identify which dimensions are available for each indicator here.
Where an indicator does not have a specific dimension, such as MARKETCAP, the url path is constructed as follows:
For example, you can browse to AAPL's MARKETCAP as follows:
Similarly you can make a csv API call as follows:
General Dataset API docs, not specific to the SF1 database, can be found here.
Free sample data is provided to all Quandl users, for all DOW index stocks.
See the Getting Started for usable examples.
In addition, see the free sister database, SF0 that provides a handy subset of SF1.
The database currently covers the following 8,000+ companies (tab-delimited | json).
- Where a ticker contains a
. or a
- this is removed from the ticker we use. For example
BRKB in our dataset. We include
BRK.B ticker in the
Related Tickers field of the ticker listing.
- Where a company is delisted and the ticker is recycled, we utilise that ticker for the currently active company and append a number to the ticker of the delisted company. For example
GM represents the current actively traded General Motors entity, and
GM1 represents the entity that filed for bankruptcy in 2009.
- Where we have identified that multiple classes of shares exist for a company, we include the alternative share classes in the
Related Tickers field of the ticker listing. For example we provide data for
GOOGL, and you find
GOOG in the Related Ticker field. This should not be considered an exhaustive list of alternative share classes, if you identify an ommission, please report it.
- Where a company changes ticker subsequent to our initiating coverage in this dataset, we utilise the new ticker and include the old ticker and the change data in the
Prior Tickers and
Ticker Change Date fields of the ticker listing.
Ticker Listing Fields
Brief descriptions of key fields of the ticker listing (tab-delimited | json):
- Last Updated: the date that this company's data was last updated.
- Prior Tickers: a comma-delimited collection of prior tickers used in this dataset, per point (3) in Ticker Methodlogy above.
- Ticker Change Date: a comma-delimited collection of the date of ticker changes in this dataset, per point (3) in Ticker Methodlogy above.
- SIC Industry Codes: a system for classifiying industries by a four digit code. More info here.
- Fama/French Industry Codes: an altenative industry classification based on SIC codes, provided by Fama & French. More info here.
- CUSIP: a comma-delimited collection of CUSIPs. Note that the CUSIP can change over time, for example in the event of a stock split the CUSIP changes, and we aim to collect the multiple CUSIPs together here. This is a work-in-progress provided on an experimental basis, please report any anomalies.
- Related Tickers: contains details of adjustments made to tickers, per points (1), (2) and (3) in Ticker Methodology above.
- Exchange: Whether the company trades on the NASDAQ, NYSE, NYSEMKT (formerly AMEX), OTC or is DELISTED.
- Perma Ticker: a 6-digit code generated by Sharadar which is unique to each company and which does not change in the event that a company's stock exchange ticker changes.
- Is Foreign: identifies foreign companies (ADRs and Canadian).
Indicators are financial statement line items (such as REVENUE or DEBT), and metrics (such as PE or MARKETCAP). Here we provide additional information on the 123 indicators provided in the database. Also, see the indicator listing (tab-delimited | json) for machine-readable descriptions.
Please also note that quartely dimensions (ARQ and MRQ) are not available for foreign companies. This is due to different SEC disclosure requirements. Foreign companies can be identified by
(Foreign) in the name, or by referencing the
Is Foreign field of the ticker listing (tab-delimited | json).
||Cost of Revenue
||Research and Development Expense
||Selling, General and Administrative Expense
||Earning Before Interest & Taxes (EBIT)
||Earning Before Interest & Taxes (USD)
||Income Tax Expense
||Net Income to Non-Controlling Interests
||Preferred Dividends Income Statement Impact
||Net Income Common Stock
||Net Income Common Stock (USD)
||Net Income from Discontinued Operations
||Earnings per Basic Share
||Earnings per Basic Share (USD)
||Earnings per Diluted Share
||Weighted Average Shares
||Weighted Average Shares Diluted
||Dividends per Basic Common Share
Available dimensions (Dataset API): ARY,ARQ,ART,MRY,MRQ,MRT
Cash Flow Statement
||Net Cash Flow from Operations
||Depreciation, Amortization & Accretion
||Share Based Compensation
||Net Cash Flow from Investing
||Net Cash Flow - Business Acquisitions and Disposals
||Net Cash Flow - Investment Acquisitions and Disposals
||Net Cash Flow from Financing
||Issuance (Repayment) of Debt Securities
||Issuance (Purchase) of Equity Shares
||Payment of Dividends & Other Cash Distributions
||Effect of Exchange Rate Changes on Cash
||Net Cash Flow / Change in Cash & Cash Equivalents
Available dimensions (Dataset API): ARY,ARQ,ART,MRY,MRQ,MRT
Available dimensions (Dataset API): ARQ,MRQ,ARY,MRY
Metrics & Ratios
||Available Dimensions (Dataset API)
||Book Value per Share
||Debt to Equity Ratio
||Earnings Before Interest, Taxes & Depreciation Amortization
||Earnings Before Interest, Taxes & Depreciation Amortization (USD)
||Earnings before Tax
||Enterprise Value over EBIT
||Enterprise Value over EBITDA
||Free Cash Flow
||Free Cash Flow per Share
||Foreign Currency to USD Exchange Rate
||Invested Capital Average
||Price Earnings Damodaran Method
||Price to Earnings Ratio
||Price to Sales Ratio
||Price Sales Damodaran Method
||Price to Book Value
||Retun on Invested Capital
||Sales per Share
||Return on Average Assets
||Return on Average Equity
||Return on Sales
||Tangible Asset Value
||Tangible Asset Book Value per Share
Please note that SF1 is not a stock price database, and daily price data is not provided. Sporadic price observations are provided several times per quarter via the
PRICE indicator, predominantly in order to provide transparency in the calculation or price-based indicators on filing and fiscal period end dates.
Dataset API Indicators
The FILINGDATE indicator is only available through the Dataset API and has been replaced by the REPORTPERIOD in the Datatable API.
Datatable API Indicators
The following indicators are only available through the new Datatable API due to the different structure of the Datatable API.
To be Deprecated
The following indicators are due to be deprecated in the future (date TBD and will be communicated) and have therefore not been migrated from the Dataset API to the Datatable API. For more information on the Datatable and Dataset API's, please see Getting Started.
The reason these are to be deprecated is due to limited use, because they are calculable from other indicators, and because we will be adding multiple additional indicators in the coming months.
Future Indicator Additions
Additional indicators are added quarterly following earnings season. Drop us an email with anything you'd like to see added.
There are several different ways to look at company financials over time. We cater for this by offering multiple
dimensions to the database.
The two primary dimensions to the database are the
As Reported (AR) and
Most-Recent Reported (MR) dimensions:
- As Reported view (AR):
- excludes restatements
- point-in-time view with data time-indexed to the date the form 10 regulatory filing was submitted to the SEC
- presents data for the latest reporting period at that filing date
- may include multiple observations in a quarter if more than one filing is made during the quarter
- on limited occassion may not have any observations in a particular quarter. Sometimes companies are delayed in reporting for up to 18 months. On such occassions they may report multiple documents on the same date to catch up, in which case these datasets will only provide date for the most recent reporting period.
- typically suitable for back-testing
- Most-Recent Reported view (MR):
- includes restatements
- time indexed to the financial/report period
- presents the most recently reported data for that reporting period
- typically suitable for assessing business performance after restatements for mergers/divestitures
In addition there are 3 time dimensions:
- Annual (Y): Annual observations of one year duration
- Trailing Twelve Months (T): Quarterly observations of one year duration
- Quarterly (Q): Quarterly observations of quarterly duration (available only for US domestic companies, unavailable for foreign companies)
|Trailing Twelve Months
We can review the methodology applied in calculating restated financials by way of example. In recent years Abbott Laboratories (ticker ABT) restated its prior year financials. The impact to revenue is depicted here and is identifiable by the vertical distance between AR and MR dimensions:
The other important observation to make is that the restatement has resulted in one quarter of negative revenue for the MRQ dimension at the end of 2011. This is because while Abbott has provided restated annual financials for this year, it has not provided restated quarterlies for the year. Therefore the negative quarter has been calculated by Sharadar by utilising the most recently reported information. This is in order to ensure that the quarterly and annual financials are aligned. For clarity we can reperform this calculation by referring to the underlying data as follows:
|less MRQ 30/09/2011
|less MRQ 30/06/2011
|less MRQ 31/03/2011
|equals MRQ 2011-12-31
This effectively assigns the impact of the full year's restatement to a single quarter. Argubly it would be more representative that it was spread amongst the other quarters of the year, however this calculation would be arbitrary unless performed and reported by the company itself. Should the company report this information at a future point this database will be updated accordingly.
As a corollary it should be noted that datapoints under the ART dimension (As Reported, Trailing Twelve Months), do not necessarily reflect the sum of the prior four ARQ (As Reported, Quarterly) datapoints.
As a reminder, the As Reported dimension presents data for the latest reporting period at that filing date. Therefore, if an earlier reporting period is restated it will not be reported as a quarterly ARQ datapoint since it is does not cover the latest reporting period. However, this restated quarter will still be considered in the calculation of a corresponding Trailing Twelve Month datapoint if the restatement occurs within that twelve month timeframe.
As previously noted, the As-Reported dimensions present a
point-in-time view with data time-indexed to the date of the form 10 regulatory filing to the SEC. This is in order to more closely align with the date that information was disseminated to the market, and the corresponding market impact. This is is a more accurate measure than the reporting period which the Most-Recent Reported dimensions utilize, which are typically months before the information reaches the market, and subject to restatement. However, it must be noted that the information contained in the form 10 may have been separately disclosed to the market days (or on rare occassion - weeks) earlier under separate form 8 regulatory filing. It is safe to assume that the information would have been available the day after the As-Reported date (at the latest). In addition, you can identify the date of the form 8 filing by referring to the
EVENT indicator. We source our data from a company's form 10 filing rather than their form 8 filing since the form 8 filings do not consistently contain full consolidated financial statements.
Negative P/E Ratios
Where a company reports negative earnings it's calculated
PE1) ratio will be negative - please be aware of this when filtering for low P/E ratios.
Subscribers can download the entire database at anytime, through either the new Datatable API route, or the old Dataset API route.
Datatable API (New)
Access the following url:
This will return a file status code. If the status code is "creating", "generating" or "regenerating" then wait a little while and try again. When the status code is "fresh" then use the url that is also returned to retrieve the bulk download.
In addition you can add other arguments to filter the data that is retrieved through this batch process, as described in the Datatable API docs.
Dataset API (Old)
Download the full database at this url:
In addition subscribers can download the most recent observation for each dataset:
You can find your token under
API KEY in account settings.
A zipped csv file is returned for each of the above. The file contains 3 columns: Quandl Code, Date, Value.
The data in these batch downloads is updated daily at approximately 05h00 Eastern Standard Time (EST).
Where an indicator is not available we still create a blank dataset to represent (within the Dataset API). However, you will receive a
"Dataset is empty" error message (or similar) when trying to retrieve that blank dataset.
EPSDIL are not consistently reported by all companies, and there is a higher incidence of non-availability of both these indicators, and the
DILUTIONRATIO indicator which is subsequently derived.
Ratios which have zero in the denominator cannot be calculated and will be blank. For example, where a company's trailing twelve month
EPS sums to 0.0 the subsequently derived
PE1 indicator cannot be calculated. Therefore due to the unavailability of
"N/A" values there will be no observation returned. This also applies to
EBITDAMARGIN for companies that have zero
REVENUE. Companies that have zero revenue are generally, but not exclusively, early stage Biotech firms.
Not all companies operate a classified Balance Sheet, approximately 20% of the companies in the database do not, most of which are financial firms. As such:
ASSETSC (Current Assets) &
LIABILITIESC (Current Liabilities), and the subsequently derived
WORKINGCAPITAL, are not reported for all companies. In addition, companies can change their financial statement presentation and start or stop operating a classified Balance Sheet, therefore there may be gaps in the availability of these indicators.
Newly listed companies may not have the four quarters of reporting history required to calculate the trailing twelve month dimension, therefore the dataset may be blank until this history is available.
On limited occassion Annual and Quarterly financial statement presentation does not conform. For example, sometimes companies only report
TAXEXP annually and not quarterly. In these instances the quarterly values will not sum to the annual values.
As always, we welcome your further comments.
How soon after a company reports will the database be updated?
The database is updated within 24 hours of the form 10 SEC filing, often within 12 hours. Note that companies may report abbreviated financial statements via a separate form 8 SEC filing days or on occassion weeks before the form 10 filing. We do not source our data from the form 8 filing since it does not reliably contain full consolidated financial statements (income statement, balance sheet & cash flow statement).
Can "this" ticker or "that" indicator be added to the database?
If there's something that you want to see in the database, then please drop us an email. Tell us what you'd like to see, and how important it is to you. And while you're at it, tell us what we're doing that you do like - not for our own vanity but so that we know to carry on doing it. Thanks!
How are "N/A" values (non-reported items) treated?
Great question - the answer depends on the indicator. For example, if a company has no
DEBT on it's balance sheet then this means the value is zero. If a company doesn't report
ASSETSC (Current Assets) on it's balance sheet - this does not mean that the value is zero. In this instance the appropriate value is
"N/A" is not presently supported on the platform and therefore nothing is reported on this date. For detail on how N/A values are treated for each indicator please see the individual indicator descriptions (eg REVENUE), links to these are available from the indicator listing.
The full Sharadar Fundamentals database is accessible via the Quandl API. The database is also available via Quandl's free libraries for R, Python, Matlab, Excel and other tools.
For complete API documentation, see quandl.com/help/api
API and Library Helpers
To quickly generate API calls or library calls, you can visit any data page (SF1/IBMREVENUEART for example). On the right side of the screen are buttons that help you build API calls based on what you are looking at on the screen.
For more information:
- General Quandl API Documentation
- Quandl Libraries
Premium support is available for subscribers to this database:
Quandl platform/tools: email@example.com