Face Statements

The data behind the https://www.calcbench.com/detail/ page.

calcbench.face_statements.face_statement(company_identifier, statement_type, period_type=PeriodType.Annual, all_history=False, descending_dates=False)

Face Statements.

face statements as reported by the filing company

  • company_identifier (Union[str, int]) – a ticker or a CIK code, eg ‘msft’

  • statement_type (StatementType) – one of (‘income’, ‘balance’, ‘cash’, ‘change-in-equity’, ‘comprehensive-income’)

  • period_type (PeriodType) – annual|quarterly|cummulative|combined

  • all_periods – get all history or only the last four, True or False.

  • descending_dates (bool) – return columns in oldest -> newest order.

Return type:



Data for the statement

>>> calcbench.face_statement('msft', 'income')
pydantic model calcbench.models.face.FaceStatement
field columns: Sequence[FinancialStatementColumn] [Required]
field entity_name: str [Required]
field line_items: Sequence[LineItem] [Required]
field name: str [Required]

The name of the statement from the filer


Render the statement in a Pandas dataframe

pydantic model calcbench.models.face.Fact
field dimension_members: Optional[Sequence[str]] = None
field effective_value: Optional[Decimal] = None
field fact_id: int [Required]
field fact_value: Any [Required]
field focus: bool [Required]
field focus_negative: bool [Required]
field format_type: str [Required]
field has_been_revised: bool [Required]
field negated_label: bool [Required]
field revised: bool [Required]
field special_fact_type: str [Required]
field text_fact_id: Optional[int] = None
field unit_of_measure: Optional[str] = None
pydantic model calcbench.models.face.FinancialStatementColumn
field calculated: bool [Required]

Was this column calcuated by Calcbench, Q4 numbers for instance.

field date_range: str [Required]

Human readable, like “7/1/2017 to 6/30/2018”

field fiscal_period: str [Required]

Human readable, like “Y 2018”

field fiscal_period_period: str [Required]
field fiscal_period_type: int [Required]
field fiscal_period_year: int [Required]
field instant: bool [Required]

Does this refer to an instant in time or a period, balance sheet vs. income statment

field is_guidance_column: bool [Required]

Is this column forward guidance

field period_end: date [Required]
field period_start: Optional[date] [Required]
pydantic model calcbench.models.face.LineItem
field facts: Optional[Sequence[Fact]] = None
field footnote_fact_id: Optional[int] = None
field has_dimensions: bool [Required]
field is_abstract: bool [Required]
field is_extension: bool [Required]
field is_non_xbrl: bool [Required]
field is_subtotal: bool [Required]
field label: str [Required]
field local_name: str [Required]

XBRL tag

field normalized_point_name: str [Required]
field tree_depth: int [Required]
field type: str [Required]
field unique_id: str [Required]
field document_type: str [Required]

10-K, 8-K etc

field filing_date: date [Required]

Date filing was received

URL of the filing on Edgar

classmethod parse_filing_date(value)
class calcbench.models.face.StatementType(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)