financial-data-collector について
米国上場企業の財務データを収集・検証し、後続の財務スキル向けに標準化した JSON ファイルを作成するスキルです。データソースの明記と、欠損値や会計上の扱いの明確化を重視します。
主な機能
- 01市場・過去の財務データ収集
- 02完全性と整合性の検証
- 03欠損値を既定値で補完しない
- 04CapEx と FCF の扱いを記録
- 05スキーマ準拠の JSON 出力
活用シーン
- 01企業の財務分析用データの準備
- 02後続処理の前に収集データを確認
- 03DCF 関連スキルへの入力データ提供
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ daymade/ claude-code-skills --skill financial-data-collectorインストール後、Claude Code で/financial-data-collectorを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.gitignorereferences/output-schema.mdyfinance-pitfalls.mdscripts/collect_data.pyvalidate_data.py詳細
財務データコレクター
無料のデータソースを使用して、米国の上場企業の実際の財務データを収集・検証します。 ほかの財務スキルですぐに利用できる、標準化された JSON ファイルを出力します。
重要な制約
フォールバック値は禁止です。 フィールドを取得できない場合は、null に設定し、_source: "missing" を指定してください。
デフォルト値(例:beta or 1.0)で代用しないでください。欠損データの扱いは、後続のスキルが判断します。
データソースの明記は必須です。 すべてのデータセクションに _source フィールドを含めてください。
設備投資額(CapEx)の符号規則: yfinance は CapEx を負の値(現金流出)として返します。元の符号を維持してください。出力メタデータにこの規則を記載してください。符号を反転させないでください。
yfinance の FCF ≠ 投資銀行の FCF。 yfinance の FCF = 営業キャッシュフロー + CapEx(SBC の控除なし)です。後続の DCF スキルが FCF を過大評価しないよう、この点を出力メタデータで明示してください。
ワークフロー
ステップ 1:データを収集する
収集スクリプトを実行します。
python scripts/collect_data.py TICKER [--years 5] [--output path/to/output.json]
スクリプトは次の優先順位でデータを収集します。
- yfinance — 市場データ、過去の財務データ、ベータ、アナリスト予測
- yfinance ^TNX — リスクフリーレートの代替指標としての10年物米国債利回り
- ユーザーによる補完 — yfinance が NaN を返す年が対象です(ユーザーに報告し、推測しないでください)
ステップ 2:データを検証する
python scripts/validate_data.py path/to/output.json
確認項目:フィールドの完全性、フィールド間の整合性(時価総額 = 株価 × 株式数)、値の妥当性(WACC 5~20%、ベータ 0.3~3.0)、符号規則。
ステップ 3:JSON を納品する
単一ファイル:{TICKER}_financial_data.json。スキーマは references/output-schema.md を参照してください。
作成してはいけないファイル: README、CSV、要約レポート、その他の補助ファイル。
出力スキーマ(概要)
{
"ticker": "META",
"company_name": "Meta Platforms, Inc.",
"data_date": "2026-03-02",
"currency": "USD",
"unit": "millions_usd",
"data_sources": { "market_data": "...", "2022_to_2024": "..." },
"market_data": { "current_price": 648.18, "shares_outstanding_millions": 2187, "market_cap_millions": 1639607, "beta_5y_monthly": 1.284 },
"income_statement": { "2024": { "revenue": 164501, "ebit": 69380, "tax_expense": ..., "net_income": ..., "_source": "yfinance" } },
"cash_flow": { "2024": { "operating_cash_flow": ..., "capex": -37256, "depreciation_amortization": 15498, "free_cash_flow": ..., "change_in_nwc": ..., "_source": "yfinance" } },
"balance_sheet": { "2024": { "total_debt": 30768, "cash_and_equivalents": 77815, "net_debt": -47047, "current_assets": ..., "current_liabilities": ..., "_source": "yfinance" } },
"wacc_inputs": { "risk_free_rate": 0.0396, "beta": 1.284, "credit_rating": null, "_source": "yfinance + ^TNX" },
"analyst_estimates": { "revenue_next_fy": 251113, "revenue_fy_after": 295558, "eps_next_fy": 29.59, "_source": "yfinance" },
"metadata": { "_capex_convention": "negative = cash outflow", "_fcf_note": "yfinance FCF = OperatingCF + CapEx. Does NOT deduct SBC." }
}
全フィールドの定義を含む完全なスキーマ:references/output-schema.md
<correct_patterns>
データがない年の処理
if pd.isna(revenue):
result[year] = {"revenue": None, "_source": "yfinance returned NaN — supplement from 10-K"}
# Report missing years to the user. Do NOT skip or fill with estimates.
CapEx の符号を維持する
capex = cash_flow.loc["Capital Expenditure", year_col] # -37256.0
result["capex"] = float(capex) # Preserve negative
Datetime 列のインデックス付け
year_col = [c for c in financials.columns if c.year == target_year][0]
revenue = financials.loc["Total Revenue", year_col]
フィールド名のガード
if "Total Revenue" in financials.index:
revenue = financials.loc["Total Revenue", year_col]
elif "Revenue" in financials.index:
revenue = financials.loc["Revenue", year_col]
else:
revenue = None
</correct_patterns>
<common_mistakes>
間違い 1:欠損データにデフォルト値を使用する
# ❌ WRONG
beta = info.get("beta", 1.0)
growth = data.get("growth") or 0.02
# ✅ RIGHT
beta = info.get("beta") # May be None — that's OK
間違い 2:すべての年にデータがあると想定する
# ❌ WRONG — 2020-2021 may be NaN
revenue = float(financials.loc["Total Revenue", year_col])
# ✅ RIGHT
value = financials.loc["Total Revenue", year_col]
revenue = float(value) if pd.notna(value) else None
間違い 3:DCF モデルで yfinance の FCF をそのまま使用する
yfinance の FCF では SBC が控除されません。META のような巨大企業の場合、SBC は年間 200~300 億ドルに達することがあり、yfinance の FCF は投資銀行の FCF より約 30%高くなります。必ずこの点を出力で明示してください。
間違い 4:CapEx の符号を反転させる
# ❌ WRONG — double-negation risk downstream
capex = abs(cash_flow.loc["Capital Expenditure", year_col])
# ✅ RIGHT — preserve original, document convention
capex = float(cash_flow.loc["Capital Expenditure", year_col]) # -37256.0
</common_mistakes>
yfinance で既知の落とし穴
フィールドのマッピングと回避策の詳細については、references/yfinance-pitfalls.md を参照してください。