経済

トヨタの売上は伸びたのに営業利益は減った――2年分の有報をAIと比べる実践

議論参加:ハナ (投資を始めたばかりの読者) / リョウコ (企業開示を読む個人投資家) / ミサキ (会計・連結システムの実務経験者) / サエ (サステナビリティ開示を読む研究者) / テツオ (企業開示を検証する編集担当)

XBRLをはじめる #4/下書き・未公開

トヨタ自動車の2025年3月期の連結営業収益は48兆367億円で、前年の45兆953億円から約6.5%増えた。一見すると「売上は伸びた」で終われる。しかし同じ連結損益計算書の営業利益は、5兆3,529億円から4兆7,956億円へ約10.4%減っている。

売上が増え、利益が減る。この二つの事実を並べただけで「収益力が悪化した」「将来は暗い」とAIに言わせるのは早い。どの事業が売上を増やしたのか。コスト、投資、会計上の見積り、為替など、何を読めば理由に近づけるのか。2年分の有価証券報告書を比べる意義は、この問いを曖昧な感想から確認可能な調査へ変えることにある。

今回は第2・3回で使ったトヨタ自動車の第121期有価証券報告書(2025年3月期、2025年6月18日提出)を題材にする。この書類の連結財務諸表とセグメント注記には、2024年3月期と2025年3月期の比較数値が同じ表に掲載されている。別々のPDFを突き合わせる前に、まずこの比較列を使う。

第2回では無料ツールでXBRLを開く手順を、第3回ではAIに質問する前に数字の住所を決める手順を扱った。今回は、その次の段階だ。最新の有報XBRLを一つだけ解凍し、そのフォルダを丸ごとAIへ渡す。 最新の連結財務諸表には通常、前年の比較列も入っているため、最初の2年比較なら二つのZIPを用意する必要はない。

結論:トヨタの例で見えるのは、「売上増」だけでは答えにならないということだ。 期間・連結範囲・単位・定義をそろえ、セグメント別の数字と注記の文章を続けて読む。AIには変化の候補と根拠の場所だけを出させ、原因や投資判断は原文を読んでから保留を含めて決める。

この記事を読み終えたときの到達点は三つだ。

  1. 前年と今年の数字を比べてよい条件を確認できる。
  2. 売上・投資・事業の地図・リスクを、数字と文章で一組ずつ比べられる。
  3. EDINETからダウンロードしたZIPを解凍し、フォルダを一回の指示でAIに渡して、原文へ戻れる比較表を作れる。

まず知っておきたい:「比較可能」とは何か

比較可能性とは、二つの数字を並べたとき、その差を事業の変化として読んでも大きく外さない状態のことだ。数字がどちらも正しくても、集計の条件が異なれば、差は会社の実力だけを示さない。

ミサキ(会計・連結システムの実務経験者)は、前年比の表を作る前に一度止まるべきだと話した。組織再編、連結範囲、会計方針、セグメント区分、表示方法が変わると、同じ名前の数字でも前年と同じ意味とは限らないからだ。

最初にそろえる条件何を確認するかそろっていない場合の扱い
期間12か月同士か。決算期の変更や変則期間はないか増減率を出さず、期間差をメモする
範囲連結と単体を混ぜていないか。子会社の取得・売却はないか同じ範囲の数値を探す。見つからなければ比較を保留する
単位・通貨円・百万円、円換算の有無、丸め方単位をそろえる前に差を計算しない
項目の意味同じ表の同じ行か。コンセプトや注記が変わっていないかラベルだけで同一視しない。定義と表の位置を読む
訂正・再表示訂正報告書、比較数値の再表示、会計方針変更の注記はあるか最新の書類を基準にし、前年値の扱いを記録する

EDINETで閲覧できる有価証券報告書には、財務諸表だけでなく事業の状況、リスク、設備投資などの説明が含まれる。EDINETの書類閲覧案内は、提出書類の検索・閲覧の入口を示している。まず同じ書類種別の前年・今年を開き、上の条件を一枚のメモに書き出す。

2分で作る「比較カード」

難しい分析に入る前に、次のような空欄を埋める。ここで空欄が残るなら、AIに「前年から何が変わったか」と聞く段階ではない。

項目前年の書類今年の書類確認結果
書類名・提出日同じ書類種別か
対象期間12か月同士か
連結/単体範囲は同じか
表示単位単位をそろえたか
比較を左右する注記再表示・区分変更などはあるか

このカードは、XBRLを使う意味ともつながる。XBRLのファクトには、値だけでなく、何の項目かを示すコンセプト、対象期間や連結範囲を示すコンテキスト、単位といった情報が結び付く。第3回で確認したように、表示ラベルが同じでもコンセプトが異なる場合がある。ラベルが似ているから比べるのではなく、表の位置とファクトの条件が対応しているかを確認する。

実例:トヨタの比較カードを埋める

今回の数字は、トヨタの2025年3月期有価証券報告書の「連結損益計算書」と「セグメント情報」から取った。表の前年列と当年列を使うため、比較対象はともに3月31日に終了した1年間、連結、単位は百万円でそろっている。第3回で確認したXBRLでは、営業収益と営業利益の連結合計はそれぞれ同じコンセプト名に、前年を示す Prior1YearDuration と当年を示す CurrentYearDuration のコンテキストが付く。

比較カード今回の確認結果どこで確認したか
書類トヨタ自動車 第121期有価証券報告書表紙・提出書類
期間2024年3月期と2025年3月期の各1年間連結損益計算書、セグメント情報の列見出し
範囲連結表題と連結合計の列
単位百万円各表の単位表示
項目営業収益、営業利益、資本的支出連結損益計算書とセグメント情報

ここで言えるのは「この表の範囲では、同じ期間・同じ連結範囲・同じ単位で比較を始められる」ということまでだ。買収・売却、会計方針の変更、再表示などが比較を大きく左右していないかは、必要に応じて注記を読む。比較カードは、比較してよいという許可証ではなく、どこを確認したかの記録である。

最初の発見:売上の増加と利益の減少は、同じ表にある

連結損益計算書から、最初に拾える数字は次の二つだ。増減率は本記事で、表の百万円単位の値から計算した(小数第1位に丸め)。

連結・通期(百万円)2024年3月期2025年3月期増減ここで確定する事実
営業収益45,095,32548,036,704+6.5%連結営業収益は増えた
営業利益5,352,9344,795,586-10.4%連結営業利益は減った

出典:トヨタ自動車第121期有価証券報告書の連結損益計算書。図と増減率は本記事の編集上の整理であり、会社が示す業績予想や投資判断ではない。

この表だけで、「なぜ利益が減ったか」は分からない。リョウコ(企業開示を読む個人投資家)は、ここで数字をもう一つ増やすのではなく、利益を作る事業ごとの表へ移るべきだと主張した。売上と利益を連結合計だけで眺めると、増えた場所と減った場所が混ざるためだ。

比べる順番は、「数字 → 文章 → もう一度数字」

2年比較の作業を一本道にすると、次のようになる。文章だけで印象を作らず、数字だけで原因を決めつけないための往復だ。

図は本記事の編集上の整理。四つの段階のどこかで条件が合わなければ、先へ進まず「比較保留」と書く。

初心者が開く四つの窓

リョウコ(企業開示を読む個人投資家)は、最初から何十項目も追わない。「収益」「投資」「事業の地図」「リスク」の四つに絞ると、数字と文章のつながりを見失いにくいという。

まず数字で見るもの次に文章で確かめるもの読み違えを防ぐ問い
1. 収益売上、利益、営業キャッシュフロー増減理由、一時要因、価格・数量などの説明売上だけで「好調」と決めていないか
2. 投資設備投資、研究開発、資産・負債の増減何へ投じるか、回収までの期間、資金の出所将来の投資か、維持・対処の支出か
3. 事業の地図セグメント、地域、主要な商品・顧客の構成区分の変更、成長の前提、依存先前年と同じ区分で比べているか
4. リスク引当金、減損、契約残高など数値があれば確認新設・削除・書き換えられたリスク、対策記載量だけで深刻さを決めていないか

トヨタの四つの窓:次にどこを読むか

セグメント情報の表には、前年と当年の「外部顧客への営業収益」「営業利益」「資本的支出」が載っている。ここでは外部顧客への営業収益を使う。セグメント間取引を含む「計」と混ぜないためだ。

原本から確認できる比較値(百万円)変化そこから読むべき文章まだ言えないこと
収益自動車の外部顧客への営業収益:41,080,731 → 42,996,299+4.7%自動車事業の増減理由、価格・台数・地域などの説明自動車需要が一様に強い
事業の地図金融の外部顧客への営業収益:3,447,195 → 4,437,827+28.7%セグメントの概要、金融・リース事業の説明連結売上の増加を自動車販売だけが作った
投資連結の資本的支出:4,848,042 → 5,991,268+23.6%投資目的、資金調達、稼働時期、維持更新の説明増加分がすべて成長投資である
リスク・見積り当年の注記は品質保証、金融損失引当金、減損などを重要な見積りの領域として列挙数値比較ではなく読解の入口各見積りの前提・感応度・関連する注記記載があるから危機が迫っている

この表から、トヨタの連結営業収益の増加を「自動車だけの話」と扱えないことが分かる。金融セグメントの外部顧客への営業収益も大きく増えている。また、資本的支出は連結で増え、そのうち金融セグメントは2兆7,639億円から3兆6,879億円へ増加している。これは表から確認できる事実だ。

一方で、これらの数値だけから「金融が成長をけん引した」「投資が将来の利益を保証する」といった因果関係は導けない。トヨタのセグメント注記は、主要部分が自動車と金融で構成され、金融は自動車などの販売を補完する金融・リース事業を行うと説明する。ここで初めて、数字を事業の説明と並べて読む足場ができる。

サエ(サステナビリティ開示を読む研究者)は、重要な見積りに関する文章も同じ扱いにするよう求めた。今回の注記に品質保証、金融事業に係る金融損失引当金、非金融資産の減損などが並ぶことは確認できる。しかし、前年より危険が増えたという意味にはならない。文章の有無や長さではなく、前提・金額・対象範囲が前年とどう違うかを原文で確かめる必要がある。

数字は変化の場所を教える。文章は、その変化に付いた条件を教える。二つが一致しないこと自体が異常とは限らないが、一致しない理由を読まずに「良い」「悪い」と決めるのが危険だ。

最短の実践:解凍した有報フォルダを、一回だけ渡す

AIに有報を読ませるとき、初心者が最初にやることは、CSVを作ることでも、iXBRLの個別ファイルを探すことでもない。EDINETからダウンロードした最新のXBRL ZIPを解凍し、そのフォルダを丸ごと渡すことだ。

最新の有報には前年の比較列が含まれるため、この方法で「前年と今年」の比較ができる。トヨタの例でも、一つの解凍済みフォルダだけを渡し、AIに manifest_PublicDoc.xml を探させた。マニフェストは、その有報を構成するiXBRL文書の一覧である。AIはそこから連結損益計算書とセグメント情報を開き、必要な値を拾った。

図は本記事の編集上の整理。最新有報の比較列を使う最初の分析では、前年・当年のZIPを二つ渡す必要はない。

Finderとターミナルでやることは二つだけ

  1. EDINETで対象会社の最新の有価証券報告書を開き、XBRL一式のZIPをダウンロードする。FinderでZIPをダブルクリックして解凍する。
  2. ターミナルでCodex CLIを開き、下の [解凍したフォルダのパス] を自分のフォルダに置き換えて実行する。Finderからフォルダをターミナルへドラッグすると、パスを打ち直さずに貼り付けられる。

read-only は、AIにファイルの読み取りだけを許可し、書き換えをさせない指定である。以下の依頼は一回で「比較条件」「数値の表」「原本で次に確認する点」を返させる。つまり、AIとの往復を増やさず、結論だけを急がせない形にしている。

codex exec -m gpt-5.6-terra -s read-only <<'PROMPT'
次のフォルダは、EDINETからダウンロードして解凍した有価証券報告書のXBRL一式です。

[解凍したフォルダのパス]

このフォルダの中で manifest_PublicDoc.xml を見つけ、そこに列挙されたiXBRL文書から必要な表を探してください。
外部情報は使わず、ファイルは変更せず、投資判断・株価予想・増減原因の断定はしないでください。

最新年度の比較列を使い、次を一回の回答で作ってください。
1. 比較条件の確認表:対象期間、連結/単体、表示単位、比較保留があればその理由
2. 比較表:連結の売上(または営業収益)、営業利益、必要ならセグメント別の外部顧客への収益と資本的支出。
   各行に前年値、当年値、増減率、XBRLコンセプト名、contextRefの意味、原本の表の名称を付けること。
3. 原本へ戻って確認すべき点を3項目。値だけからは分からないことを明記すること。

ルール:
- 同じラベルでも、コンセプト、期間、連結範囲、単位、セグメントが異なれば統合しない。
- 根拠が見つからない項目は「見つからない」または「比較保留」と書く。
- 原本にない原因やページ番号を作らない。
PROMPT

ここではArelleを開かなくてもよい。AIが返す contextRef やコンセプト名が気になったときだけ、第2・3回の手順でArelleを開き、該当ファクトを追えばよい。最初から画面操作とAIへの指示を両方覚えようとしないことが、続けるコツになる。

実行してみた:一つのフォルダから、AIは何を拾えたか

この記事では実際に、トヨタの2025年3月期有報の解凍済みフォルダを gpt-5.6-terra に読み取り専用で渡した。AIはフォルダ内の manifest_PublicDoc.xml から連結損益計算書とセグメント情報を特定し、次の表を返した。値、コンセプト名、コンテキストは原本のiXBRLと再照合している。

Codex CLIが抽出した項目前年 → 当年(百万円)コンセプトcontextRef の要点原本の確認場所
連結営業収益合計45,095,325 → 48,036,704...:TotalNetRevenuesIFRSPrior1YearDurationCurrentYearDuration連結損益計算書「営業収益合計」
連結営業利益5,352,934 → 4,795,586jpigp_cor:OperatingProfitLossIFRSPrior1YearDurationCurrentYearDuration連結損益計算書「営業利益」
金融の外部顧客への営業収益3,447,195 → 4,437,827...:OperatingRevenueFromExternalCustomersIFRS年度に加え FinancialServicesReportableSegmentMemberセグメント情報「外部顧客への営業収益」・金融列
連結の資本的支出4,848,042 → 5,991,268jpigp_cor:CapitalExpendituresIFRSPrior1YearDurationCurrentYearDurationセグメント情報「資本的支出」・連結列

この結果の重要な点は、数字の正しさをAIが保証したことではない。たとえば金融の営業収益には、年度を示す部分だけでなく FinancialServicesReportableSegmentMember が付く。これは同じ収益のコンセプトでも、連結合計ではなく金融セグメントの値であることを区別する手掛かりだ。一方、連結合計の資本的支出にはそのセグメント指定がない。ラベルが似ていても、contextRef を見ずに一列へ並べれば、別の範囲の数字を混ぜることになる。

Terraは、営業利益の減少理由や投資の効果を断定せず、「営業利益の増減説明」「販売費及び一般管理費」「金融債権・リース・金融損失引当金」などを次に確認する候補として挙げた。この止まり方は、初心者にとって大切だ。AIが原因を流暢に説明するほど、原文にない因果関係を含む危険も増す。「断定できないこと」を明記できたかを、回答の品質基準にする。

実行結果を採用する前の確認

Codex CLIの出力を、そのままノートへ写さない。次の三つがそろった行だけを「確認済み」にする。

  1. 値が、原本の同じ表・前年列・当年列と一致する。
  2. contextRef が、連結合計かセグメントか、前年か当年かを説明できる。
  3. unitRefscale が、表の表示単位と矛盾しない。

一つでも説明できなければ、その行は「AIが見つけた候補」に戻す。これが、AIに有報を読ませるときの最も重要な境界線になる。

二つのZIPを渡すのは、いつか

二つの解凍済みフォルダを同時に渡す方法もある。ただし、それは最新有報の比較列では足りないときの応用である。たとえば、最新書類に載らない5年前との比較や、過去に変更された表示・注記を詳しく追う場合だ。

そのときも、ファイルを一つずつ指定する必要はない。二つのフォルダのパスと、それぞれの対象期間を同じ依頼に書く。ただし、AIには「各フォルダ内で manifest_PublicDoc.xml から探す」「期間、連結範囲、単位、コンセプトが一致しない行は比較保留」と命じる。二つ渡せば精度が上がるのではなく、確認する条件が増える。 初回は一つの最新有報から始める方が、間違いを見つけやすい。

AIの返答を読むときの、最後の30秒

一回の回答を受け取ったら、会話を続ける前に次の三点だけを見る。

  1. 値が、原本の同じ表の前年列・当年列と一致するか。
  2. contextRef から、連結合計かセグメントか、前年か当年かを説明できるか。
  3. unitRefscale が、表の表示単位と矛盾しないか。

一つでも説明できなければ、その行は「AIが見つけた候補」に戻す。必要な場合だけ、Arelleで当該ファクトを開く。AIにもう一問追加する前に原本を見ることで、会話の往復を増やさずに精度を上げられる。

最後に作るのは、結論ではなく三列の比較メモ

調査を始めたばかりの段階で、買い・売りや「良い会社/悪い会社」の結論を急ぐ必要はない。ハナ(投資を始めたばかりの読者)が求めたのは、専門用語を覚えることより、AIの自信ありげな言葉に引きずられずに止まる方法だった。

そこで、比較の最後には必ず三列を置く。左端しか埋まらない日があってもよい。それは失敗ではなく、次に読む場所が分かった状態だ。

確認できた事実自分の仮説未確認・次に読む場所
トヨタの連結営業収益は増え、営業利益は減った。対象期間と単位は同じ。価格、コスト、為替、事業構成のいずれかが影響した可能性がある。連結損益計算書の注記、事業の状況、セグメント別の説明を確認する。
金融セグメントの外部顧客への営業収益は増えた。金融・リース事業の寄与が大きくなった可能性がある。金融事業の収益・費用、債権、想定条件を読む。
連結の資本的支出は増えた。将来の成長投資が増えた可能性がある。投資目的、資金調達、稼働時期、維持更新の比率を確認する。

この区別は、AIの回答を否定するためではない。AIに「見つける」を任せ、人は「何が確認済みで、何がまだ推測か」を引き受けるための役割分担だ。

今日の実践:一社、一つのフォルダ、一回の依頼

  1. EDINETから、調べたい会社の最新の有価証券報告書XBRL ZIPをダウンロードして解凍する。
  2. 本文のコマンドを一回実行する。フォルダのパスだけ置き換え、AIに個別のHTMLファイル探しを任せる。
  3. 返ってきた表で、連結か単体か、前年・当年か、単位は何かを読む。トヨタの例なら「営業収益は増え、営業利益は減った」という二つの事実から始める。
  4. 原本の同じ表の前年列・当年列に戻り、三つの確認をする。説明できない行は「比較保留」にする。
  5. 最後に三列の比較メモへ一行だけ書く。原因や売買の結論を急がず、「次に読む注記」を残す。

この一連の作業で得るのは、株価の答えではない。次に何を確認すべきかが分かる、再現できる調査の足場だ。次回は、ここで見つけた文章を、数字の「説明」と「条件」として読む方法を扱う。

出典を読むときのポイント

この記事は下書きです。特定の投資判断を勧めるものではありません。

キーワード:#XBRL#EDINET#有価証券報告書#構造化データ#財務データ

出典