アクティブ
決算書分析ウォーターフォール機能 要件定義
進捗状況(2026-01-05確認): 部分実装(Jリーグ向けのみ)
- ✅ PLウォーターフォール(Jリーグ向け)実装済み
- ✅ CFウォーターフォール(Jリーグ向け)実装済み
- ✅ 純資産増減ウォーターフォール実装済み
- ❌
earnings-analysis/汎用コンポーネント群は未作成- ❌ 手動入力→チャート生成フロー未実装
- ❌ プレスリリースからのコメント自動抽出未実装
概要
決算書(PL・SS・CF)から増減データを抽出し、ウォーターフォールチャートで可視化する。プレスリリース等から増減要因のコメントを自動で紐付け、SNS向けにリリースできる分析コンテンツを生成する。
関連ドキュメント: SEC EDGAR API 財務データ取得ガイド - 米国上場企業の財務データをAPIで取得する方法
対象財務諸表
1. PL(損益計算書)増減分析
- 目的: 前期比での売上・利益の増減要因を可視化
- 主要項目:
- 売上高
- 売上原価
- 販管費
- 営業利益
- 営業外損益
- 特別損益
- 当期純利益

2. SS(株主資本等変動計算書)増減分析
- 目的: 純資産の変動要因を可視化
- 主要項目:
- 期首残高
- 当期純利益
- 配当金
- 自己株式取得/処分
- その他包括利益
- 期末残高

3. CF(キャッシュフロー計算書)増減分析
- 目的: 現金の増減要因を可視化
- 主要項目:
- 期首現金残高
- 営業CF
- 投資CF
- 財務CF
- 期末現金残高

4. 営業利益増減ウォーターフォール
- 目的: 前期比での営業利益の増減要因を項目別に可視化
- 主要項目:
- 前期営業利益
- 売上高増減
- 売上原価増減
- 販管費増減
- 当期営業利益

増減分析の2つのアプローチ
数値例: NVIDIA Q2→Q3 FY2026(単位: 百万ドル)
| 項目 | Q2 (Jul 27) | Q3 (Oct 26) | 差異 |
|---|---|---|---|
| Revenue | 46,743 | 57,006 | +10,263 |
| Cost of revenue | 12,890 | 15,157 | +2,267 |
| Gross profit | 33,853 | 41,849 | +7,996 |
| R&D | 4,291 | 4,705 | +414 |
| SG&A | 1,122 | 1,134 | +12 |
| Operating income | 28,440 | 36,010 | +7,570 |
| Other income, net | 2,766 | 1,926 | -840 |
| Income tax | 4,784 | 6,026 | +1,242 |
| Net income | 26,422 | 31,910 | +5,488 |
パターン1: 金額差異ベース(シンプル)
各項目の増減金額をそのまま表示する方法。
Q2 Net income 26,422
├─ 売上増減 +10,263
├─ 原価増減 -2,267
├─ R&D増減 -414
├─ SG&A増減 -12
├─ その他収益増減 -840
├─ 税金増減 -1,242
Q3 Net income 31,910
検算: 26,422 + 10,263 - 2,267 - 414 - 12 - 840 - 1,242 = 31,910 ✓
パターン2: 売上高寄与×粗利率寄与の分解(Variance Analysis)
「売上高寄与」と「粗利率寄与」に粗利益の増減を分解する方法。
用語の検討:
| 表記パターン | 売上側 | 率側 | 採用 |
|---|---|---|---|
| 要因 | 売上高要因 | 粗利率要因 | |
| 寄与 | 売上高寄与 | 粗利率寄与 | ✅ |
| 効果 | 売上高効果 | 粗利率効果 | |
| 影響 | 売上高影響 | 粗利率影響 |
→ 「寄与」は利益への貢献度を示す表現として適切なため採用。
Q2 粗利率 = 33,853 / 46,743 = 72.42%
Q3 粗利率 = 41,849 / 57,006 = 73.41%
粗利率改善 = +0.99pt
分解計算:
| 効果 | 計算式 | 金額 |
|---|---|---|
| 数量効果(Volume) | 売上増加 × Q2粗利率 = 10,263 × 72.42% | +7,432 |
| 利益率効果(Rate) | Q3売上 × 粗利率改善 = 57,006 × 0.99% | +564 |
| 合計 | +7,996 |
Q2 Net income 26,422
├─ 売上高寄与 +7,432
├─ 粗利率寄与 +564
├─ R&D増減 -414
├─ SG&A増減 -12
├─ その他収益増減 -840
├─ 税金増減 -1,242
Q3 Net income 31,910
検算: 26,422 + 7,432 + 564 - 414 - 12 - 840 - 1,242 = 31,910 ✓
税金の分解について:
税金も理論上は「利益増加寄与」と「税率寄与」に分解可能:
- 利益増加寄与 = 税引前利益増加 × Q2実効税率 = 6,730 × 15.33% = 1,032(83%)
- 税率寄与 = Q3税引前利益 × 税率変動 = 37,936 × 0.55% = 209(17%)
→ ただし実効税率は通常安定しているため、分解せず「税金増減」として一括表示。大きく変動した場合のみ注記で対応。
2パターンの使い分け
| パターン | 表示内容 | ユースケース |
|---|---|---|
| 金額差異 | 売上+10,263、原価-2,267 | 項目別の増減を直感的に見せたい |
| 数量×率 | 数量効果+7,432、率効果+564 | 成長要因(売上増 vs 効率改善)を分けて評価したい |
「売上が伸びたから利益が増えたのか、利益率が改善したから増えたのか」をパターン2は明確に分離できる。
機能要件
データ取得
- 決算短信PDFからの数値抽出
- 有価証券報告書からの数値抽出
- 手動入力インターフェース
ウォーターフォールチャート生成
- 増加項目(緑)・減少項目(赤)・合計(青)の色分け
- インタラクティブなツールチップ
- レスポンシブ対応
- PNG/SVGエクスポート機能
コメント自動抽出
- プレスリリースPDFからの要因抽出
- 決算説明会資料からの要因抽出
- AI要約による増減コメント生成
SNS向け出力
- OGP画像自動生成
- Twitter/X向け画像サイズ対応
- 要約テキスト自動生成
技術検討事項
データ取得方針(仮説)
推奨アプローチ: IR PDF → Markdown → Gemini → JSON
IRサイト → PDF → ローカルパーサー → Markdown → Gemini API → JSON
理由:
- EDGAR APIは二度手間になる可能性
- 企業ごとにメトリック名が異なる(SEC EDGAR APIガイド参照)
- 結局IR文書から増減コメントを取得する必要がある
- 同じソースから数値もコメントも取得する方が効率的
- Geminiのドキュメント→JSON変換が優秀
- PDFをMarkdownに変換後、Geminiで任意のJSON形式にパース
- 構造化データ抽出の精度が高い
- 柔軟なJSONフォーマット
- オブジェクトではなく配列で設計
- 期間によって内訳項目が変わっても対応可能
- 例:
[{label: "Revenue", value: 57006}, {label: "Cost of revenue", value: 15157}, ...]
処理フロー:
- IRサイトからPDFをダウンロード(決算短信、10-Q等)
- ローカルでPDF → Markdown変換
- Gemini APIでMarkdown → JSON変換(数値抽出)
- 同時に増減コメントも抽出
- JSONをアプリケーションで利用
メリット:
- 一つのソース(IR文書)から数値とコメントを同時取得
- 企業固有のフォーマットに柔軟に対応
- 一度フォーマットが決まれば同一企業は毎期同じ処理で対応可能
PDFパース
- pdf.js or pdf-parse
- OCR対応(スキャンPDF向け)
データ構造
interface FinancialChange {
label: string; // 項目名
value: number; // 金額
isIncrease: boolean; // 増加/減少
isTotal: boolean; // 合計項目かどうか
comment?: string; // 増減コメント
source?: string; // 出典(プレスリリースURL等)
}
チャートライブラリ
- 既存: Chart.js(プロジェクトで使用中)
- 検討: Apache ECharts, Plotly.js
開発フェーズ
Phase 1: MVP
- 手動入力でのウォーターフォールチャート生成
- PLの増減分析のみ
Phase 2: 自動化
- PDFからの数値抽出
- SS・CFへの拡張
Phase 3: コメント連携
- プレスリリースからのコメント抽出
- AI要約機能
Phase 4: SNS最適化
- OGP画像生成
- シェア機能
既存コンポーネント(再利用・参考)
参考ページ
- Jリーグ浦和: https://log.eurekapu.com/financial-quiz/jleague/club/urawa
- 純資産増減ウォーターフォール:
/financial-quiz/net-assets-waterfall - PLウォーターフォール:
/financial-quiz/pl-waterfall
Jリーグ用コンポーネント(ベース)
| コンポーネント | 用途 | 新規作成時の参考度 |
|---|---|---|
JLeaguePLWaterfallChart.vue | PLウォーターフォール | ★★★ メイン |
JLeagueVarianceWaterfallChart.vue | 営業利益増減分析 | ★★★ メイン |
JLeagueNetAssetsWaterfallChart.vue | 純資産増減ウォーターフォール | ★★★ メイン |
JLeaguePLWaterfallSection.vue | PLセクションラッパー | ★★ |
JLeagueChartsPanel.vue | チャートパネル統合 | ★★ |
JLeagueDataTable.vue | データテーブル | ★ |
汎用コンポーネント
| コンポーネント | 用途 |
|---|---|
PLWaterfallChart.vue | 汎用PLウォーターフォール |
CFWaterfallChart.vue | CFウォーターフォール |
BalanceSheetComparison.vue | 比例縮尺BS比較 |
BalanceSheetBox.vue | BSボックス表示 |
コンポーネント作成計画
新規作成コンポーネント
- EarningsAnalysisPanel.vue - 決算分析統合パネル
- PLウォーターフォール
- 営業利益増減分析
- 純資産増減ウォーターフォール
- 比例縮尺BS
- をタブ/セクションで切り替え
- EarningsPLWaterfall.vue - 汎用PL増減ウォーターフォール
JLeaguePLWaterfallChart.vueをベースに汎用化- 企業決算向けにカスタマイズ
- EarningsVarianceChart.vue - 営業利益増減分析
JLeagueVarianceWaterfallChart.vueをベースに汎用化
- EarningsNetAssetsWaterfall.vue - 純資産増減ウォーターフォール
JLeagueNetAssetsWaterfallChart.vueをベースに汎用化
- EarningsBSComparison.vue - 比例縮尺BS比較
BalanceSheetComparison.vueをベースに
- EarningsCommentOverlay.vue - 増減コメント表示
- プレスリリースからの要因コメントを表示
ディレクトリ構成
apps/web/app/components/
├── earnings-analysis/ # 新規作成
│ ├── EarningsAnalysisPanel.vue
│ ├── EarningsPLWaterfall.vue
│ ├── EarningsVarianceChart.vue
│ ├── EarningsNetAssetsWaterfall.vue
│ ├── EarningsBSComparison.vue
│ └── EarningsCommentOverlay.vue
├── jleague/ # 既存(参考)
└── financial-quiz/ # 既存(参考)
EPS/純利益の3軸比較分析
課題認識
決算発表直後、EPSや売上のガイダンス比較・コンセンサス比較がTwitterなどで速報されることがある。これ自体は価値があるが、以下の問題がある:
- 数字だけで内容がわからない EPS差異の「なぜ」が見えない。決算書を読んでいない人には、予想と実績のギャップがどこで生まれたのか理解できない。
- 日本語コンテンツがない CFO CommentaryやQ&Aセッションの内容は英語のまま放置されている。
- 手作業が多い 追っている銘柄が増えると、毎四半期の分析が追いつかない。
解決策:3軸比較ウォーターフォール
増減分析には以下の3つの軸が必要である。それぞれ原因が異なるため、全てを比較しないと正確な分析ができない。
| 比較軸 | 略称 | 何がわかるか |
|---|---|---|
| 前年同期比 | YoY | 成長トレンド、季節性を排除した実力値 |
| 前四半期比 | QoQ | 直近のモメンタム、短期変化 |
| アナリストコンセンサス比 | vs Consensus | 市場期待との乖離、サプライズ要因 |
ウォーターフォール表示イメージ
[YoY比較]
FY25 Q3 EPS → 売上増寄与 → 粗利率改善 → R&D増 → ... → FY26 Q3 EPS
[QoQ比較]
FY26 Q2 EPS → 売上増寄与 → 粗利率改善 → R&D増 → ... → FY26 Q3 EPS
[vs Consensus]
Consensus EPS → 売上Beat寄与 → 粗利率Beat → OpEx Miss → ... → Actual EPS
データソースと日本語化
必要なドキュメント(NVIDIAの例)
| ドキュメント | 用途 | 取得方法 |
|---|---|---|
| 10-Q(四半期報告書) | 財務数値の詳細 | SEC EDGAR API |
| CFO Commentary | 増減要因の説明 | IR Webサイト PDF |
| Earnings Call Transcript | Q&Aセッションの詳細 | IR Webサイト or Seeking Alpha |
| Analyst Estimates | コンセンサス数値 | Koyfin / Yahoo Finance |
日本語化フロー
英語PDF/Transcript
↓
Claude/Gemini でMarkdown化 + 構造化
↓
重要箇所の日本語要約
↓
ウォーターフォールチャート + コメント
自動化パイプライン構想
Phase 1: 手動(現状)
- 決算発表後、10-QとCFO Commentaryをダウンロード
- Claude Codeで数値抽出 + 増減分析
- Vueページを手動更新
Phase 2: 半自動化
- 決算カレンダーから対象銘柄・発表日を取得
- 発表後、IRサイトから自動でPDFダウンロード
- Gemini APIでJSON変換(数値 + コメント)
- 差分検出して通知
Phase 3: 完全自動化
- トリガー: 決算発表をRSSまたはSEC Filing検知
- 自動パイプライン実行
- 生成されたコンテンツをレビュー後に公開
データ取得URL設計
IRサイトの構造は企業ごとに決まっているため、URLパターンを定義しておく。
interface CompanyIRConfig {
ticker: string;
name: string;
fiscalYearEnd: string; // e.g., "January" for NVIDIA
sources: {
tenQ: string; // SEC EDGAR URL pattern
cfoCommentary: string; // IR site URL pattern
earnings: string; // Earnings call page
};
}
// 例: NVIDIA
const NVDA_CONFIG: CompanyIRConfig = {
ticker: "NVDA",
name: "NVIDIA",
fiscalYearEnd: "January",
sources: {
tenQ: "https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=0001045810&type=10-Q",
cfoCommentary: "https://investor.nvidia.com/financial-info/quarterly-results/default.aspx",
earnings: "https://investor.nvidia.com/events/default.aspx"
}
};
主要銘柄の対応優先度
| 優先度 | 銘柄 | 理由 |
|---|---|---|
| 高 | NVDA | メインウォッチ、データセンター市場の指標 |
| 高 | AMD | GPU競合、比較分析に必要 |
| 中 | MU | HBMサプライチェーン |
| 中 | AVGO | ネットワーキング、カスタムASIC |
| 低 | MSFT/GOOGL/AMZN | ハイパースケーラー、CapEx動向 |
既存コンポーネントの拡張
JLeagueVarianceWaterfallChart.vue をベースに以下の拡張が必要:
- 3軸切り替えタブ: YoY / QoQ / vs Consensus
- 数値×率の分解表示: 売上高寄与 / 粗利率寄与
- コメントオーバーレイ: CFO Commentaryからの引用表示
- 多言語対応: 日本語/英語切り替え
議論メモ
2026-01-05
- EPS/純利益の3軸比較分析を追加: YoY、QoQ、アナリストコンセンサス比較の3軸で増減分析
- 自動化パイプライン構想: 決算発表検知→PDF取得→JSON変換→コンテンツ生成の自動化フロー
- 日本語化の必要性: CFO Commentary、Q&Aセッションの日本語コンテンツが不足している課題
- 主要銘柄の優先度設定: NVDA、AMD、MU、AVGOを優先対応
2025-12-28
- Jリーグ浦和ページで使用中のコンポーネントをベースに汎用化する方針
- 4つのチャートタイプ: PLウォーターフォール、営業利益増減、純資産増減、比例縮尺BS
- プレスリリースからのコメント自動抽出はPhase 3で対応
- SEC EDGAR API調査完了: 米国上場企業の財務データ取得方法を検証
- NVIDIA, Apple, Microsoft, Tesla, Amazonの5社でメトリック共通性を検証
- 71%の主要メトリックが全社共通で使用されている
- PL・BS・CF項目は10-Qと完全一致することを確認
- SS(株主資本等変動計算書)の列内訳はEDGARでは取得不可(総額のみ)
- 詳細: SEC EDGAR API 財務データ取得ガイド