0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

財務データAPI精度ベンチマークをOSSで公開した

0
Last updated at Posted at 2026-03-04

前回の記事で3社を手動で検証した。トヨタの会計基準が違う、ソニーのデータが重複してる、といった話。

手動で3社やって思ったのは、3社じゃ足りないということ。

50社やった。OSSにした。誰でも回せる。

リポジトリ

方法論の詳細は論文(PDF)にまとめた。

結果

# プロバイダ 精度 スコア
1 Axiora 100.00% 285 / 285
2 edinetdb.jp 74.74% 213 / 285

フィールド別:

フィールド Axiora edinetdb.jp
revenue(売上高) 50/50 45/50
net_income(純利益) 50/50 48/50
operating_income(営業利益) 35/35 29/35
total_assets(総資産) 50/50 48/50
total_equity(株主資本) 50/50 0/50
eps(一株当たり利益) 50/50 43/50

edinetdbはtotal_equityを一件も返さない(フィールド未実装)。このフィールドを除外すると、edinetdbのスコアは213/235(90.6%)になる。残り22件のエラーは売上要素の選択ミス、営業利益の期間ずれ、EPSの株式分割未調整。

仕組み

正解データはEDINETのXBRL有報(doc_type=120)から取得。金融庁に提出された監査済みの数値がそのまま正解になる。

50社は19セクター・3会計基準(IFRS 32社、JP-GAAP 15社、US-GAAP 3社)から層化抽出。シード値 2026-03-03 で固定。

マッチングルール:

  • 金額(JPY整数): ¥1B未満は±1円の完全一致、¥1B以上は±0.01%の相対誤差
  • EPS(JPY小数): ±¥0.01の絶対誤差、銭→円の自動変換あり
  • 期待値がnullの行(営業利益を報告しない業種など)はスコアから除外

回し方

git clone https://github.com/axioradev/edinet-benchmark.git
cd edinet-benchmark
pip install httpx numpy

export AXIORA_API_KEY="..."
export EDINETDB_API_KEY="..."

python compare.py

APIキーを持っているプロバイダだけテストされる。片方だけでもOK。

自分のAPIを追加する

providers.jsonにエントリを追加するだけ:

{
  "name": "your_api",
  "display_name": "Your API",
  "base_url": "https://api.example.com/v1",
  "api_key_env": "YOUR_API_KEY",
  "auth_header": "Authorization",
  "auth_prefix": "Bearer ",
  "endpoint": "/companies/{edinet_code}/financials",
  "params": {},
  "response_path": "data",
  "fiscal_year_key": "fiscal_year",
  "rate_limit_ms": 100
}

EDINETコードで企業を指定して、fiscal_yearrevenuenet_incometotal_assetstotal_equityepsを返すAPIなら参加できる。

PRを送ってくれれば結果をマージする。

なぜ作ったか

財務データAPIを選ぶとき、ドキュメントやカバレッジ数だけ見ても精度はわからない。「4,000社対応」と書いてあっても、返ってくる数値が有報と違ったら意味がない。

このベンチマークは誰でも検証できる。正解データはEDINETの公式提出書類。コードは公開済み。結果に疑問があればforkして自分で回せばいい。

リンク

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?