edgartools-sec-data について
edgartools-sec-data は、プリインストール済みの Python ライブラリ edgartools で SEC の企業提出書類や財務データを読むためのガイドです。調査担当者向けに、書類の選択から分析、報告上の注意点までを扱います。
主な機能
- 01SEC リクエスト用の識別情報を設定
- 02フォーム別に企業提出書類を取得
- 03書類のセクションと財務諸表を閲覧
- 04事業セグメント・地域別売上の開示を検索
- 05比較分析と報告の指針を提示
活用シーン
- 01企業の最新年次・四半期報告書を確認
- 02年度間のリスク要因を比較
- 03事業セグメントや地域別の売上を分析
- 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 で数値が欠落している、または曖昧な場合は、推定せず、その旨を伝えてください。