mcpField
E
edgartools-sec-data

edgartools-sec-data

github.com/anthropicsデータ・データベース2.2k49 回インストール2 週間前に更新
リポジトリ

edgartools-sec-data について

edgartools-sec-data は、プリインストール済みの Python ライブラリ edgartools で SEC の企業提出書類や財務データを読むためのガイドです。調査担当者向けに、書類の選択から分析、報告上の注意点までを扱います。

主な機能

  1. 01SEC リクエスト用の識別情報を設定
  2. 02フォーム別に企業提出書類を取得
  3. 03書類のセクションと財務諸表を閲覧
  4. 04事業セグメント・地域別売上の開示を検索
  5. 05比較分析と報告の指針を提示

活用シーン

  1. 01企業の最新年次・四半期報告書を確認
  2. 02年度間のリスク要因を比較
  3. 03事業セグメントや地域別の売上を分析
  4. 04Form 4 のインサイダー取引報告を確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/anthropics/cwc-workshops --skill edgartools-sec-data

インストール後、Claude Code で/edgartools-sec-dataを入力して読み込まれたか確認します。

詳細

edgartools:SEC EDGAR データへのアクセス

edgartools は、SEC データを読み取るためのデスクの標準手段です。環境にあらかじめインストールされています。SEC のページを手作業で取得するのではなく、Python(スクリプトまたは python -c)で作業してください。

まず必ず本人情報を設定する

SEC は、自動リクエストに連絡先情報を設定するよう求めています。ほかの呼び出しを行う前に、毎回のセッションで設定してください。

from edgar import set_identity
set_identity("Research Desk workshop [email protected]")  # use the EDGAR_IDENTITY value you were given

同等の設定として、Python の実行前に EDGAR_IDENTITY 環境変数をエクスポートする方法もあります。

企業と提出書類

from edgar import Company

company = Company("NVDA")              # by ticker (or CIK)
company.name, company.cik, company.industry

filings = company.get_filings(form="10-K")   # also "10-Q", "8-K", "DEF 14A", ...
latest_10k = filings.latest()                # most recent of that form
latest_10q = company.get_filings(form="10-Q").latest()

latest_10k.form, latest_10k.filing_date, latest_10k.accession_no

「最新の提出書類」を求められた場合は、直近の 10-K と 10-Q のうち、より新しい方を選んでください。外国民間発行体は 10-K の代わりに 20-F を提出します。

提出書類を読む

filing = latest_10k
tenk = filing.obj()        # rich object for 10-K/10-Q: sections, financials

# Sections (10-K item numbers; 10-Q uses Part/Item naming)
risk_factors = tenk["Item 1A"]      # Risk Factors text
mda = tenk["Item 7"]                # Management's Discussion & Analysis
business = tenk["Item 1"]

# Plain text of the whole filing if you need to search it
text = filing.text()

セクションは長いため、セクション全体を回答に貼り付けるのではなく、必要な箇所を抽出してください。

財務諸表(XBRL)

financials = tenk.financials          # also: company.get_financials() for the latest annual figures

income = financials.income_statement()
balance = financials.balance_sheet()
cashflow = financials.cashflow_statement()

これらは表形式のオブジェクト(pandas と互換性があります)を返します。一般的な項目には、総収益、売上総利益、営業利益、純利益、現金および現金同等物、総負債、棚卸資産、研究開発費があります。同じ財務諸表には通常、前期の列も含まれています。別の提出書類を取得するのではなく、その列を使って前年比を比較してください。

セグメント別・地域別収益

連結収益だけでは実態を把握できません。集中度や地域ごとの変化は、セグメント注記に表れます。セグメントデータは主要財務諸表ではなく、財務諸表の注記(ASC 280)に記載されています。

# The segment/geography breakdown is a note, not a primary statement.
# Search the filing text for the segment note and read the tables around it.
text = filing.text()
for marker in ["Segment Information", "revenue by geographic", "Disaggregation of Revenue"]:
    idx = text.find(marker)
    if idx != -1:
        print(text[idx : idx + 3000])   # the note's tables follow the heading
        break

セグメント別・地域別の収益を連結収益と併せて報告し、前年比で約 20% を超える変化があった地域またはセグメント、および顧客集中に関する開示(通常は「1 社の顧客が収益の X% を占めた」といった表現)を指摘してください。

便利なパターン

  • 前年比のリスク要因の差分: 今年と昨年の 10-K から Item 1A を取得し(company.get_filings(form="10-K") は新しい順に並んでいるため、先頭の 2 件を使います)、比較します。
  • インサイダー取引: company.get_filings(form="4") で Form 4 のインサイダー取引に関する提出書類を一覧表示できます。
  • 慎重に対処する: API の仕様は変わることがあります。属性やメソッドが見つからない場合は、dir(obj) や help(obj) で調べるか、filing.text() と対象を絞った検索に切り替え、出力で代替手段を使ったことを明記してください。
  • EDGAR に配慮する: 必要なリクエストだけにとどめてください。ライブラリによって、セッション中はすべてキャッシュされます。

単位とレポート作成時の注意点

  • 財務諸表の数値は通常、米ドルの生の値です。報告する際は 100 万で割って単位を換算し、その単位を明記してください。
  • 数値の出典となった提出書類(フォーム、会計期間、提出日)を必ず記載してください。
  • XBRL で数値が欠落している、または曖昧な場合は、推定せず、その旨を伝えてください。

コメント