Shareholders

Japanese disclosure splits shareholder information across several filings, and jfinance exposes each one separately rather than merging them.

MethodSource
major_holdersAnnual report, ownership breakdown
major_shareholdersAnnual report, major shareholders
institutional_holdersLarge shareholding reports, special filing rule
insider_roster_holdersAnnual report, officers
large_holders, large_holder_transactions, large_holder_activity, large_holding_reportsLarge shareholding reports

From the annual report

get_major_holders

Ticker.major_holders -> pandas.DataFrame
Ticker.get_major_holders(as_dict=False) -> pandas.DataFrame | dict

Ownership percentages by holder type, from the ownership breakdown in the annual report. Available from fiscal 2019 annual reports.

Parameters

NameTypeDefaultDescription
as_dictboolFalseReturn a dict instead of a DataFrame

Returns — pandas.DataFrame with one column, Value, indexed by the keys below.

IndexTypeDescription
institutionsPercentHeldfloatFinancial institutions + securities firms + foreign corporations
institutionsCountfloatNumber of such holders
insidersPercentHeldfloatOfficers’ holdings
financialInstitutionsPercentHeldfloatFinancial institutions
financialServiceProvidersPercentHeldfloatSecurities firms
otherCorporationsPercentHeldfloatOther corporations
foreignCorporationsPercentHeldfloatForeign corporations
foreignIndividualsPercentHeldfloatForeign individuals
individualsAndOthersPercentHeldfloatIndividuals and others
asOfDateintRecord date, Unix seconds
sourceDocumentIdstrEDINET document ID

Percentages are decimals, so 0.8669 is 86.69%. Where the unit of an officer’s shareholding cannot be read from the filing, insidersPercentHeld is omitted — jfinance does not fill a value by guessing.

get_major_shareholders

Ticker.major_shareholders -> pandas.DataFrame
Ticker.get_major_shareholders(as_dict=False, year=None) -> pandas.DataFrame | dict

The top ten shareholders named in the annual report. Registered holders, so trust bank accounts appear at the top; this is not a beneficial ownership list.

Parameters

NameTypeDefaultDescription
as_dictboolFalseReturn a dict instead of a DataFrame
yearintNoneFiscal year of the annual report. Latest when omitted. Available years are in .attrs["years"]

Returns — pandas.DataFrame, one row per shareholder.

ColumnTypeDescription
Date Reporteddatetime64Record date
HolderstrHolder name as filed
AddressstrAddress as filed
pctHeldfloatHolding ratio, as a decimal
SharesintShares held
RankintRank, 1 to 10
Document IDstrEDINET document ID

get_insider_roster_holders

Ticker.insider_roster_holders -> pandas.DataFrame
Ticker.get_insider_roster_holders(as_dict=False) -> pandas.DataFrame | dict

Officers and the shares they hold, from the annual report, under yfinance’s column names.

Returns — pandas.DataFrame

ColumnTypeDescription
NamestrName as filed
PositionstrTitle
Shares Owned DirectlyintShares held
Position Direct Datedatetime64Record date
URL, Most Recent Transaction, Latest Transaction Date—Present for yfinance compatibility and always empty; EDINET discloses no insider transactions

From large shareholding reports

Large shareholding reports are filed under the 5% rule. They are filed by the holder, not by the company, and cover companies and individuals as well as institutions.

get_institutional_holders

Ticker.institutional_holders -> pandas.DataFrame
Ticker.get_institutional_holders(as_dict=False) -> pandas.DataFrame | dict

Institutions holding over 5%, from large shareholding reports filed under the special rule available to institutional investors. Column names follow yfinance.

Returns — pandas.DataFrame

ColumnTypeDescription
Date Reporteddatetime64Record date
HolderstrHolder name
pctHeldfloatHolding ratio, as a decimal
SharesintShares held
pctChangefloatChange from the previous report
holderEdinetCodestrEDINET code of the holder
sourceDocumentIdstrEDINET document ID
Value—Present for yfinance compatibility and always empty; valuing the holding needs a share price

get_large_holders

Ticker.large_holders -> pandas.DataFrame
Ticker.get_large_holders(as_dict=False) -> pandas.DataFrame | dict

Every filer of a large shareholding report, including companies and individuals, one row per holder showing their most recent report.

Returns — pandas.DataFrame

ColumnTypeDescription
Date Reporteddatetime64Record date
HolderstrHolder name
pctHeldfloatHolding ratio, as a decimal
SharesfloatShares held
pctChangefloatChange from the previous report
Date Fileddatetime64Filing date
Holder EDINET CodestrEDINET code of the holder
Document IDstrEDINET document ID

get_large_holder_transactions

Ticker.large_holder_transactions -> pandas.DataFrame
Ticker.get_large_holder_transactions(as_dict=False) -> pandas.DataFrame | dict

Acquisitions and disposals in the preceding 60 days, as disclosed in large shareholding reports. The 100 most recent, with identical trades merged into one row.

Returns — pandas.DataFrame

ColumnTypeDescription
Datedatetime64Trade date
HolderstrHolder name
Actionstracquire or dispose
Action TextstrWording used in the filing
SharesfloatShares traded
Unit PricefloatPrice per share
ValuefloatConsideration
Security TypestrType of security
MarketstrVenue
Holder EDINET CodestrEDINET code of the holder
Document IDstrEDINET document ID

get_large_holder_activity

Ticker.large_holder_activity -> pandas.DataFrame
Ticker.get_large_holder_activity(as_dict=False) -> pandas.DataFrame | dict

The above summarised over six months, counted back from the most recent filing date in the data. Ordinary shares and investment units only. The shape matches yfinance’s insider_purchases: seven rows, with Shares and Trans columns.

get_large_holding_reports

Ticker.large_holding_reports -> pandas.DataFrame
Ticker.get_large_holding_reports(limit=100, offset=0) -> pandas.DataFrame

Every large shareholding report filed for the security, newest first, one row per joint holder. The total number of reports is in .attrs["total"].

Parameters

NameTypeDefaultDescription
limitint100Rows to return
offsetint0Rows to skip

Returns — pandas.DataFrame

ColumnTypeDescription
Date Filed, Base Datedatetime64Filing date and record date
TitlestrTitle of the filing
Holder, Holder Type, Is Jointstr, str, boolHolder, its classification, and whether it is a joint holder
pctHeld, Previous pctHeldfloatHolding ratio now and in the previous report
Shares, Total OutstandingfloatShares held and shares outstanding
Purpose, Important Proposal, ReasonstrPurpose of holding, whether an important proposal is intended, and the reason for filing
Holder EDINET Code, Document IDstrEDINET codes