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/datetimeend_date (
Union
[datetime
,date
,None
]) – Restric to records modified prior (exclusive) thie date/datetimepoint_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 datastart_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, 4end_year (
Optional
[int
]) – last year of dataend_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, 4entire_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
]