ITエンジニアの種籾(たねもみ)

IT技術とか株式投資とか。

XBRLを読んだら地獄だった

2020年 09月 07日

目次

株式の投資サイトを作ろうと思い、EDINETの有価証券報告書を読むプログラムを作った。

XBRLを読んで財務系の数値を取り出すのにかれこれ1ヶ月ほど四苦八苦してしまった。

とりあえず、せっかく苦労したので、乱雑にはなるけど記録を残しておく。

XBRLファイルを読めてもダメだった

EDINETに登録されている有価証券報告書に含まれれいるXBRLは、XMLフォーマットなので読むだけなら簡単。

例えば、ダウンロードしたZipに以下のようなXBRLファイルが入っている。

XBRL/PublicDoc/jpcrp030000-asr-001_E30999-000_2015-08-31_01_2015-11-30.xbrl

XMLの構造としては複雑ではない。 複雑じゃないのがかえって解釈しづらくしている。

構造としては、ほぼ階層がない超並列。 木でいうと、1つの幹にすべての葉が生えている状態。

なので、XMLである必要はなくCSVみたいなテーブルフォーマットで十分だけどXMLになっている。

XMLのタグ名が数値の意味を表していて、経営指標の売上高であればNetSalesSummaryOfBusinessResultsといった感じ。 このタグ名も、企業が勝手につけていいわけではないが、用意されているタグで意味が重複しているものがあるので、企業で選ぶタグにゆらぎがある。 会計に詳しくないが、会計の勘定科目なのかと思っている。

なので、例えばどれだけの収益があったかという売上高に相当するものだけでも、十種以上のゆらぎのタグ名が見つかった。

タグ名にゆらぎがある状態で、XBRLのXMLフォーマットを読み進めるのは苦行だった。

ゆらぎを吸収しようとやってたことは、

  • 有価証券報告書のPDFを見ながら、そこに表記されている数値に一致するXMLのタグ名を洗い出す。
  • 同じ数値で複数のタグが見つかるので、それらのタグの英語から正しそうなのを選ぶ。

で、苦痛以外ないのものでもない。

タクソノミ文書なる、定義をする部分を理解すれば、システマチックにほしい財務指標を取り出せるのかもと思ったが、 時間かかりそうだったので、タクソノミ文書には手を出さなかった。

結局、データではなく文書を読んだほうが早いのではと思うように

XBRLの名寄を手作業でやっていたときに、超並列なXBRLからデータを抜き出すより人が読める文書から抜き出したほうがよいのではと思うようになった。

例えば売上高であれば、通常、有価証券報告書のなかで、

  • 経営指標と言われる有価証券報告書の冒頭のサマリの1行目
  • 損益計算書の1行目

にある。

XBRLのまずい点として、上記2箇所にでてくる売上高がXBRLの中でも2つデータが格納されている点だ。 つまり、XBRLも見た目の文書を意識したデータフォーマットになっている。

結局、XBRLはデータを表しているだけでなく、見た目のデザインも意味してしまっている。 タグの名寄せで、同じ数値が何度もヒットしてくるのはこのせいでもあった。

XBRLがこのような状況だとわかると、なおさらXBRLを読む気が失せる。

インラインXBRLの存在に気づく、しかもこっちがマスタなんて

有価証券報告書のPDFを読んでやろうかとおもったけど、インラインXBRLファイルというHTMLファイルが使えることに気づく。

名寄しているときに、PDFファイルは大きいので、XBRLと一緒に梱包されていたHTMLファイルを読むようになった。 有価証券報告書って、章立てがほぼ統一されてるので、財政状態(B/S)であれば4ファイル目にあることが多く、PDFを開くより軽快だったため。

見比べるとPDFって、このHTMLからできているのではと考え、PDFよりHTMLを読むほうがプログラムとしては簡単だなと思って読み始めた。

そしたら、HTMLにXBRLと同じタグが埋め込まれていることに気づいた。 しかも、このHTMLファイルの素性を調べてみると、インラインXBRLと呼ばれていて、やばいフォーマットだったXBRLファイルを自動生成する元ネタだった。

気づくの遅かった。。。

企業はインラインXBRLを作成して、登録するとXBRLが自動生成されるとのこと。

これで、インラインXBRLを読む決心ができた。

あとは会計基準の違いで悩んだがほぼ日本なので安心した

日本会計基準(JGAAP)、国際会計基準(IFRS)、米国会計基準(GAAP,USGAAP)から会計基準を選択し財務諸表を作成している。

国際会計や米国会計基準のXBRLでは、有価証券報告書にタグが埋め込まれておらず、数字がただの文字列で埋め込まれているので、ほぼ有価証券報告書が読めない。 ただし、各会計基準の企業数は日本が3,556、国際が196、米国が12で、日本が95%を締めているので、国際と米国の会計基準の悪い点はそれほど影響しない。

気づいた違いのポイントだけ記録。

日本会計基準

  • 企業によって連結、単独決算の選択がある。連結決算企業は、包括利益を計算している。
  • キャッシュ・フローは、通期と2Qしか計算していない

国際会計基準

  • すべて連結扱いで、包括利益を計算している。
  • 財務諸表がタグ化されていないので機械的に取り出せない。
  • 2019/6あたりからちゃんとタグが埋め込まれるようになった。

米国会計基準

  • すべて連結扱いで、包括利益を計算している。
  • 財務諸表がタグ化されていないので機械的に取り出せない。
  • 未だに埋め込まれていない。

以上です

取り急ぎ、これまでの四苦八苦をダンプした。

広告