Get free API key

Learn

JGAAP vs IFRS vs US GAAP in Japanese filings

Japanese listed companies report under JGAAP, IFRS or US GAAP. Profit stages and line-item names differ by standard, so lining them up naively leads to wrong comparisons. This guide explains the differences and how ZENITH Code handles them.

eventExample values are taken from API responses as of October 23, 2026. Financial and dividend data are refreshed daily, keyed to 16:30 (TDnet) and 19:00 (EDINET), Japan time.

What you will learn

  • check_circleOrdinary income and extraordinary items exist only under JGAAP. For IFRS and US GAAP filers they are null.
  • check_circlenull means not available under that standard or not disclosed for that period. It never means zero.
  • check_circleCompany-specific line items can be traced down to XBRL elements with financial-facts.

Why the standard matters

Each accounting standard defines its own profit stages and line items. Two figures both called profit can include different income and expenses.

Ordinary income (keijo rieki), a favorite of Japanese investors, exists only under JGAAP. Rank companies by it and every IFRS filer silently drops out.

Profit stages compared

In short, revenue, pretax income and net income compare well across all three standards. Ordinary income and extraordinary items are JGAAP-only.

Item (API field)JGAAPIFRSUS GAAP
Revenue (revenue)YesYes (often called revenue from contracts)Yes
Operating income (operatingIncome)Yes (gross profit − SG&A)Not defined by the standard; presented at the company's discretionPresented by most companies
Ordinary income (ordinaryIncome)YesNo (null)No (null)
Extraordinary income and loss (extraordinaryIncome, extraordinaryLoss)YesNo (null)No (null)
Pretax income (pretaxIncome)YesYesYes
Net income attributable to owners (netIncomeAttributableToOwners)YesProfit attributable to owners of the parentYes

The standard is given by accountingStandard in each response (e.g. ifrs).

How ZENITH Code handles it

ZENITH Code fills common, comparable fields and leaves items that do not exist under a standard as null. It never fills a missing value with a different line item.

  • Detecting the standard: from the XBRL file format and the filing's cover page.
  • Equity: normalized to equity attributable to owners of the parent. Under IFRS that is the parent owners' equity, under US GAAP shareholders' equity, and under JGAAP net assets minus non-controlling interests and stock acquisition rights.
  • Consolidated vs parent-only: when a company files consolidated statements but an item exists only on a parent-only basis, it is not placed in the consolidated row and stays null.
  • Irregular periods: periods that are not 12 months long, for example after a change of fiscal year-end, are excluded from annualized metrics. fiscalPeriodDays gives the actual length.

Example: Toyota Motor (7203) reports under IFRS

Toyota reports under IFRS. For the fiscal year ended March 2026, accountingStandard is ifrs, and ordinary income and extraordinary items are null.

Revenue is ¥50.68 trillion, operating income ¥3.766 trillion and pretax income ¥5.153 trillion. The operating margin is 0.0743 in the API, shown as 7.43%.

In key-metrics, metricNullReasons lists withheld_solo_in_consolidated_row for ordinary income. Only a parent-only figure existed, so it was kept out of the consolidated row.

ItemAPI valueDisplay (¥ trillion)
Revenue revenue5068495200000050.68
Operating income operatingIncome37662160000003.766
Ordinary income ordinaryIncomenull—
Pretax income pretaxIncome51529960000005.153
Net income netIncome38480980000003.848

Source: the 2026-03 / FY row of /stable/income-statement?symbol=7203&period=annual as of October 23, 2026. Amounts in yen.

Example
curl -sG "https://api.zenithcode.net/stable/income-statement" \
  --data-urlencode "symbol=7203" \
  --data-urlencode "period=annual" \
  --data-urlencode "limit=3" \
  -H "x-api-key: YOUR_API_KEY"

Tracing company-specific items

Besides the standard taxonomy, statements contain items companies define themselves. Normalizing to standard fields hides them.

financial-facts returns the annual report's XBRL element by element, with Japanese and English labels. Toyota's balance sheet for the fiscal year ended March 2026 has a custom element, receivables related to financial services (¥13.48 trillion). The company's EDINET code E02144 inside the element name marks it as company-specific.

To see the parent-child structure, financial-statement-full returns every filed line item with its hierarchy.

Find custom items by element name
curl -sG "https://api.zenithcode.net/stable/financial-facts" \
  --data-urlencode "symbol=7203" \
  --data-urlencode "category=Balance_Sheet" \
  --data-urlencode "tag=Receivables" \
  -H "x-api-key: YOUR_API_KEY"

Caveats when comparing across standards

  • Rankings by ordinary margin drop IFRS and US GAAP filers as null. For market-wide comparisons, use pretax or net income.
  • IFRS operating income covers different income and expenses from company to company. Check the notes before comparing, even within an industry.
  • Do not treat null as 0 in sums or averages. It skews the result.
  • A change of standard breaks the continuity of a company's series. Check whether accountingStandard changed.

FAQ

For investors and developers

Why is ordinary income null for IFRS companies?
IFRS has no ordinary income stage. ZENITH Code does not fill it with another item and returns null. Use pretax income (pretaxIncome) for comparisons.
Can I compare operating income across standards?
As a rough guide, yes. But IFRS does not define operating income, and its scope varies by company. For strict comparisons, look at pretax and net income as well.
How do I find out which standard a company uses?
Check accountingStandard in any financial endpoint's response. It is set per fiscal period, so you can also see the year a company switched.

For AI builders and researchers

Can null be treated as 0?
No. In ZENITH Code, null means there was no corresponding disclosure for that period, which is different from zero. Tell your model explicitly that null means not disclosed.
Can I tell why a metric is null?
metricNullReasons in key-metrics gives a reason code per metric. For example, withheld_solo_in_consolidated_row means only a parent-only value existed, so it was kept out of the consolidated row.
Can I extract items that are not in the standard fields programmatically?
Yes. Use financial-facts with category and tag (partial element name). Rows include Japanese and English labels and the consolidated or parent-only context.
gavel

Disclaimer

This guide explains how the data works and how to use the API. It does not recommend buying or selling any security and is not investment advice. Example values reflect responses at the time of writing and may change with later filings or corrections. Investment decisions are your own responsibility.