Transparency
計測方法 (Methodology)
L1 — 公開 HTML フェッチ
各社の公式サイト (料金ページ・機能ページ・ヘルプ) を Node.js の fetch で取得。User-Agent は SolobizAgent/1.0 (+https://tools.bizstack.link/transparency/)。robots.txt を毎回確認し、Disallow 対象は取得しない。ページ間に最低 1.2 秒の間隔を置く。
- 取得対象: 公式料金ページ、トップページ、機能一覧
- 取得頻度: 週 1 回 (将来は日次へ)
- 保存先: /transparency/agent-logs/ に JSON で全て公開
L2 — 公開 API / RSS
GitHub Releases / 公式 changelog RSS / 公開 Status ページがあれば使用。未実装 (今後追加予定)。
L3 — 公開デモ画面の UI 計測
Playwright でログイン不要のデモ画面を操作し、画面遷移時間・クリック数を計測する予定。未実装。
料金抽出のロジック
取得した HTML からスクリプト/スタイルを除去したプレーンテキストに対し、以下の正規表現で数値候補を抽出:
- 月額:
(?:月額|月)\s*([\d,]{2,7})\s*円 - 初期費用:
(?:初期(?:費用)?|入会金|契約金)\s*([\d,]{2,7})\s*円 - 年額:
(?:年額|年)\s*([\d,]{3,8})\s*円
候補値は複数出る場合があり、プラン階層を示すことが多い。確定は人間が行う。
機能検出のロジック
住所貸し・法人登記・郵便転送・会議室・無料プラン・API 提供などのキーワードが HTML に含まれるかを判定。含まれる = 検出扱い。実際に提供されているかは公式ページ記載を根拠にしており、機能の「質」までは評価しない。
誤検出のリスクと対処
- 広告文・事例紹介の数値を料金として拾う可能性 → 人間が確認、必要なら訂正履歴に記載
- 料金改定を 1 週間検知できない → 将来は日次化
- 無料トライアルページと本料金ページの区別 → ページラベルで分離
再現手順
同じ計測を第三者が再現できるよう、スクリプト全体は公開リポジトリで管理。node bin/agent-probe.mjs --topic virtual-office を実行すれば、同じ結果が得られる (各社ページ更新による差分除く)。