コンテンツにスキップ

決算XBRLをJSONに変換 ― 「決算そのもの」を分析、元売3社を比較

XBRLをJSONに変換する

企業が有価証券報告書を金融庁(EDINET)に提出するときは、決算データをXBRLという形式で出します。しかし、XBRLは複雑な構造で、そのまま分析に使うのは現実的ではありません。そのため、XBRLをJSONという形式に変換する必要があります。

本記事では、 取得したXBRLをJSON化し、代表的な財務指標の時系列推移を可視化します。そこで見えてきたのが、ENEOSのピークアウトです。

データ出典
EDINET:有報XBRL
TDnet:決算短信XBRL

XBRLをJSONに変換する

XBRLは、要素(タグ)と文脈(context)で値を表すXMLです。ただし同じ「売上高」でも、会計基準や業種でタグが違います。

課題 例
会計基準でタグが違う 売上 = NetSales(日本基準)/ RevenueIFRS(IFRS)
業種別タクソノミがある 石油・ガス業は jpigp_cor: の独自タグ
文脈が分離される 当期 / 前期 / 連結 / 個別が context の組み合わせで決まる
1 ファイルに数百タグ 必要な財務項目はそのうち 40 程度

そこで対応表を作成して、分析できるかたちの「JSON」 に変換します。JSONに変換した後は、Python の数行で全銘柄を横串分析できます。

JSON化した有報で、元売 3 社の 7 年を読む

有報XBRLは過去年度分も無料で取得でき、業績指標の時系列を表現できます。ここでは、2023〜2025 年提出の有報 3 本(主要経営指標 5 年表)を重ねて 2019/3〜2025/3 の 7 期分を構成し、代表的な業績指標を使って石油元売 3 社のチャートを作成しました。後の記事では、JSON化したデータを使い、アクルーアル分析やセグメント分析など、さらに深い分析を行っていきます。

規模は回復、財務体質はむしろ改善

売上高(左)と自己資本比率(右)を、同じ 7 年で重ねたチャートです。

クリックで拡大

使用データ
EDINET(有報XBRL):売上高 / 自己資本比率(2019〜2025年3月期の7期分、主要経営指標の時系列で構成)

石油元売3社の売上高・自己資本比率7年推移

  • 売上高はENEOS・コスモが 2021 年を底に回復、出光は 2019 年が底(2021 年に一度くぼむ)、規模では ━ ENEOS が突出
  • 自己資本比率は 3 社とも上昇 ― 規模を取り戻しながら財務体質はむしろ強化
  • とくに ━ コスモエネHD は 2020 年 15% → 2025 年 27% へ大幅改善、ENEOS・出光も 30% 台へ
  • 「規模(売上)」と「体質(自己資本比率)」を重ねると、1 期の損益では見えない安定度まで読める

3 社とも 2022 がピーク ― そして直近ピークアウト

純利益(左)とROE(右)の 7 年推移です。

クリックで拡大

使用データ(在庫評価損益調整なし)
EDINET(有報XBRL):純利益 / ROE(2019〜2025年3月期の7期分、主要経営指標の時系列で構成)

石油元売3社の純利益・ROE7年推移

※ コスモエネHD・出光興産の 2020 年ROEは赤字で報告値が非開示のため、純利益÷自己資本で簡易補完しています。
※ 本記事のチャートは有報XBRLの報告値そのままで、石油元売の利益・ROEに含まれる在庫評価損益(原油価格の変動で在庫の評価額が膨らむ/縮む会計上の差)は調整していません。2022 年の純利益・ROEの山は在庫評価益で水増しされた見かけの数値で、各社が決算説明資料で別途開示する「在庫影響除き」の実力利益とは別物です。利益が現金を伴っているかは、後の「アクルーアル分析」で営業CFと突き合わせて検証します。

  • 純利益は 3 社そろって 2022 年がピーク(━ ENEOS 5.4 千億円)― 原油高で在庫評価益が膨らんだ特殊年
  • ROEも一時 20〜35% まで急騰、しかし直近は優良ライン(ROE 10%)前後まで低下
  • 「2022 の記憶」と「足元の実力」のギャップが鮮明(2025 はのれん減損などの一時要因も含む)
  • 1 期だけ見ると見誤るが、7 年スパンで並べると構造が一目

営業CFは健在 ― 利益より「嘘をつきにくい」

営業・投資・財務の 3 つのキャッシュフローを、3 社分並べたチャートです。

クリックで拡大

使用データ
EDINET(有報XBRL):営業 / 投資 / 財務CF(2019〜2025年3月期の7期分、主要経営指標の時系列で構成)

石油元売3社のキャッシュフロー7年推移

  • 純利益が落ちても ━ 営業CF は概ねプラス基調(ENEOS 2023、出光 2020・2023 は運転資本要因で一時マイナス)― 本業の現金創出力は健在
  • ━ 投資CF・━ 財務CFと並べると、稼いだ現金を「投資に回したか/株主に返したか」まで読める
  • 利益は会計処理で動くが、現金の出入りは動かしにくい ― この視点は後の「アクルーアル分析」で深掘り

CFマトリクス ― 「稼ぐ力 × 投資」で会社の局面を読む

営業CFを横軸・投資CFを縦軸に取り、年ごとの点を結ぶと、会社が「稼いで投資する」局面にいるか、それとも「稼げていない」局面かが地図のように読めます。これを CFマトリクス と呼びます。横軸の右ほど本業で稼ぎ、縦軸の下ほど投資にお金を回している状態です。

クリックで拡大

使用データ
EDINET(有報XBRL):営業CF / 投資CF / 現金(2019〜2025年3月期の7期分、主要経営指標の時系列で構成)

元売3社のCFマトリクス 7 年軌跡

  • 3 社とも平常時は 右下(営業+・投資−)=稼いで投資する局面 にいて、フリーCF(水色)もプラス基調 ― 本業で稼ぎ、設備に投じる王道の形
  • ENEOS 2023 だけ営業CFがマイナスに振れ、左へ大きく外れる ― ただし運転資本の一時要因で、翌 2024 年は営業CF 1 兆円超で右へ戻る
  • 現金(バブル)は 7 年で総じて厚みを増し、営業CFが左へ振れた年も 手元資金で吸収できる体力 がある ― フリーCFがプラスの年に蓄えた現金が効く

まとめ

  • XBRLはタグ・文脈が複雑(会計基準・業種で別タグ)― 対応表でJSONに正規化 すれば、数行で全銘柄を横串分析できる
  • 元売 3 社の 7 年:売上はENEOS・コスモが 2021 年・出光が 2019 年を底に回復、自己資本比率は 3 社とも改善 ― 規模と体質を重ねて読む
  • 純利益は 3 社そろって 2022 年がピーク(在庫評価益の特殊年)― 直近はピークアウトし、ROEは優良ライン前後へ
  • 営業CFは健在 ― 利益より現金は嘘をつきにくい。この視点がアクルーアル分析へつながる

公開サイトで試す

この記事でJSONにした有報のデータ(売上・ROE・自己資本比率・営業CFなど)を、東証の主要企業(約500社)の分まで、ブラウザで探して・比べられるサイトを公開しています。元売 3 社も、会社と期を選ぶだけで、ROEと自己資本比率の関係を見られます(期は「1 期前」〜「4 期前」に切り替えられます)。

Python コード

本記事のチャート画像・アプリ・データ取得・成形スクリプトは、すべて GitHub に公開しています。データは提供元の利用規約により再配布できませんが、データを各自取得すれば、この記事と同じものが再現できます(動かし方はリポジトリの README 参照)。

📌 自作アプリ紹介

― キャッシュフローマトリクス ―

証券コードを入力するだけで、本記事の キャッシュフローマトリクス(営業CF × 投資CF)を会社ごとにブラウザで並べて表示する Streamlit アプリ(app_cf_matrix.py)です。有報XBRL(EDINET公開データ)を読むので、無料で何社でも比較できます。

クリックで拡大

CFマトリクス アプリ画面