現在β版として公開中 — Pro相当のAPI/MCPを無料でご利用いただけます APIキーを取得

データ品質ロジック

EDINET有価証券報告書の生データからクリーンな財務指標を算出するまでに適用している全てのロジックを公開しています

パイプライン概要

EDINET DBでは有報XBRL(CSV形式)の生データを4段階で処理し、企業横断的に比較可能な財務指標を提供しています。各段階で適用されるデータ品質ロジックの数を示します。

STEP 1
Bronze → Silver
名寄せ + スコープ制御
16ルール
STEP 2
Silver → Gold (集計)
ピボット変換
1ルール
STEP 3
Gold (比率算出)
サニタイズ + 比率計算
11ルール
STEP 4
品質モニタリング
欠損検知 + アラート
2ルール

STEP 1 Bronze → Silver(名寄せ + スコープ制御)

EDINETのXBRL element_id(企業ごとに異なる約2,000種類)を、24の標準指標に名寄せする処理です。2層構造 + 2パスで処理します。

1-1. 入力フィルタリング

Bronze layer(生CSV)からSilverに取り込む行を絞り込む条件です。

フィルタ条件理由
マッピング済みのみelement_id IN (マッピング141件)Layer 1で定義された標準element_idのみ取り込む
数値のみSAFE_CAST(value AS FLOAT64) IS NOT NULL「-」や空文字はNULLになり除外される(バイオベンチャーの売上等)
期間制限context_id LIKE 'CurrentYear%' OR 'Prior1~4Year%'最大5年度分に限定。それ以前はデータ品質が不安定
孤立行排除edinetCode IS NOT NULL AND periodEnd IS NOT NULL企業コードや決算期が欠損している行を除外

1-2. Layer 1 Pass 1 — 連結優先取得

同一(企業, 年度, 指標)に複数の値が存在する場合、ROW_NUMBERで1つに絞り込みます。

優先度条件対象例
0KeyFinancialData(主要な経営指標の推移)三井海洋開発: PL本表41.8B vs KFD662B → KFDを採用
1企業の会計基準に一致するelement_idIFRS企業ならIFRS要素、US GAAP企業ならUSGAAP要素
2IFRS要素(会計基準不一致)JP GAAP企業にIFRS要素が存在する場合
3-4USGAAP要素 / その他フォールバック

同一優先度内のタイブレーク: ①親会社帰属NI優先 → ②最新提出日時 → ③値が大きい方

スコープ制御(Pass 1)

指標区分context_id条件理由
連結指標(売上、NI等19項目)NOT LIKE '%NonConsolidated%' AND NOT LIKE '%Member%'連結値のみ取得
単体指標(配当、資本金等5項目)LIKE '%NonConsolidated%'1株配当は常に単体から取得

1-3. Layer 1 Pass 2 — 単体フォールバック

Pass 1で連結データが取得できなかった企業(子会社なしの約800社)に対して、単体データをフォールバックとして取得します。4つの除外ルールでクロススコープ汚染を防止します。

除外ルール条件理由
Pass 1取得済みLEFT JOIN anti-pattern連結で取れた指標は上書きしない
単体専用は除外element_id NOT IN (配当等5項目)Pass 1で処理済み
連結専用OI除外element_id NOT IN (OperatingIncome, OperatingProfitLossIFRS)IFRS持株会社の単体OIは連結と大幅に異なる(しばしば赤字)
EPS/希薄化EPS除外itemName NOT IN ('eps', 'diluted_eps')連結EPSと単体EPSは計算根拠が異なる

セグメント行の排除: context_idの末尾が正確に _NonConsolidatedMember で終わる行のみ取得。セグメント別の値(_ReportableSegmentsMember等)は除外されます。

1-4. Layer 2 — 企業固有element_id対応(REGEXP)

Layer 1でカバーできない企業固有の拡張element_id(jpcrp030000-*プレフィックス)を正規表現で名寄せします。Layer 1のカバー率は約95%で、残り5%をLayer 2で補完します。

指標マッチ条件除外条件
売上高 NetSales|Revenue|OperatingRevenue|BusinessRevenue|GrossSales + Summary/KFD Intersegment|Cost|Gain|Loss|Allowance|Commission|Refund|Proceeds
営業利益 OperatingProfitLoss|OperatingIncome|OperatingProfit + SummaryOfBusinessResults
純利益 Profit + SummaryOfBusinessResults Ordinary|Operating|BeforeTax|GrossProfit|Equity|Earnings|Business
純資産 TotalEquity + SummaryOfBusinessResults

営業利益にKeyFinancialDataを使わない理由: 一部企業(例: モンスターラボHD)がKFDの営業利益の符号を手入力で誤っているケースがあるため、PL本表(SummaryOfBusinessResults)のみを対象にしています。

1-5. 会計基準の自動判定

企業の会計基準を当期のelement_idから自動判定します。過年度のelement_idは参照しません(基準移行企業の誤判定を防ぐため)。

基準判定条件該当企業数
US GAAPCurrentYear* context内に *USGAAP* element_idが存在約6社(キヤノン等)
IFRSCurrentYear* context内に *IFRS* or ifrs-full:* が存在約250社
JP GAAP上記いずれにも該当しない約3,500社

STEP 2 Silver → Gold(集計テーブル構築)

Silver layerの行形式データ(1行=1指標)を、企業×年度のピボットテーブルに変換します。

MAX(IF(itemName = 'revenue', value, NULL)) AS revenue

同一(企業, 年度)に同じitemNameが複数残っている場合、MAX値を採用。通常はLayer 1のROW_NUMBERで1行に絞られているため、この状況は稀です。

STEP 3 Gold(サニタイズ + 比率算出)

集計テーブルの値を正規化(サニタイズ)し、そこから財務比率を算出します。

3-1. サニタイズ(異常値フィルタ)

対象ルール閾値対処該当例
配当性向 連結DPS÷EPSで自前計算 EDINET記載値(個別決算ベース)は不使用 セブン&アイHD: EDINET値95%→連結60%
EPS(絶対値) 単位誤り検出(円のはずが千円/百万円) > 1,000,000 NULL化
EPS(前年比) 株式分割/併合による急変を検出 > 10倍 NULL化 株式分割で100分割された場合など
BPS(絶対値) 単位誤り検出 > 100,000,000 NULL化
BPS(前年比) 株式分割/併合による急変を検出 > 10倍 NULL化 村田製作所FY2022: 前年0.78(異常)→1166(正常) で巻き添えNULL

既知の副作用: EPS/BPSの前年比ガードは「前年の値が異常 → 翌年の正常値がNULL化」という連鎖が起こり得ます。影響は前年が異常値の翌1年度のみで、現状は許容しています。

3-2. 比率算出ガード

財務比率を算出する際、数学的に正しくても実務上無意味な値が出るケースをNULL化します。

比率ガード条件NULL化理由該当例
営業利益率
純利益率
業種 IN ('保険業','銀行業')
AND NI > 0 AND NI > 売上高
連結売上高がEDINETで未開示のため、単体経常収益がフォールバックで入っている。連結NIと割り算しても無意味 第一生命HD (190%), T&D HD (245%), あいちFG (112%)
ROE 純資産 < 0(債務超過) 債務超過ではROEの符号が反転し誤解を招く。赤字+債務超過=正のROE、黒字+債務超過=負のROE 74件(赤字)+4件(黒字) = 78件

クロススコープガードの対象外: 保険業・銀行業以外でNI > 売上高(例: メタプラネット418%、ジャフコ288%)は正当な値です。暗号資産の評価益、事業売却益、投資収益など、営業外の大型利益によるものであり、NULL化しません。

3-3. 成長率の計算ロジック

計算ロジック理由
YoY成長率 (当期 - 前期) / ABS(前期) 前期が赤字の場合にABSがないと符号が反転する(赤字→黒字で-150%になる問題を防止)
CAGR(3年/5年) POW(当期/N年前, 1/N) - 1
ただし当期 > 0 AND N年前 > 0のみ
ゼロ以下の値でべき乗計算を行うと複素数になるため、正値のみで計算
FCF 営業CF + 投資CF いずれかがNULLの場合、BQ標準でNULL伝播(正しい動作)
全除算 SAFE_DIVIDE ゼロ除算をNULLにする(BQ標準関数)

STEP 4 品質モニタリング

4-1. 欠損検知(Transform実行後)

Transform処理の最後に、4つのコア指標(売上高、純利益、総資産、純資産)の欠損を企業単位でチェックします。

検知結果はAPIレスポンスの data_gaps フィールドとCloud Runログに出力されます。現在の検知企業: かんぽ生命(売上高欠損)、サンバイオ(売上高欠損)、ソケッツ(純利益欠損)。いずれもEDINETの開示形式に起因する正常な欠損です。

4-2. 自動アラート

データの鮮度、NULL率、行数変動を定期的に自動チェックし、閾値を超えた場合に運営チームへ通知します。

チェック項目WARNINGCRITICAL
データ鮮度(最終更新からの経過時間)26時間48時間
NULL率(コア指標)20%30%
行数変動(前回比)-10%-20%

業種・企業固有の特殊ケース

EDINETの開示形式が一般事業会社と異なる業種・企業の処理方法をまとめています。

業種・企業特殊性対処影響
保険業HD
第一生命HD、T&D HD等
連結売上高(保険料収入等)がSummaryOfBusinessResultsに記載されない Pass 2で単体経常収益がフォールバック。利益率はクロススコープガードでNULL化 売上高は表示(単体値)、利益率はNULL
銀行業
3メガバンク、地銀等
売上高はOrdinaryIncome(経常収益)で開示。連結営業利益は非開示 OrdinaryIncome → revenue にマッピング済み。営業利益率はNULL 売上高は経常収益を表示、営業利益はNULL
IFRS総合商社
三菱商事、三井物産等5社
SummaryOfBusinessResultsに連結営業利益を記載しない 営業利益はNULL(正常動作)。PL本表からの取得は当期分のみ可能 営業利益はNULL、売上高・NI・ROE等は正常
US GAAP企業
キヤノン、富士フイルム、コマツ、オムロン、野村HD、オリックス
USGAAP固有のelement_idを使用。連結営業利益はEDINET US GAAPフォーマットに開示項目がない Layer 1で専用マッピング済み。会計基準判定も自動。営業利益はNULL(正常動作) 売上高・NI・BPS・ROE・自己資本比率は正常。営業利益・営業利益率はNULL
三井海洋開発 IFRS PL本表(41.8B)とKFD(662B)で売上高が大幅に異なる KFDを最優先(Priority 0)で採用 売上高662B、純利益率5.3%
バイオベンチャー
サンバイオ等
売上高が「-」(ダッシュ)で記載 SAFE_CAST → NULL。売上高はNULL、data_gapsで検知 売上高NULL、NI・総資産は正常

注意事項

ロジック更新履歴

日付変更内容影響範囲
2026-02-21全指標品質検証(6社×外部IR照合)。PER・株式分割・非上場企業に関する注記追加P/L・B/S・CF・per-share指標が外部ソースと一致することを確認
2026-02-20US GAAP企業(6社)の連結判定修正。BPS・純資産・自己資本比率のelement_idマッピング修正キヤノン等6社のBPS・自己資本比率が正常値に修正
2026-02-20BPS異常値フィルタの閾値を1億→1千万に変更バークシャー・ハサウェイ等の高BPS企業をカバー
2026-02-20配当性向をEDINET記載値(個別決算)から連結DPS÷EPSの自前計算に変更。200%キャップ追加約1,400社の配当性向が連結ベースの正確な値に修正
2026-02-18クロススコープガードを保険業・銀行業限定に変更(全業種一律→業種ベース)11社の純利益率がNULLから正常値に復帰
2026-02-18ROE債務超過ガードを拡張(赤字+債務超過のみ→全債務超過企業)4社の誤ったROE値がNULLに修正
2026-02-18payoutRatio正規化を追加(閾値2.0で小数/百分率を自動判定)※2/20に連結自前計算へ置換約60社の配当性向が正常値に修正
2026-02-18KeyFinancialDataの優先度を最高(Priority 0)に変更三井海洋開発の売上高が662Bに修正
2026-02-17operatingMarginガードを追加(営業利益÷売上高 > 1の場合NULL化)営業利益率102%の異常値を排除
2026-02-11Layer 1マッピングを公式タクソノミで全面検証(141 element_id)全3,848社の指標カバレッジ確認

関連ドキュメント: 指標リファレンス | 財務健全性スコア算出ロジック | データソース