Standardized Numeric Financials

Calcbench extracts all of the GAAP numbers in section 8, face statments and footnotes, of the 10-K/Qs. Face financials from earnings press-releases and 8-Ks are also included.

Standardized

Calcbench standardizes +1000 metrics to handle differences in filers’s tagging. The list of stardized points is @ https://www.calcbench.com/home/standardizedmetrics

calcbench.standardized_numeric.ORDERED_PIT_COLUMNS = ['ticker', 'metric', 'fiscal_year', 'fiscal_period', 'value', 'revision_number', 'preliminary', 'XBRL', 'date_reported', 'filing_type', 'CIK', 'calcbench_entity_id', 'period_start', 'period_end', 'calendar_year', 'calendar_period', 'filing_accession_number', 'trace_url', 'date_modified', 'date_XBRL_confirmed', 'confirming_XBRL_filing_ID', 'original_value']

Fields returned by point-in-time calls

calcbench.standardized_numeric.ORDERED_REGULAR_COLUMNS = ['ticker', 'metric', 'fiscal_year', 'fiscal_period', 'value', 'CIK', 'calendar_year', 'calendar_period']

Fields returned by non-point-in-time calls

calcbench.standardized_numeric.build_data_frame(raw_data, point_in_time)

The order of the columns should remain constant

Return type:

DataFrame

calcbench.standardized_numeric.standardized(company_identifiers=[], metrics=[], fiscal_year=None, fiscal_period=None, start_date=None, end_date=None, point_in_time=False, filing_id=None, pit_V2=None, XBRL_only=False, all_modifications=False, period_type=None, revisions=Revisions.All)

Standardized Numeric Data.

The data behind the multi-company page, https://www.calcbench.com/multi.

Example https://github.com/calcbench/notebooks/blob/master/python_client_api_demo.ipynb

Parameters:
  • company_identifiers (Sequence[Union[str, int]]) – Tickers/CIK codes. eg. [‘msft’, ‘goog’, ‘appl’, ‘0000066740’]. If not specified get data for all companies.

  • metrics (Sequence[str]) – Standardized metrics. Full list @ https://www.calcbench.com/home/standardizedmetrics eg. [‘revenue’, ‘accountsreceivable’]. If not specified get all metrics.

  • fiscal_year (Optional[int]) – Fiscal year for which to get data. If not specified get all history.

  • fiscal_period (Union[Period, Literal[0, 1, 2, 3, 4], None]) – Fiscal period for which to get data. If not specified get all history.

  • start_date (Union[datetime, date, None]) – Restrict to records modified on or after (inclusive) this date/datetime

  • end_date (Union[datetime, date, None]) – Restric to records modified prior (exclusive) thie date/datetime

  • point_in_time (bool) – Include timestamps when data was published and revision chains.

  • filing_id (Optional[int]) – Filing ID for which to get data. Get all of the data reported in this filing.

  • pit_V2 (Optional[bool]) – Defaults to True, use point in time V2, this only makes sense when point_in_time = True. This will go away at some point.

  • XBRL_only (Optional[bool]) – Only get data that appeared in an XBRL document. If supplied with start_date and end_date it will filter by date_XBRL_confirmed, if a filing_id supplied it will filter by confirming_XBRL_filing_ID.

  • all_modifications (Optional[bool]) – Include data which was either written, modified, or confirmed as XBRL, in the specified date-range or filing_id.

  • period_type (Optional[PeriodType]) – Restrict results to quarterly or annual fiscal periods.

Returns:

Dataframe

Standardized data with a timestamp when it was published by Calcbench.

A record is returned for each filing in which a metric value changed (was revised).

If the company files an 8-K with revenue = $100 then a week later files a 10-K with revenue = $100 one record will be returned for that period. It will have preliminary=True and XBRL=True.

If the company files an 8-K with revenue = $100 and then a week later files a 10-K with revenue = $200, two records will be returned. One with revenue = $100, a revision_number=0, date_reported of 8-K, preliminary=True and XBRL=False. You will see a second line with revenue = $200, a revision_number=1, and date_reported of the 10-K, preliminary=False and XBRL=False.

If the value is revised in subsequent XBRL filings you will see a record for each filing with an incremented revision number.

date_downloaded

The timestamp on your computer when you downloaded this data.

Usage:

>>> d = calcbench.standardized(company_identifiers=['msft'],
>>>                                 point_in_time=True,)
>>> )
>>> # Put the data in a format amiable to arithmetic on columns
>>> d = calcbench.standardized(company_identifiers=['msft', 'orcl'], metrics=['StockholdersEquity', 'NetIncome'])
>>> d = d.unstack("metric")["value"]
>>> return_on_equity = d['NetIncome'] / d['StockholdersEquity']
calcbench.standardized_numeric.standardized_raw(company_identifiers=[], metrics=[], start_year=None, start_period=None, end_year=None, end_period=None, entire_universe=False, point_in_time=False, include_trace=False, all_history=False, year=None, period=None, period_type=None, use_fiscal_period=False, all_face=False, all_footnotes=False, filing_id=None, all_non_GAAP=False, all_metrics=False, pit_V2=False, start_date=None, end_date=None, XBRL_only=False, all_modifications=False, revisions=Revisions.All)

Standardized data.

Get normalized data from Calcbench. Each point is normalized by economic concept and time period.

Parameters:
  • company_identifiers (Sequence[Union[str, int]]) – a sequence of tickers (or CIK codes), eg [‘msft’, ‘goog’, ‘appl’]

  • metrics (Sequence[str]) – a sequence of metrics, see the full list @ https://www.calcbench.com/home/standardizedmetrics eg. [‘revenue’, ‘accountsreceivable’]

  • start_year (Optional[int]) – first year of data

  • start_period (Union[Period, Literal[0, 1, 2, 3, 4], None]) – first quarter to get, for annual data pass 0, for quarters pass 1, 2, 3, 4

  • end_year (Optional[int]) – last year of data

  • end_period (Union[Period, Literal[0, 1, 2, 3, 4], None]) – last_quarter to get, for annual data pass 0, for quarters pass 1, 2, 3, 4

  • entire_universe (bool) – Get data for all companies, this can take a while, talk to Calcbench before you do this in production.

  • include_trace (bool) – Include the facts used to calculate the normalized value.

  • year (Optional[int]) – Get data for a single year, defaults to annual data.

  • period_type (Optional[PeriodType]) – Either “annual” or “quarterly”

  • filing_id (Optional[int]) – Filing id for which to get data. corresponds to the filing_id in the objects returned by the filings API.

  • all_non_GAAP (bool) – include all non-GAAP metrics from earnings press releases such as EBITDA_NonGAAP. This is implied when querying by filing_id.

  • all_metrics (bool) – All metrics.

  • start_date (Union[datetime, date, None]) – points modified from this date (inclusive). If no time is specified all points from that date are returned.

  • end_date (Union[datetime, date, None]) – points modified until this date (exclusive). If not time is specified point modified prior to this date are returned.

  • XBRL_only (Optional[bool]) – Only get data that appeared in an XBRL document. If supplied with start_date and end_date it will filter by date_XBRL_confirmed, if a filing_id supplied it will filter by confirming_XBRL_filing_ID.

  • all_modifications (Optional[bool]) – Include data which was either written, modified, or confirmed as XBRL, in the specified date-range or filing_id.

Return type:

Sequence[StandardizedPoint]