Financial data

Three families of method return financial figures.

MethodShape
financials, balance_sheet, cashflowThe statements folded into yfinance’s line items
get_jp_financialsJapanese items yfinance has no name for
get_statementsEvery 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

NameTypeDefaultDescription
as_dictboolFalseReturn a dict instead of a DataFrame
prettyboolFalseSpace-separated row labels (Total Revenue) instead of keys (TotalRevenue)
freqstr"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   4765096000000

The 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.DataFrame

Items 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

NameTypeDefaultDescription
freqstr"yearly""yearly", "semiannual" or "quarterly"
startstrNoneEarliest 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.DataFrame

Every 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

NameTypeDefaultDescription
freqstr"yearly""yearly", "semiannual" or "quarterly"
consolidatedstrNoneNone (consolidated, falling back to standalone), "consolidated" or "standalone"

Returns — pandas.DataFrame, one row per displayed line.

ColumnTypeDescription
RolestrName of the statement the line belongs to
LabelstrLabel as displayed in the filing
Local NamestrXBRL element name
DepthintIndent level in the filing
Is AbstractboolHeading rows carrying no value
fiscal yearfloatOne 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.DataFrame

Segment 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

NameTypeDefaultDescription
freqstr"yearly""yearly", "semiannual" or "quarterly"
consolidatedstrNoneNone, "consolidated" or "standalone"

Returns — pandas.DataFrame, one row per fiscal year × segment × metric.

ColumnTypeDescription
Fiscal YearintFiscal year
Period Enddatetime64Period end date
Segment, Segment LabelstrSegment key and its label as filed
Rolestrsegment, other, subtotal, total or adjustment
Is AdjustmentboolReconciliation rows
MetricstrMetric key, as in seg_revenue
ValuefloatValue
UnitstrUnit
Consolidatedstrconsolidated or standalone
Accounting StandardstrJapan GAAP, IFRS or US GAAP
Document IDstrEDINET 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) -> None

Sets the earliest period the statement methods return.

Parameters

NameTypeDescription
startstr, datetime, NoneEarliest 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") -> None

Sets the consolidation basis and the version of the figures that the statement methods return. Applies globally, for the life of the process.

Parameters

NameTypeDefaultDescription
consolidationstr"auto""auto" (consolidated, falling back to standalone), "consolidated", "standalone"
versionstr"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.