Valscope開発記 第1回 — 個人で産業分析サービスを作る

公開: 2026-05-11
Valscope開発日記PythonLightGBM

はじめに

Valscope(val.codese.net)は、上場企業の有報データを機械的に整理し、業績の方向性を産業ごとに見やすくするWebサービスです。個人が作れる範囲で「産業分析の入り口」を作ることが目標です。

この記事では、なぜ作ることにしたか・どんな構成にしているか・今どこまで進んでいるかを記録します。

なぜ作るのか

株式投資を続けていると「この企業は業界全体で見てどのくらいの位置にいるのか」を手早く確認したい場面がよくあります。有報を1件ずつ読むのは時間がかかり、無料ツールでは産業横断の比較がしにくい。そこで自分で作ることにしました。

データ源と構成

データは金融庁の EDINET から XBRL 形式で取得しています。対象は上場企業の有価証券報告書(通期)で、2016年度以降を処理対象にしています。

パイプラインの大きな流れはこうなっています。

  1. EDINET API で書類リストを取得
  2. XBRL を解析して財務項目を抽出・Parquet に保存
  3. 企業・業種ごとに集計し、特徴量を生成
  4. LightGBM で翌期の売上方向を予測
  5. Next.js のフロントエンドで閲覧できるようにする

実行環境は Docker + Python で、データ正本はローカルの外付けSSDに置いています。

現在の進捗

2016年度分の XBRL 突合で未処理件数が約2,190件残っており、データ品質の改善が直近の課題です。

つまずいたこと

XBRL の仕様は版によって項目名が変わるため、年度をまたいだ突合が難しい。特に2016〜2018年頃の古い書類は属性の書き方が現在と異なるものがあり、パーサーを都度調整しています。

また Parquet 出力が空になるケースがあり、スコアリング処理でストリーム読み込みに変更することで回避しました。

次にやること

月に1〜2回、この開発記で進捗を残していく予定です。

まとめ