Methodology

異なる市場構造を、同一の観測空間に載せる。

この文書は仕様として公開します。競争優位はデータの蓄積にあり、算出式の秘匿にはありません。秘匿するのは生データそのものと、その履歴の深さだけです。

ontology: 未確定 index: 未確定 confidence_model: 未確定 spec: v0.2

01三層構造

各プラットフォームは経済単位そのものが異なります。ココナラは出品型、Fiverr は Gig 型のカタログ、Upwork は求人・提案型、Freelancer.com はプロジェクト・入札型。Upwork の求人1件と Fiverr の検索1件を足した数字には意味がありません。変換を挟まずに合算した指数は、見た目が整っているだけで何も測っていません。

プラットフォーム市場構造観測される単位
ココナラ出品型出品数、販売実績、評価数
FiverrGig型(カタログ)Gig数、検索、注文(レビュー差分から推定)
Upwork求人・提案型求人投稿数、提案数
Freelancer.comプロジェクト・入札型プロジェクト数、入札数
クラウドワークス募集・応募型募集数、応募数

そこで、観測から指数までを三層に分けます。各層の出力は前層へのポインタを保持し、監査可能性はこの構造に依存します。

Observation Layer
プラットフォーム固有の生の単位。生のレスポンスボディが一次資産で、集計値ではありません。取得時点では解釈しません。
Market Layer
共通の市場定義。言語・プラットフォーム非依存。
Index Layer
比較可能な指数 + 絶対量 + Confidence。

地域依存の所在

共通スキーマとオントロジーの階層構造は地域非依存です。一方、表層表現の対応表(言語ごと)、観測手段(どのサイトを見るか)、較正係数(市場規模が違う)は地域依存です。データが完成した後の配布は地域を問いませんが、データを作る工程は地域ごとに作り直しになります。

スキーマ
地域依存なし
オントロジーの階層構造
地域依存なし
表層表現 → 市場定義の対応表
あり(言語ごとに作る)
観測手段
あり(日本はココナラ、韓国は Kmong、中国は猪八戒网、米国は Upwork / Fiverr)
較正係数
あり(市場規模が違う)
指数の算出式
地域依存なし

02Market Ontology

多言語・多表記の表層表現を、単一の市場定義に束ねます。

「logo design」「logo designer」「brand logo」「logo creation」
「ロゴ制作」「ロゴデザイン」「ロゴ作成」
        ↓
DESIGN > BRANDING > LOGO_DESIGN

Constraint

LLM は対応表の生成に使います。ただし分類器として実行時には使いません。LLM の分類は非決定的で、モデルを更新した瞬間に過去の割り当てが変わります。時系列がこの事業の資産の全てである以上、分類が動くと資産が壊れます。

項目方針
LLM の役割表層表現 → 市場定義の対応表を生成する(オフライン)
対応表の扱いバージョン付きの凍結資産。実行時は表引きのみ
新規表現の追加自動採用しない。人手レビューを通す
再分類日付を切った明示的マイグレーションとしてのみ実施
旧系列削除しない。新旧の ontology_version を並存させる
付与全 observation に ontology_version を記録

Ontology v0.1 は、生データ90日分の観察後に確定します。実データを横断で見る前に体系を作ると、実在しない構造を設計してしまうためです。なお、ココナラの「占い」「悩み相談・カウンセリング」のように、英語圏の主要プラットフォームに対応先が存在しないカテゴリがあります。全カテゴリが対応するわけではないことを前提に設計します。

03正規化:水準を失わない設計

最も重要で、最も間違えやすい箇所です。プラットフォーム内で percentile や Z-score を取ると、水準の情報が消えます。Fiverr のロゴ市場がココナラの10倍の規模であっても、それぞれの市場内で90パーセンタイルなら同じ数字になります。このとき指数が測っているのは「そのプラットフォーム内での相対的な目立ち度」であって、需要そのものではありません。

Cross-Market Gap は水準差の検出そのものです。相対値のみで統合すると、原理的に検出不能になります。

Design rule

全カテゴリについて、相対値と絶対量を必ず両方保持する。

フィールド内容用途
index_relative0〜100。プラットフォーム内正規化カテゴリ間の比較
volume_absolute観測件数 / GMV 代理値プラットフォーム間・地域間の比較
volume_confidence絶対量推定の信頼度較正の質の開示

較正(アンカー方式)

  1. アンカーカテゴリを少数固定する両プラットフォームに明確な対応物が存在し、取引の代理指標が最も直接的に取れるカテゴリを選ぶ。生データ90日分の観察が入力になる。

  2. 較正係数を推定するアンカーにおける実測値からプラットフォーム間の較正係数を推定する。

  3. 残りのカテゴリの絶対量を推定する相対値 × 較正係数で絶対量を推定する。全カテゴリで絶対値を直接取る必要はない。

  4. バージョンと推定誤差を出力に含める較正係数のバージョンと推定誤差を、指数と一緒に出力する。

アンカーがゼロの状態で相対値だけを統合した指数には、意味がありません。

04需要代理指標と変換上の注意

直接の検索ボリュームは各プラットフォームとも非公開です。需要は以下の代理指標で構成します。

指標取得方法精度
販売速度レビュー数・販売実績数の期間差分高。中核指標
検索意図オートコンプリート候補の出現・消滅中。方向性のみ
外部検索需要キーワードプランナー(国別実数)、トレンド(地域内訳)中〜高
求人データ企業が何を採用しているか=何を外注・購買するかの先行指標

プラットフォームごとの落とし穴

プラットフォーム需要代理変換時の落とし穴
Upwork求人投稿数1件が $500 か $50,000 か区別できない。予算帯を必ず併記する
Fiverrレビュー数差分から注文数を推定レビュー率が未知。定数として推定し、その定数と感度を明示する
ココナラ販売実績差分表示が丸められる階級値。丸め幅を誤差として保持する。丸め境界を跨がない変動は観測できない
Freelancer.comプロジェクト数入札数を需要に算入しない。入札は供給側の指標であり、需要に足すと符号が逆になる

入札数・提案数は Supply Index 側に入ります。各代理指標をどのソースから取るか(候補と確認状態を含む)は観測ソースに一覧があります。

雇用需要は別のレイヤーとして持つ

求人件数は外注需要(サービス市場)とは別の指標として保持し、混ぜません。同じ市場について外注需要と雇用需要を並置すると、水準だけでなく構造の変化が見えます。

AI Agent Development
  外注需要(サービス市場) +80%   雇用需要(求人) +55%   → 市場全体が伸びている可能性
  外注需要(サービス市場) +150%  雇用需要(求人) −5%    → 雇用ではなく外注化が進んでいる可能性

どちらも事実の並置であり、解釈は加えません。求人の集計指数(Indeed Hiring Lab)と、公式 API で取れる実求人件数(Saramin など)を区別して記録します。

05出力する指標セット

単一の Gap スコアにはまとめません。販売速度 ÷ 供給密度 のような比率に潰すと、「100 ÷ 10」と「10,000 ÷ 1,000」が同じ値になります。市場としては全く別物です。比率は水準を消します。

指標内容
demand_index需要の相対値0〜100
supply_index供給の相対値0〜100
gap_index差分±pt
momentumGap の90日変化±pt
price_median中央値価格通貨額
volume_absolute絶対量(観測件数/GMV代理)実数。省略不可
confidence信頼度0〜100
AI Agent Development
Demand 84Supply 51Gap +33
Momentum +21Median ¥124,000$780
Volume 4,120 obs/moConfidence 92
表示例(ダミー)。volume_absolute を欠いた出力は作りません。

06Cross-Market Gap

同一の市場定義について、地域間の需要・供給の水準と変化を並置します。出力は事実の並置に留め、解釈を加えません。「アービトラージ」という語は利益機会の提示を含意するため使いません。

Demand
Supply
US
↑ +18%
↑ +6%
JP
→ +2%
↓ −4%
Category: AI Code Review(表示例)

これは水準差の検出であるため、volume_absolute と較正係数が揃って初めて成立します。相対値のみでは原理的に検出できません。言語とプラットフォームの壁により即座には埋まらないため、公開しても自己破壊しにくい唯一の指標であり、最優先で実装します。

07Confidence Model

Confidence は表示上の親切さのために置くのではなく、Signal Validation Log に統計的な意味を与えるために必要です。全判定を一本の的中率で公開すると、外れたときに何も説明できません。帯別に分解して初めて、次のような開示が可能になります。

Confidence 90以上の判定:的中率 71%
Confidence 60未満の判定:的中率 48%

Confidence 58 と開示した判定が外れても信用は毀損しません。開示せずに外した場合のみ毀損します。

因子

シグナル種別に等級を貼るだけでは不十分です。A級シグナルで観測3週間のカテゴリと、B級で観測18ヶ月のカテゴリでは、実際の信頼度が逆転しえます。

因子内容範囲
S シグナル品質需要代理指標の等級(A/B/C/D)0〜1
M ソース多重性独立ソース数と、相互の一致度。信号の種類(サービス市場/専門市場/求人/マイクロタスク/検索/コミュニティ)が異なるほど独立とみなす0〜1
N 標本量観測対象の母数0〜1
T 観測期間長その系列の連続観測日数0〜1
F 鮮度最終観測からの経過時間0〜1
Confidence = 100 × ( w_S·S + w_M·M + w_N·N + w_T·T + w_F·F )

重みは推測せず、実測から較正する

初期の重みは仮置きであり、正しさを主張しません。Signal Validation Log が最初の検証サイクルを終えた時点で、Confidence 帯別の実測的中率との相関から重みを較正します。Confidence モデル自体がバージョン管理の対象です。

  • 全出力に confidence_model_version を付与する
  • 較正のたびに旧バージョンの出力を保持する(過去の開示を遡って書き換えない)
  • 較正の実施と変更内容を公開する
  • 四半期ごとに Confidence 帯別の的中率(較正曲線)を公開する。Confidence が的中率と単調に相関していなければ、モデルが壊れている

低 Confidence を隠さない

Confidence が低いカテゴリを非表示にせず、数値を添えて表示します。較正が済んでいない指標にはその旨を明示し、絶対量推定が較正係数に依存している場合は volume_confidence を別途出します。

AI Agent Development     Gap +33   Confidence 92
Japanese Voice Acting    Gap +35   Confidence 58

Gap のみを見れば後者が大きいですが、データ品質が弱いことが同時に読めます。この2行が並んで表示されることが、この製品の設計思想そのものです。

08表示ルール

製品が中立でも、審査されるのは表示です。中身と訴求の温度を一致させるため、以下を UI とデータ配布物の両方に適用します。

  • 総合ランキングを作らない。単一の順位表を出した時点で、一文も推奨していなくても推奨になる
  • 既定のソート列が事実上のランキングになる。初期表示はカテゴリ名順または観測日順とし、Gap 降順は利用者が明示的に選択した場合のみ適用する
  • 「注目」「おすすめ」「有望」等のラベルを UI 語彙から排除する
  • 並べ替え軸は対称に提供する(Demand 昇降/Supply 昇降/Gap 昇降/Momentum)
  • 「稼げる」「収益が見込める」類の訴求を、自社の表示物から排除する
SAMPLE · ダミーデータ 既定:カテゴリ名順(昇順)
指標セットの表示例(ダミーデータ)
AI Agent Development
AI_AGENT_DEVELOPMENT
8451+33 需要>供給+21¥124,000$7804,120 件/月92
AI Automation (n8n etc.)
AI_AUTOMATION
7763+14 需要>供給+9¥66,800$4206,880 件/月85
Code Review / QA
CODE_REVIEW_QA
5839+19 需要>供給+4¥41,300$2601,390 件/月71
Japanese Voice Acting
JA_VOICE_ACTING
6631+35 需要>供給+12¥15,100$95310 件/月58
Logo Design
LOGO_DESIGN
6188−27 供給>需要−6¥19,100$12021,400 件/月94
Translation JA↔EN
TRANSLATION_JA_EN
4972−23 供給>需要−14¥9,500$605,200 件/月88

09公開範囲とバージョン

以下は仕様として公開します。

  • オントロジーの対応表(バージョンごと)
  • 指数の算出式
  • Confidence の因子・重み・較正履歴
  • 較正係数とアンカーカテゴリ、推定誤差
  • 日次チェーンヘッドと外部アンカリング先

秘匿するのは生データそのものと、その履歴の深さだけです。

spec_version
v0.2(スナップショット取得仕様書)
crawler_version
0.1.0
ontology_version
未確定 — 生データ90日分の観察後に v0.1 を確定
index_version
未確定 — Phase 2 で確定
confidence_model_version
未確定 — 初回検証サイクル後に較正
calibration_version
未確定 — アンカーカテゴリ選定後

バージョンが変われば別の指標として扱い、旧バージョンの出力を保持します。仕様変更を静かに行いません。仕様を変更した日は、日次チェーン上で特定可能です。