earnings-preview-single について
単一企業の簡潔でデータ密度の高い決算プレビューを、HTMLで作成するスキルです。調査手順を定め、情報源、引用、計算の検証を厳格に求めます。
主な機能
- 01単一企業の決算プレビュー
- 02単独で完結するHTMLレポート
- 03Kensho Grounding MCPとS&P Global MCPで調査
- 04決算説明会の引用を検証
- 05同業他社とコンセンサス予想を比較
- 06出典リンクと計算の確認
活用シーン
- 01企業の決算説明会に向けたプレビュー作成
- 02同業他社との評価額や株価パフォーマンスの比較
- 03出典を追跡できる決算説明会内容の整理
MCP 対応
調査にはKensho Grounding MCPのsearchとS&P Global MCPのkfinanceのみを使用するよう定めています。レポートの記述を、該当するMCP呼び出しで得た出典にリンクします。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ w95/ awesome-claude-corporate-skills --skill earnings-preview-singleインストール後、Claude Code で/earnings-preview-singleを入力して読み込まれたか確認します。
同梱ファイルLICENSEreport-template.md
詳細
単一企業の決算プレビュー
単一企業を対象に、簡潔でプロフェッショナルな株式調査向け決算プレビューを作成します。出力は、印刷時に4~5ページとなる自己完結型のHTMLファイルです。数値やデータを多く盛り込み、要点を端的に伝える簡潔な解説を記載します。
データソース(例外なし): 使用を許可するデータソースは、Kensho Grounding MCP(search)とS&P Global MCP(kfinance)のみです。いかなる種類のその他のツール、データソース、ウェブアクセスも一切禁止です。具体的には、以下を禁止します。
WebSearch、WebFetch、web_search、brave_search、google_search、または汎用のウェブ/インターネット検索ツールを一切使用しないでください。Kenshoの応答が遅い、検索結果がない、一時的に利用できない場合も同様です。- ブラウザー、URL取得ツール、ウェブスクレイピングツールを使用しないでください。
- Kensho Groundingで検索結果が得られない場合は、検索クエリの表現を変えて再試行するか、レポートに「データなし」と記載してください。代替手段としてウェブ検索に切り替えることは絶対にしないでください。
- レポート内のすべての情報は、
kfinanceMCP関数の呼び出し、またはKenshoのsearch呼び出しのいずれかにたどれる必要があります。この2つのいずれからも情報源を特定できない場合、その情報はレポートに含めてはいけません。
重要なルール: レポートの執筆を始める前に、調査とデータ収集(フェーズ1~5)をすべて完了してください。
中間ファイルのルール: MCPツール呼び出しで取得した未加工データは、各ツール呼び出しの応答が返った直後に、次の呼び出しへ進む前に、必ず/tmp/earnings-preview/内のファイルに書き込んでください。これにより、コンテキストウィンドウの圧縮によるデータ消失を防げます。フェーズ1の開始時に、mkdir -p /tmp/earnings-previewを実行してディレクトリを作成してください。HTMLレポートを生成する前(フェーズ7)に、catコマンドを使ってすべての中間ファイルをコンテキストに読み戻す必要があります。レポートに記載する数値、引用、情報源URLはすべて、以前のやり取りの記憶ではなく、ファイルを唯一の信頼できる情報源としてください。ファイルを読み戻さないと、レポートに誤りが含まれます。
会計四半期のルール: レポートの日付から会計四半期を絶対に推測しないでください。多くの企業は標準的でない会計年度を採用しています(例:Walmartの会計年度末は1月31日のため、2026年2月のレポートはQ4 FY2025やQ1 FY2026ではなく、Q4 FY2026を対象とします)。get_next_earnings_from_identifiersまたはget_earnings_from_identifiersから返される決算説明会の名称に記載された会計四半期と会計年度を、必ずそのまま使用してください(例:「Walmart Q4 FY2026 Earnings Call」の場合、対象四半期はQ4 FY2026です)。レポートのタイトル、見出し、表、その他すべての記載で、この表記をそのまま使用してください。説明会の名称が曖昧な場合は、get_financial_line_item_from_identifiersの期間ラベルと照合してください。
分量のルール: レポートは簡潔にしてください。印刷時に4~5ページを目安とします。複数段落にわたる長い解説は避け、要点を絞った短い箇条書きを使用してください。すべての文に意味を持たせてください。より少ない言葉で表現できる場合は、簡潔にしてください。
引用の逐語性に関するルール: <blockquote>タグ内で経営陣の発言を引用する場合、文字の一つひとつまで、つなぎ言葉や文の断片も含め、トランスクリプトから正確にコピーしてください。言い換え、順序の入れ替え、トランスクリプト内の異なる箇所にある文の組み合わせ、引用文の「整文」はしないでください。トランスクリプトから正確な表現を確認できない場合は、直接引用として記載しないでください。代わりに、引用符付きのブロック表示は使わず、独自の文体で要約してください(例:「経営陣は、データセンター需要が引き続き大きいと述べました」)。すべてのブロック引用は、トランスクリプトと照合できる、逐語的に一致したコピー&ペーストの抜粋でなければなりません。
計算の整合性に関するルール: 複数段階の計算(年間ガイダンスから推定した四半期の数値、LTM P/E、前年比成長率、セグメントの前年比変化)を行う場合は、各ステップを明示し、次のステップで使う前に中間結果を検証してください。A + B + C = X と記載する場合は、後続の計算式で X を使う前に、X が算術的に正しいことを確認してください。付録に記載された合計が構成項目の合計と一致しない場合、レポートは誤りです。迷った場合は、以前に計算した中間値を再利用せず、生データから再計算してください。
比率の命名ルール: すべてのバリュエーション比率には、LTM(直近12か月)または NTM(今後12か月)を明記してください。「trailing」や「forward」は使わず、必ず LTM または NTM を使ってください。LTM 比率は、直近で報告された4四半期の合計を使用します。NTM 比率は、get_consensus_estimates_from_identifiers の今後4四半期分のコンセンサス平均 EPS 推定値の合計を使用します。単一の年間数値は使用しないでください。競合他社比較表には、LTM P/E と NTM P/E の両方を計算して表示してください。
ハイパーリンクのルール(厳格に適用): レポート内のすべての主張(数値・非数値を問わず)は、付録の該当項目を指す <a href="#ref-N" class="data-ref"> ハイパーリンクで囲む必要があります。これは任意ではありません。レポート内の数値はすべてクリック可能なリンクにしてください。 これには、売上高、EPS、利益率、成長率、時価総額、P/E 比率、株価リターン、目標株価、セグメント売上高、その他のあらゆる財務指標が含まれます。また、トランスクリプトや Kensho 検索から得られた定性的な主張も含まれます。事実として述べる内容には、すべて出典へのリンクが必要です。固有の主張ごとに、連番の参照 ID(ref-1、ref-2 など)を割り当ててください。ハイパーリンクのスタイルは控えめにします。紺色、下線なし、ホバー時は点線の下線です。レポート本文では、数値を <a> タグで囲まずに記載しないでください。 例:<a href="#ref-1" class="data-ref">$152.3B</a> のように記載し、$152.3B をプレーンテキストのまま記載しないでください。
フェーズ 1:企業プロフィールとセットアップ
$ARGUMENTSから単一の企業ティッカーを解析します(前後の空白を削除)。mkdir -p /tmp/earnings-previewを実行して作業ディレクトリを作成します。get_latest()を呼び出して、現在の報告期間の状況を確認します。get_info_from_identifiersを呼び出し、時価総額と業種を記録します。get_company_summary_from_identifiersを呼び出し、事業内容の説明を記録します。get_next_earnings_from_identifiersを呼び出し、次回の決算発表日と会計四半期名を記録します。
直ちに /tmp/earnings-preview/company-info.txt に書き込みます:
TICKER: [ticker]
COMPANY: [full name]
INDUSTRY: [industry]
MARKET_CAP: [value] (as of [date])
NEXT_EARNINGS_DATE: [date]
NEXT_EARNINGS_QUARTER: [Q# FY#### exactly as returned by API]
BUSINESS_DESCRIPTION: [2-3 sentence summary]
フェーズ 2:決算説明会トランスクリプトの分析(必須 — 執筆前に完了すること)
get_latest_earnings_from_identifiersを呼び出し、直近で完了した決算説明会のkey_dev_idを取得します。- そのトランスクリプトに対して
get_transcript_from_key_dev_idを呼び出します。 - 次のセクションを含む
/tmp/earnings-preview/transcript-extracts.txtに直ちに書き込みます。トランスクリプトがコンテキスト内にあるうちにこのファイルを書き込んでください。後回しにしないでください:
TRANSCRIPT_SOURCE: [Call Name, e.g., "Q3 2025 Earnings Call"]
KEY_DEV_ID: [key_dev_id]
CALL_DATE: [date]
FISCAL_QUARTER: [Q# FY####]
=== VERBATIM QUOTES (copy-paste exactly — do NOT paraphrase) ===
QUOTE_1: "[exact text from transcript]"
SPEAKER_1: [Name], [Title]
CONTEXT_1: [1 sentence on where this appeared — prepared remarks or Q&A]
QUOTE_2: "[exact text from transcript]"
SPEAKER_2: [Name], [Title]
CONTEXT_2: [context]
QUOTE_3: "[exact text from transcript]"
SPEAKER_3: [Name], [Title]
CONTEXT_3: [context]
QUOTE_4: "[exact text from transcript]"
SPEAKER_4: [Name], [Title]
CONTEXT_4: [context]
=== GUIDANCE (quantitative only) ===
- [metric]: [range or point estimate as stated by management]
- [metric]: [range or point estimate]
=== KEY DRIVERS ===
- [driver 1 with supporting data point]
- [driver 2 with supporting data point]
- [driver 3 with supporting data point]
=== HEADWINDS & RISKS ===
- [risk 1 with quantification if available]
- [risk 2]
=== ANALYST Q&A THEMES ===
- [theme 1: what analysts pushed on]
- [theme 2]
- [theme 3]
=== SYNTHESIS: THEMES TO WATCH NEXT QUARTER ===
- [theme 1]
- [theme 2]
- [theme 3]
フェーズ 3:競合分析
get_competitors_from_identifiersをcompetitor_source="all"で呼び出します。- 最も関連性の高い公開競合企業を 5~7 社選択します。
- 自社および選択したすべての競合企業について、以下のデータを収集します。
get_prices_from_identifiersをperiodicity="day"で呼び出し、過去 12 か月分を取得しますget_financial_line_item_from_identifiersでdiluted_epsを取得します。period_type="quarterly"、num_periods=8を指定しますget_capitalization_from_identifiersをcapitalization="market_cap"で呼び出し、最新の値を取得しますget_consensus_estimates_from_identifiersをperiod_type="quarterly"、num_periods_forward=4で呼び出します。これにより、今後 4 四半期のコンセンサス平均 EPS 予想が返され、それらを合計して NTM EPS を算出します
各ツール呼び出しの結果が返ったら、直ちに生データを該当する中間ファイルに追記します。
次のファイルに書き込みます。 /tmp/earnings-preview/prices.csv — (ticker, date, close) ごとに 1 行。正確な MCP 関数呼び出しを含む source 列を追加します。自社の株価を最初に書き込み、その後、各競合企業のデータを取得するたびに書き込みます。
ticker,date,close,source
D,2025-02-19,55.67,get_prices_from_identifiers(identifier='D',periodicity='day')
D,2025-02-20,55.82,get_prices_from_identifiers(identifier='D',periodicity='day')
...
DUK,2025-02-19,111.79,get_prices_from_identifiers(identifier='DUK',periodicity='day')
...
注:1 回の呼び出しで取得したすべての行の source の値は同じです。常に参照できるよう、すべての行に書き込んでください。
次のファイルに書き込みます。 /tmp/earnings-preview/peer-eps.csv — (ticker, period, eps) ごとに 1 行。各 diluted_eps の呼び出し直後に書き込みます。
ticker,period,diluted_eps,source
D,Q4 2024,1.09,get_financial_line_item_from_identifiers(identifier='D',line_item='diluted_eps',period_type='quarterly')
D,Q1 2025,-0.11,get_financial_line_item_from_identifiers(identifier='D',line_item='diluted_eps',period_type='quarterly')
...
DUK,Q4 2024,1.52,get_financial_line_item_from_identifiers(identifier='DUK',line_item='diluted_eps',period_type='quarterly')
...
次のファイルに書き込みます。 /tmp/earnings-preview/peer-market-caps.csv — ticker ごとに 1 行。各 market_cap の呼び出し直後に書き込みます。
ticker,market_cap,retrieval_date,source
D,55900000000,2026-02-19,get_capitalization_from_identifiers(identifier='D',capitalization='market_cap')
DUK,98300000000,2026-02-19,get_capitalization_from_identifiers(identifier='DUK',capitalization='market_cap')
...
次のファイルに書き込みます。 /tmp/earnings-preview/consensus-eps.csv — (ticker, period, consensus mean EPS) ごとに 1 行。各 get_consensus_estimates_from_identifiers の呼び出し直後に書き込みます。
ticker,period,consensus_mean_eps,num_estimates,source
D,Q4 2025,0.88,12,get_consensus_estimates_from_identifiers(identifier='D',period_type='quarterly',num_periods_forward=4)
D,Q1 2026,0.72,10,get_consensus_estimates_from_identifiers(identifier='D',period_type='quarterly',num_periods_forward=4)
D,Q2 2026,0.91,9,get_consensus_estimates_from_identifiers(identifier='D',period_type='quarterly',num_periods_forward=4)
D,Q3 2026,1.05,8,get_consensus_estimates_from_identifiers(identifier='D',period_type='quarterly',num_periods_forward=4)
DUK,Q4 2025,1.48,14,get_consensus_estimates_from_identifiers(identifier='DUK',period_type='quarterly',num_periods_forward=4)
...
- P/E やリターンはまだ計算しないでください。 生データはすでにディスクに保存されています。計算はフェーズ 6(検証)で、これらのファイルを読み込んで行います。
日付の整合性ルール(株式リターン): 比較対象の株式リターン(年初来%、1 年%、30 日%、90 日%)を計算する際、すべてのティッカーで開始日と終了日を完全に同一にする必要があります。すべての価格データを prices.csv に書き込んだ後、全ティッカーのデータに含まれる最初の取引日を特定し、それを共通の基準日として使用します。ティッカーごとに異なる基準日を使用してはいけません(例:自社は 2 月 19 日、競合企業は 2 月 28 日)。あるティッカーのデータが他より遅い日付から始まる場合は、すべての計算に全ティッカーで共通する最初の日付を使用します。各リターン計算について、共通の基準日を付録に記載してください。
P/E の通貨ルール(LTM P/E): 各企業の LTM P/E を計算する際は、すべての企業に一律の固定期間を適用するのではなく、その企業の peer-eps.csv に含まれる直近 4 回の報告済み四半期を使用します。競合企業がすでに 2025 年第 4 四半期を報告済みで、自社は 2025 年第 3 四半期までしか報告していない場合、競合企業の LTM EPS には 2025 年第 4 四半期を含める必要があります。各企業の最新の報告済み期間を確認し、企業ごとに直近 4 期間を使用してください。P/E の計算に使用した 4 四半期を付録に記載してください。
時価総額の日付: 時価総額を報告する際は、peer-market-caps.csv の retrieval_date を使用してください。レポートの日付と異なる場合は、その旨を付録に記載してください。
フェーズ 4:ニュース、予想、セクター情報(Kensho Grounding 経由)
以下の各カテゴリーについて、これらの search クエリを実行してください。どれも省略しないでください。
重要 — ソース URL を記録してください: Kensho の search 結果にはすべて、記事、レポート、またはデータページのソース URL が含まれています。各調査結果とともに URL を必ず記録してください。
検索を呼び出すたびに、直ちに結果を /tmp/earnings-preview/kensho-findings.txt に以下の形式で追記してください。 すべての検索が終わるまで待たず、検索のたびに書き込んでください。
=== SEARCH: "[query used]" ===
DATE_RUN: [today's date]
CATEGORY: [estimates|analyst_ratings|risks|news|sector]
FINDING_1: [key finding or excerpt]
URL_1: [source URL from search result]
SOURCE_1: [publication name, date if available]
FINDING_2: [key finding or excerpt]
URL_2: [source URL]
SOURCE_2: [publication name, date]
[...continue for all relevant results from this search...]
業績予想とアナリストの見方:
searchで「[TICKER] earnings estimates consensus EPS revenue upcoming quarter」を検索- 記録する内容:コンセンサス EPS、コンセンサス売上高、過去 90 日間の予想修正の方向性。
- 直ちに kensho-findings.txt に追記してください。
searchで「[TICKER] analyst ratings price target upgrades downgrades」を検索- 記録する内容:最近の格上げ・格下げ、目標株価の範囲、強気・弱気の見解の要約。
- 直ちに kensho-findings.txt に追記してください。
searchで「[TICKER] risks bear case concerns investors」を検索- 記録する内容:主な論点、弱気の主張、次回決算発表に影響する変動要因。
- 直ちに kensho-findings.txt に追記してください。
最近のニュース(必須 — 省略しないでください):
4. search で「[TICKER] [company name] recent news developments」を検索
- 記録する内容:過去 60 日間の重要なニュース(M&A、新製品の発売、経営幹部の交代、規制当局の措置、提携、法的動向、関税、または次回の決算発表や今後の業績見通しに影響する可能性のある事象)。
- 各項目について、日付、見出し、業績への潜在的な影響を記録してください。
- 直ちに kensho-findings.txt に追記してください。
セクターの背景情報:
5. search で「[company industry/sector] sector outlook trends」を検索
- 記録する内容:セクター全体の追い風・逆風、マクロ経済データ、競争動向。
- 直ちに kensho-findings.txt に追記してください。
フェーズ 5:財務データの収集
四半期財務データ(直近 8 四半期):
get_financial_line_item_from_identifiers を period_type="quarterly"、num_periods=8 で呼び出し、以下を取得します。
revenue、gross_profit、operating_income、ebitda、net_income、diluted_eps
各項目の呼び出し結果が返るたびに、直ちに /tmp/earnings-preview/financials.csv に追記してください。 返された生の値をそのまま記載し、まだ丸めたり変換したりしないでください。source 列には、MCP 関数の呼び出しとパラメーターを正確に記載してください。
ticker,period,line_item,value,source
D,Q4 2024,revenue,3941000000,get_financial_line_item_from_identifiers(identifier='D',line_item='revenue',period_type='quarterly')
D,Q1 2025,revenue,3400000000,get_financial_line_item_from_identifiers(identifier='D',line_item='revenue',period_type='quarterly')
D,Q2 2025,revenue,4076000000,get_financial_line_item_from_identifiers(identifier='D',line_item='revenue',period_type='quarterly')
D,Q3 2025,revenue,3810000000,get_financial_line_item_from_identifiers(identifier='D',line_item='revenue',period_type='quarterly')
D,Q4 2024,diluted_eps,1.09,get_financial_line_item_from_identifiers(identifier='D',line_item='diluted_eps',period_type='quarterly')
D,Q1 2025,diluted_eps,-0.11,get_financial_line_item_from_identifiers(identifier='D',line_item='diluted_eps',period_type='quarterly')
...
まだ利益率や成長率を計算しないでください。 生データのみを書き込みます。計算はフェーズ 6 で行います。
セグメントデータ:
get_segments_from_identifiersをsegment_type="business"、period_type="quarterly"、num_periods=8で呼び出します。- 前年同期比を比較できるようにするため、4 四半期ではなく 8 四半期分が必要です。Q3 2025 の前年同期比を計算するには Q3 2024 が必要で、これは 5 四半期前にあたります。API の応答に前年同期のセグメントデータが含まれていない場合、推定や捏造はしないでください。レポートに「前年同期比は入手不可」と記載してください。
直ちに /tmp/earnings-preview/segments.csv に書き込んでください。
ticker,period,segment_name,revenue,source
D,Q3 2024,Dominion Energy Virginia,2762000000,get_segments_from_identifiers(identifier='D',segment_type='business',period_type='quarterly')
D,Q3 2024,Dominion Energy South Carolina,848000000,get_segments_from_identifiers(identifier='D',segment_type='business',period_type='quarterly')
D,Q3 2024,Contracted Energy,260000000,get_segments_from_identifiers(identifier='D',segment_type='business',period_type='quarterly')
D,Q3 2025,Dominion Energy Virginia,3311000000,get_segments_from_identifiers(identifier='D',segment_type='business',period_type='quarterly')
D,Q3 2025,Dominion Energy South Carolina,945000000,get_segments_from_identifiers(identifier='D',segment_type='business',period_type='quarterly')
D,Q3 2025,Contracted Energy,297000000,get_segments_from_identifiers(identifier='D',segment_type='business',period_type='quarterly')
...
決算発表履歴(株価チャートの注釈用):
get_earnings_from_identifiersを使用し、12 か月の株価表示期間内の過去の決算発表日を取得します。- 直ちに
/tmp/earnings-preview/earnings-dates.csvに書き込んでください。
ticker,earnings_date,call_name,source
D,2025-05-02,Q1 2025 Earnings Call,get_earnings_from_identifiers(identifier='D')
D,2025-08-01,Q2 2025 Earnings Call,get_earnings_from_identifiers(identifier='D')
D,2025-10-31,Q3 2025 Earnings Call,get_earnings_from_identifiers(identifier='D')
...
フェーズ 6:検証と計算(必須 — 省略しないでください)
レポートを生成する前に、すべての中間ファイルを読み直し、クリーンなデータから計算してください。このフェーズでは、会話の圧縮されたコンテキストではなくファイルを基に作業することで、データの整合性を確保します。
-
bash の
catコマンドを使って、すべての中間ファイルを読みます:cat /tmp/earnings-preview/company-info.txtcat /tmp/earnings-preview/transcript-extracts.txtcat /tmp/earnings-preview/financials.csvcat /tmp/earnings-preview/segments.csvcat /tmp/earnings-preview/prices.csvcat /tmp/earnings-preview/peer-eps.csvcat /tmp/earnings-preview/peer-market-caps.csvcat /tmp/earnings-preview/consensus-eps.csvcat /tmp/earnings-preview/kensho-findings.txtcat /tmp/earnings-preview/earnings-dates.csv
-
コンテキスト内の生データから派生指標を計算します:
- 粗利益率 % = gross_profit / revenue(四半期ごと)
- 営業利益率 % = operating_income / revenue(四半期ごと)
- 売上高の前年比成長率 % = (当四半期の売上高 - 前年同期の売上高) / 前年同期の売上高
- EPS の前年比成長率 % = 同じ計算方法です。基準値がマイナスの場合は「n.m.」を使用します
- セグメントの前年比成長率 % = セグメント名で前年同期の Q と照合します。一致するものがない場合は「y/y not available」と記載します
- 企業ごとの LTM P/E = 最新株価 / 直近 4 四半期の EPS の合計(各ティッカーで利用可能な 4 四半期を
peer-eps.csvで確認します) - 企業ごとの NTM P/E = 最新株価 / NTM EPS。ここで、NTM EPS =
consensus-eps.csvにある今後 4 四半期のコンセンサス平均 EPS 予測の合計です。各ティッカーについて、4 四半期すべてのconsensus_mean_eps値を合計します。ピア企業で今後 4 四半期分のデータが揃わない場合、NTM P/E は「n/a」とします。付録に合計した 4 四半期を記載します - 株価リターン(年初来、1 年、30 日、90 日)=
prices.csv内の全ティッカーに共通する最初の日付を特定し、その日付からリターンを計算します
-
照合します:
- すべてのセグメントの前年比について、
segments.csvに前年同期の実データ行があることを確認します。ない場合は「y/y not available」と記載します。 - すべての株価リターンの基準日がティッカー間で一致していることを確認します。
- 複数段階の計算は、構成要素を再集計して検証します(例:LTM EPS の合計が 4 四半期分の値と一致すること)。
transcript-extracts.txt内の逐語引用がすべて、言い換えではなく正確なコピーであることを確認します。
- すべてのセグメントの前年比について、
-
すべての派生値を含む
/tmp/earnings-preview/calculations.csvを書き込みます:
ticker,metric,value,formula,components
D,gross_margin_Q3_2025,32.5%,gross_profit/revenue,"gross_profit=1238100000,revenue=3810000000"
D,revenue_yoy_Q3_2025,+9.3%,(Q3_2025-Q3_2024)/Q3_2024,"Q3_2025=3810000000,Q3_2024=3486000000"
D,ltm_pe,24.2x,price/ltm_eps,"price=65.46,ltm_eps=2.70,quarters=Q4_2024+Q1_2025+Q2_2025+Q3_2025"
D,ntm_pe,18.5x,price/ntm_eps,"price=65.46,ntm_eps=3.56,quarters=Q4_2025(0.88)+Q1_2026(0.72)+Q2_2026(0.91)+Q3_2026(1.05),source=get_consensus_estimates_from_identifiers"
D,yoy_return,+17.6%,(end-start)/start,"end=65.46,start=55.67,base_date=2025-02-19"
DUK,yoy_return,+13.0%,(end-start)/start,"end=126.32,start=111.79,base_date=2025-02-19"
...
このファイルをレポート内のすべての数値の唯一の信頼できる情報源とします。
フェーズ 7:HTML レポートの生成
停止 — HTML を作成する前に、すべての中間ファイルを必ず読み込んでください。これは処理を進めるための必須条件です。
これは任意ではありません。以下の各 cat コマンドを、個別の bash ツール呼び出しとして実行する必要があります(まとめて実行しないでください)。これにより、各ファイルの内容が個別に読み込まれ、会話内で確認できるようになります。1 つのコマンドにまとめないでください。ファイルを省略しないでください。
以下のコマンドを1 つずつ、それぞれ個別の bash 呼び出しとして実行してください。
cat /tmp/earnings-preview/company-info.txtcat /tmp/earnings-preview/transcript-extracts.txtcat /tmp/earnings-preview/financials.csvcat /tmp/earnings-preview/segments.csvcat /tmp/earnings-preview/prices.csvcat /tmp/earnings-preview/peer-eps.csvcat /tmp/earnings-preview/peer-market-caps.csvcat /tmp/earnings-preview/consensus-eps.csvcat /tmp/earnings-preview/kensho-findings.txtcat /tmp/earnings-preview/earnings-dates.csvcat /tmp/earnings-preview/calculations.csv
すべてのファイルを読み込んだ後、各ファイルとその状態をすべて列挙した要約メッセージを、必ずユーザーに表示してください。次の形式をそのまま使用してください。
--- DATA FILE VERIFICATION ---
1. company-info.txt ✓ loaded ([N] lines)
2. transcript-extracts.txt ✓ loaded ([N] lines)
3. financials.csv ✓ loaded ([N] rows)
4. segments.csv ✓ loaded ([N] rows)
5. prices.csv ✓ loaded ([N] rows)
6. peer-eps.csv ✓ loaded ([N] rows)
7. peer-market-caps.csv ✓ loaded ([N] rows)
8. consensus-eps.csv ✓ loaded ([N] rows)
9. kensho-findings.txt ✓ loaded ([N] lines)
10. earnings-dates.csv ✓ loaded ([N] rows)
11. calculations.csv ✓ loaded ([N] rows)
All intermediate data files loaded successfully.
Generating report using file data as the single source of truth.
---
ファイルが見つからない、または空の場合は、処理を停止し、失敗したファイルをユーザーに伝えてください。データが不足した状態でレポートの生成に進まないでください。
HTML レポート内の数値、引用、ソース URL、MCP 関数呼び出しへの参照はすべて、記憶ではなくこれらのファイルに基づく必要があります。ファイルを唯一の信頼できる情報源としてください。以前の会話の文脈は、圧縮または要約されている可能性があり、参照すると誤りが含まれることがあります。ファイルにないデータは、レポートに記載しないでください。
HTML テンプレート、CSS、Chart.js の設定については、report-template.md を参照してください。
必須 — グラフにはテンプレートのヘルパー関数を使用してください: report-template.md には、事前に用意され、デバッグ済みの Chart.js ヘルパー関数があります。グラフの作成には、これらの関数をそのまま使用する必要があります。カスタムのインライン Chart.js コードを書かないでください。ヘルパー関数は次のとおりです。
createRevEpsChart(canvasId, labels, revenueData, epsData, revLabel)— 図 1 用createMarginChart(canvasId, labels, grossMargins, opMargins)— 図 2 用createRevGrowthChart(canvasId, labels, growthData)— 図 3 用createAnnotatedPriceChart(canvasId, labels, prices, earningsDates, ticker)— 図 5 用createCompPerfChart(canvasId, labels, datasets)— 図 6 用createPEChart(canvasId, companies)— 図 7 用
各グラフの呼び出しは、それぞれ個別の <script> タグ内に記述し、try-catch ブロックで囲む必要があります。これにより、あるグラフに不具合があっても、ほかのグラフの描画が妨げられません。例:
<script>
try {
createRevEpsChart('chart-rev-eps', [...], [...], [...], 'Revenue ($B)');
} catch(e) { console.error('Figure 1 error:', e); }
</script>
<script>
try {
createMarginChart('chart-margins', [...], [...], [...]);
} catch(e) { console.error('Figure 2 error:', e); }
</script>
レポートの構成(全 4~5 ページ)
レポートは、ナラティブ(1~2 ページ)と図表(3~5 ページ)の 2 つのパートで構成されます。両者が密接に連動するようにしてください。
AI による免責事項(必須 — 3 か所に記載すること): 以下の免責事項をレポートの HTML に含める必要があります。これは任意ではありません。この記載がないレポートは未完成です。
"Analysis is AI-generated — please confirm all outputs"
次の 3 か所に、それぞれ 1 回ずつ記載してください。
- ヘッダーバナー — 表紙ヘッダーの直前に、中央揃えの黄色いバナーとして記載します:
<div class="ai-disclaimer">Analysis is AI-generated — please confirm all outputs</div> - フッター — page-footer div 内に、目立つ黄色いバナーとして記載します:
<div class="footer-disclaimer">Analysis is AI-generated — please confirm all outputs</div> - 付録 — 付録セクションの最初の行、表の前に記載します:
<div class="ai-disclaimer">Analysis is AI-generated — please confirm all outputs</div>
ページ 1:表紙と投資テーゼ
- AI免責バナー(黄色、中央揃え。上記のAI免責ルールを参照)
- ヘッダー: 会社名(ティッカー)| 業種 | レポート日付
- タイトル: 四半期ごとのテーマを反映したもの(例: "Walmart Inc. (WMT) Q4 FY2026 Earnings Preview: Holiday Harvest — Can Furner's First Print Confirm the $1T Thesis?")
- エグゼクティブ・サマリー(最大2〜3の短い段落と箇条書き):
- 今回の決算発表に対する我々の予想を1〜2文で
- 4〜6個の箇条書き。次の内容を扱うこと: 当社のEPS予想とコンセンサスの比較、ガイダンスの予想、注目すべき主要指標、株価を動かす要因、主要な論点
- 率直かつ主張を明確にすること。すべてを曖昧にせず、見解を示すこと
- 直近の決算説明会における経営陣の主要コメント: 関連する箇所で物語の流れに自然に組み込むこと。これらを独立した見出しの下に置かないこと。サポート根拠として自然に統合すること。インデントされた引用ブロックとして書式設定すること。
2ページ目: 予想、テーマ、ニュース
-
コンセンサス予想表(単一の表。図として表記):
- 列: 指標 | コンセンサス | 当社予想 | 前年同期比変化
- 行: 売上高、EPS、粗利益率、営業利益、および当該企業にとって重要な2〜3の固有KPI(例: 既存店売上高、eコマース成長率、会員収入。市場が当該企業で重視しているものを選ぶこと)
- 色分けは厳密に機械的に行うこと: 前年同期比変化の値がマイナスの場合は
class="neg"(赤)を使用。プラスの場合はclass="pos"(緑)を使用。ゼロまたはN/Aの場合はclass="neutral"を使用。数値の符号のみでクラスを決定し、解釈によって上書きしないこと。-1.1%は、下落幅が小さくても常に赤になる。 - これがガイダンス・予想に関する唯一のセクションである。予想データを他の箇所で繰り返さないこと。
-
ヘッドラインEPS以外の主要指標(箇条書き、3〜5項目):
- EPSの数値以外で、良い四半期か悪い四半期かを決定づける具体的な指標
- 各項目について: 指標の内容、コンセンサスや経営陣の予想、それが重要な理由
- 具体的に書くこと: 例「Walmart Connect広告収入の成長率(コンセンサス前年比約30%、第3四半期は33%)」
-
注目すべきテーマ(3〜5個の箇条書き):
- 次回の決算発表に向けた将来志向の項目
- 経営陣が達成しなければならないこと、サプライズとなりうること、弱気派が注目していること
- 各テーマは最大1〜2文とすること
-
直近のニュースと動向(3〜5個の箇条書き):
- 過去60日間の重要なニュースを、各1行で
- 日付 + 見出し + 簡潔な影響評価
- 次回の決算やガイダンスに影響しうる項目のみを含めること
3〜5ページ: 図表(すべてのチャートと表)
すべての図表は連番で番号付けすること。すべての図表にタイトルと出典行を付けること。
- 図1: 四半期売上高と希薄化後EPS — 棒グラフと折れ線グラフの複合、8四半期分
- 図2: 利益率の推移(粗利益率・営業利益率) — 二系列の折れ線グラフ、8四半期分
- 図3: 売上高成長率(前年同期比%) — 緑/赤の条件付き色分けを施した棒グラフ。当期と前年同期の両方のデータが存在する四半期のみを含めること(取得した8四半期のうち、通常は直近4四半期)。前年同期比を計算できない四半期は含めないこと。チャートは8本ではなく4本の棒にすること。
- 図4: 事業セグメント別売上高 — 表: セグメント | 直近四半期売上高(百万ドル) | 全体に占める割合 | 前年同期比変化
- 図5: 過去1年の株価と決算発表日 — 株価の折れ線に、決算発表日を示す垂直の注釈線を入れ、四半期と決算翌日の株価変動率を表示すること
- 図6: 競合他社との株価パフォーマンス比較(100を基準とした指数) — 複数系列の折れ線グラフ。対象企業は太い実線、競合他社は細い破線で示すこと
- 図7: 競合他社とのLTM PER比較 — 水平棒グラフ。対象企業は紺色でハイライトすること
- 図8: 競合比較表 — ティッカー | 企業名 | 時価総額 | LTM PER | NTM PER | 年初来騰落率% | 1年騰落率%
付録: データソースと計算方法(必須 — 省略や簡略化をしないこと)
付録は必ずAI免責バナーから始めること: <div class="ai-disclaimer">AIによる分析です。すべての出力内容をご確認ください</div>
レポートの最終ページには、レポート内で引用したすべての主張(数値および非数値)を記録した付録表を必ず含めてください。**レポート本文に登場するすべての数値には、この付録の対応する行が必要です。また、レポート本文内の各数値は、付録の行までスクロールするクリック可能な <a href="#ref-N"> ハイパーリンクにしてください。**付録へのハイパーリンクのない数値がレポートに含まれている場合、そのレポートは未完成です。
-
表の列:Ref # | 事実 | 値 | 出典と算出方法
-
Ref #:レポート本文のハイパーリンクアンカー(
ref-1、ref-2など)に対応する連番IDです。各行には、リンク先となるid="ref-N"属性を付けてください。 -
事実:人が読んで理解できるラベルです(例:「2026年度第3四半期の売上高」「LTM P/E — WMT」「経営陣が関税による逆風を指摘」「BarclaysがOverweightに格上げ」)。
-
値:レポートに表示される正確な数値です(例:「$152.3B」「24.5%」「28.1x」)。非数値の事実は、空欄にするか「N/A」と記載してください。
-
出典と算出方法:この列が重要です。すべての行に、単なるラベルではなく、具体的かつ詳細な出典を記載してください。 以下のルールを厳守してください。
S&P Capital IQ の未加工の財務データ(売上高、EPS、売上総利益、営業利益、純利益、EBITDA、株価、時価総額など)の場合:
- 使用した MCP 関数と主要なパラメーターを記載してください。形式:
S&P Capital IQ — [function_name](identifier='[TICKER]', line_item='[item]', period_type='[type]', period='[Q# FY####]') - 例:
S&P Capital IQ — get_financial_line_item_from_identifiers(identifier='WMT', line_item='revenue', period_type='quarterly', period='Q3 FY2026')S&P Capital IQ — get_financial_line_item_from_identifiers(identifier='WMT', line_item='diluted_eps', period_type='quarterly', period='Q3 FY2026')S&P Capital IQ — get_prices_from_identifiers(identifier='WMT', periodicity='day')S&P Capital IQ — get_capitalization_from_identifiers(identifier='WMT', capitalization='market_cap')
- 詳細を記載せず、「S&P Capital IQ」とだけ書かないでください。 読者が、どのツール呼び出しからどのデータポイントが得られたかを正確に把握できるようにしてください。
算出値(利益率、成長率、P/E、リターン、前年比変動など)の場合:
- ハイパーリンク付きの要素を使って、数式全体を示してください。各要素は、それに対応する未加工データの付録行への
<a href="#ref-N">リンクにする必要があります。これが重要です。読者が算出値から、その算出に使った各入力値をクリックして確認できるようにしてください。 - 例:
Gross Margin = <a href='#ref-5'>Gross Profit $37.2B</a> / <a href='#ref-1'>Revenue $152.3B</a> = 24.4%. Source: S&P Capital IQ (calculated) - 例:
LTM P/E = <a href='#ref-20'>Price $172.35</a> / (<a href='#ref-8'>Q1 EPS $1.47</a> + <a href='#ref-9'>Q2 EPS $1.84</a> + <a href='#ref-10'>Q3 EPS $1.53</a> + <a href='#ref-11'>Q4 EPS $1.80</a>) = $172.35 / $6.64 = 25.9x - 例:
Revenue y/y growth = (<a href='#ref-12'>Q3 FY26 Rev $165.8B</a> - <a href='#ref-3'>Q3 FY25 Rev $160.8B</a>) / <a href='#ref-3'>Q3 FY25 Rev $160.8B</a> = +3.1% - 数式の各要素はすべて、クリック可能なハイパーリンクにしてください。 数式中の数値をプレーンテキストで記載しないでください。
トランスクリプトを出典とする主張(引用、経営陣のコメント、ガイダンス)の場合:
- トランスクリプトからの引用文を一字一句そのまま記載してください。
- トランスクリプトの正式名称と、その取得に使用した
key_dev_idを記載してください。 - 形式:
"[verbatim quote]" — [Speaker], [Title]. Source: [Q# FY#### Earnings Call Transcript] (key_dev_id: [ID]) - 例:
"We expect comp sales growth of 3-4% in Q4" — CEO John Furner. Source: Q3 FY2026 Earnings Call Transcript (key_dev_id: 12345678)Kensho の検索結果(ニュース、アナリスト評価、コンセンサス予想)について: - 検索結果の重要な発見事項または抜粋を記載します。
- 必須:Kensho の
searchツールから返されたソース URL を、クリック可能な<a href="[URL]" target="_blank">ハイパーリンクとして含めます。 これが最も重要です。読者が元のソースをクリックして開けるようにしてください。 - 形式:
"[finding/excerpt]" — <a href="[URL]" target="_blank">[Source Title or Publication]</a>. Query: search("[query used]") - 例:
"Barclays upgraded WMT to Overweight with $210 price target on Jan 15, 2026." — <a href="https://www.investing.com/news/barclays-upgrades-wmt" target="_blank">Investing.com, Jan 15 2026</a>. Query: search("WMT analyst ratings price target upgrades downgrades") - 特定の検索結果に URL が返されなかった場合は、「Source URL not available」と記載し、検索クエリも必ず含めます。
- 使用した MCP 関数と主要なパラメーターを記載してください。形式:
完全性チェック: レポートを仕上げる前に、本文に含まれるすべての数字を確認してください。<a href="#ref-N" class="data-ref"> で囲まれていない数字があれば修正します。付録の行で、Source & Derivation が「S&P Capital IQ」のような関数呼び出しの詳細を伴わない単なるラベルになっているものがあれば修正します。計算値の式にハイパーリンク付きの構成要素が含まれていない場合は修正します。Kensho から得た主張にソース URL が含まれていない場合は修正します。
付録の行は、セクション(Financials、Valuation、Estimates & Consensus、Transcript Claims、News & Analyst Commentary、Stock Performance)ごとに小見出しを付けてグループ化します。フォントサイズは小さめ(10~11px)にします。
フェーズ 8:出力
- 現在の作業ディレクトリに、完全な HTML ファイルを
earnings-preview-[TICKER]-YYYY-MM-DD.htmlとして書き込みます。 - ブラウザーで開きます:
open earnings-preview-[TICKER]-YYYY-MM-DD.html - ファイルを作成したことをユーザーに伝え、主な調査結果を要約します。
ライティングガイドライン
- 絵文字は禁止: レポートでは絵文字を一切使用しないでください。これはプロフェッショナルなリサーチ資料です。
- 簡潔に: 印刷時に4~5ページを目安とします。すべての文に意味を持たせてください。可能な限り段落ではなく箇条書きを使います。長いセクションは削ってください。
- 数字を具体的に示す: 「売上高524億ドル、前年比5.2%増」のように記載し、「売上高が力強く成長」のような表現は避けます。
- 見解を示す: これは決算の要約ではなく、決算プレビューです。何を予想するのか、何が重要なのか、その理由を明示してください。データを根拠としながら、明確な見解を示します。
- 見出しを付けずに経営陣の発言を引用: 直近の決算説明会から重要な経営陣の発言を3~4件選び、引用ブロックとして本文に織り込みます。「経営陣の主な発言」という見出しは作らず、根拠となる情報として自然に本文へ盛り込みます。
- プロフェッショナルなトーン: セルサイドの株式リサーチの文体で、分析的、直接的、データ重視にします。
- チャートには実データを使用: すべてのチャートに、実際の MCP データを反映します。データを捏造してはいけません。
- 競合他社との比較: バリュエーションを同業他社と比較して説明します。P/E が25倍でも、同業他社が20倍か35倍かを知らなければ意味がありません。
- 主張にハイパーリンクを付ける: 事実に関する主張は、数値・定性的な内容を問わず、付録の項目にリンクする
<a class="data-ref">タグで囲みます。数値の場合:<a href="#ref-1" class="data-ref">$152.3B</a>。定性的な内容の場合:<a href="#ref-25" class="data-ref">経営陣は関税による逆風を主要な利益率リスクとして指摘した</a>。追跡可能な出典が付録にない事実を記載してはいけません。