Financial data
Three families of method return financial figures.
| Method | Shape |
|---|---|
financials, balance_sheet, cashflow | The statements folded into yfinance’s line items |
get_jp_financials | Japanese items yfinance has no name for |
get_statements | Every line of the filed statements, in the filed order |
Statements
get_income_stmt
Ticker.financials -> pandas.DataFrame
Ticker.income_stmt -> pandas.DataFrame
Ticker.get_income_stmt(as_dict=False, pretty=False, freq="yearly")
Ticker.get_financials(as_dict=False, pretty=False, freq="yearly")Income statement. financials, income_stmt, incomestmt and get_financials are aliases
of the same data, as in yfinance.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
as_dict | bool | False | Return a dict instead of a DataFrame |
pretty | bool | False | Space-separated row labels (Total Revenue) instead of keys (TotalRevenue) |
freq | str | "yearly" | "yearly", "semiannual" or "quarterly". "trailing" raises ValueError |
Returns — pandas.DataFrame, line items as rows and period end dates as columns, newest
first. Values are in yen.
2026-03-31 2025-03-31
Total Revenue 48036704000000 45095325000000
Operating Income 4795586000000 5352934000000
Net Income 4765840000000 4765096000000The keys that can appear are listed under Financial keys. A key jfinance has no source for does not appear as a row at all, the same as in yfinance. Which rows you get therefore depends on the company and on how far back you ask.
get_balance_sheet
Ticker.balance_sheet -> pandas.DataFrame
Ticker.get_balance_sheet(as_dict=False, pretty=False, freq="yearly")Balance sheet. balancesheet and get_balancesheet are aliases. Parameters and return shape
are as for get_income_stmt.
get_cash_flow
Ticker.cashflow -> pandas.DataFrame
Ticker.get_cash_flow(as_dict=False, pretty=False, freq="yearly")Cash flow statement. cash_flow and get_cashflow are aliases. Parameters and return shape
are as for get_income_stmt.
Quarterly and semi-annual attributes
quarterly_financials, quarterly_income_stmt, quarterly_balance_sheet and
quarterly_cashflow are shorthand for the corresponding method with freq="quarterly".
Quarterly reporting was abolished in April 2024 and replaced by semi-annual reporting, so
quarterly figures stop at fiscal 2023. Use freq="semiannual" from fiscal 2024 onwards.
get_jp_financials
Ticker.get_jp_financials(freq="yearly", start=None) -> pandas.DataFrameItems disclosed in Japan that yfinance has no equivalent name for: ordinary income, book value per share, headcount, and the line items particular to banks and insurers.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
freq | str | "yearly" | "yearly", "semiannual" or "quarterly" |
start | str | None | Earliest period end to return, as "2020-03-31". All periods when omitted |
Returns — pandas.DataFrame, keys as rows and period end dates as columns.
A key with no value at all produces no row, since which items apply depends on the industry
(the bank and insurer line items, for instance).
get_statements
Ticker.statements -> pandas.DataFrame
Ticker.get_statements(freq="yearly", consolidated=None) -> pandas.DataFrameEvery line of the filed statements, in the order and hierarchy of the filing itself, taken from the XBRL presentation linkbase. Values have amendment filings applied. The skeleton of rows comes from the most recent filing.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
freq | str | "yearly" | "yearly", "semiannual" or "quarterly" |
consolidated | str | None | None (consolidated, falling back to standalone), "consolidated" or "standalone" |
Returns — pandas.DataFrame, one row per displayed line.
| Column | Type | Description |
|---|---|---|
Role | str | Name of the statement the line belongs to |
Label | str | Label as displayed in the filing |
Local Name | str | XBRL element name |
Depth | int | Indent level in the filing |
Is Abstract | bool | Heading rows carrying no value |
| fiscal year | float | One column per fiscal year, named by the year as an int |
get_segments
Ticker.segments -> pandas.DataFrame
Ticker.get_segments(freq="yearly", consolidated=None) -> pandas.DataFrameSegment information for every fiscal year. One filing is chosen per year, and only that filing’s rows are returned, so original and amended rows are never mixed.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
freq | str | "yearly" | "yearly", "semiannual" or "quarterly" |
consolidated | str | None | None, "consolidated" or "standalone" |
Returns — pandas.DataFrame, one row per fiscal year × segment × metric.
| Column | Type | Description |
|---|---|---|
Fiscal Year | int | Fiscal year |
Period End | datetime64 | Period end date |
Segment, Segment Label | str | Segment key and its label as filed |
Role | str | segment, other, subtotal, total or adjustment |
Is Adjustment | bool | Reconciliation rows |
Metric | str | Metric key, as in seg_revenue |
Value | float | Value |
Unit | str | Unit |
Consolidated | str | consolidated or standalone |
Accounting Standard | str | Japan GAAP, IFRS or US GAAP |
Document ID | str | EDINET document ID |
Segment totals do not reconcile to the consolidated figures, because of adjustments and inter-segment eliminations. Segment names are used as filed and are not matched across fiscal years.
Defaults
set_financials_start
jfinance.set_financials_start(start) -> NoneSets the earliest period the statement methods return.
Parameters
| Name | Type | Description |
|---|---|---|
start | str, datetime, None | Earliest period end. None restores the default, which is every period the server holds |
yfinance fixes this at 2016-12-31. jfinance does not, so financials returns every fiscal
year by default.
jf.set_financials_start("2020-03-31")set_financials_basis
jfinance.set_financials_basis(consolidation="auto", version="latest") -> NoneSets the consolidation basis and the version of the figures that the statement methods return. Applies globally, for the life of the process.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
consolidation | str | "auto" | "auto" (consolidated, falling back to standalone), "consolidated", "standalone" |
version | str | "latest" | "latest" applies amendment filings. "as_filed" returns the figures as originally filed |
Any other value raises ValueError.
jf.set_financials_basis(consolidation="standalone", version="as_filed")Amendments to filings past their EDINET public inspection period cannot be retrieved, so
version="latest"may still hold a pre-amendment figure for an older fiscal year. See Data notes.