{
  "version": "2026-08-01g",
  "note": "URLの区分の判定ルール。適用順序は order の配列どおり。ホスト名は小文字化し先頭の www. を除いたうえで、完全一致または「.ドメイン名」で終わるものを一致とみなす（サブドメインを含む）。own はどれにも一致しなかったものが入る受け皿なので rules に列挙しない。このファイルが判定基準の唯一の正であり、記事・集計・サイト生成はすべてこれを読む。matched_counts は業種ごとに分けて記録する。",
  "scope": {
    "industries": [
      "hair",
      "esthetic"
    ],
    "industry_labels": {
      "hair": "美容室・理容室",
      "esthetic": "エステ・ネイル・スパ"
    },
    "note": "このルールで判定してよい業種。ここに無い業種に適用してはいけない。範囲外の業種のURLは、その業種に固有の他社サービスがルールに無いため own の受け皿に落ち、実態より自社ドメイン率が高く出る。業種を増やすときは、その業種のデータで own を棚卸ししてからここに追加すること。未対応: clinic（美容クリニック）— 棚卸しをしていないため適用禁止。",
    "audited": {
      "hair": "2340店（7エリア・重複除外後）を4観点で棚卸し済み",
      "esthetic": "485店（渋谷駅500m）を4観点で棚卸し済み"
    }
  },
  "changelog_note": "moved は「その版で ① own から他の区分へ移った実績」。初版には moved を付けない（見直しではないため、見直し回数の集計から構造的に除外される）。moved.domains はその版で実際に店を動かしたドメイン数。moved.stores は業種別の店舗数。moved.to は移動先区分ごとの店舗数（全業種合算）。これらは実データから算出しており、手で書かない。",
  "changelog": [
    {
      "version": "2026-08-01",
      "change": "初版"
    },
    {
      "version": "2026-08-01b",
      "change": "mystrikingly.com を platform に追加（無料ホームページ作成サービス／2店）。onelink.me を hold に追加（アプリ・予約への転送URL／2店）",
      "moved": {
        "domains": 2,
        "stores": {
          "hair": 4,
          "esthetic": 0
        },
        "from": "own",
        "to": {
          "platform": 2,
          "hold": 2
        }
      }
    },
    {
      "version": "2026-08-01c",
      "change": "ipcard01.com・blogspot.com・minoriba.jp を platform に追加。peakmanager.com・su7.jp を saas に追加。onemorehand.jp・japan.com・jpn.com・happytry.website・the-person.com を hold に追加。あわせて saas / own の定義を明確化: 第三者が提供する予約システムのみ saas とし、チェーン自身が保有するドメイン上の予約画面は own に入れる（判定は一貫して「ドメインの保有者は誰か」で行う）",
      "moved": {
        "domains": 10,
        "stores": {
          "hair": 2,
          "esthetic": 10
        },
        "from": "own",
        "to": {
          "platform": 3,
          "hold": 6,
          "saas": 3
        }
      }
    },
    {
      "version": "2026-08-01d",
      "change": "scope（適用してよい業種）を追加。matched_counts を業種別に分割。エステ485店の棚卸しにより bit.ly・x.gd を hold、reserva.be を saas、nailbook.jp を portal に追加（いずれも美容室2340店では0件）。初版〜v3は美容室2340店だけを見て作られており、エステに適用するとエステ固有の他社サービスが own に落ちていた（短縮URLが自社ドメインに混入）",
      "moved": {
        "domains": 4,
        "stores": {
          "hair": 0,
          "esthetic": 5
        },
        "from": "own",
        "to": {
          "saas": 1,
          "hold": 2,
          "portal": 2
        }
      }
    },
    {
      "version": "2026-08-01e",
      "change": "relxle.com を platform に追加（/usr/ というユーザー名前空間を持つ共有プラットフォーム。エステ1店）。ecarg.jp は own のまま（パスの形が chain 本部サイトと同一で、第三者である構造的な根拠が無いため）。あわせて definitions.hold に、保留に入れる基準（構造的な根拠があるものに限る）を明文化",
      "moved": {
        "domains": 1,
        "stores": {
          "hair": 0,
          "esthetic": 1
        },
        "from": "own",
        "to": {
          "platform": 1
        }
      }
    },
    {
      "version": "2026-08-01f",
      "change": "atama-bijin.jp を platform に追加（美容室3店）。根拠は「共有された掲載ID空間」: 同一ドメインを3店が使い、IDが1462〜10424と桁を跨いで散在し、店名の最大類似度0.31で無関係なブランドが並び、東京・大阪の2都市にまたがる。この5指標による検出は v6 で新設した観点であり、初版〜v5 のスクリーニングには含まれていなかった",
      "moved": {
        "domains": 1,
        "stores": {
          "hair": 3,
          "esthetic": 0
        },
        "from": "own",
        "to": {
          "platform": 3
        }
      }
    },
    {
      "version": "2026-08-01g",
      "change": "suma-one.jp を platform に追加（美容室4店）。根拠は v6 の「共有された掲載ID空間」を数値IDから名前ベースの名前空間へ一般化した検出: 同一ドメインを4店が使い、各店が固有の第1階層名前空間を持ち、店名の最大類似度0.22で無関係なブランドが並び、東京・大阪の2都市にまたがる。傍証として名前空間トークンに日付様サフィックスがあり、同一ドメイン内で http:// と https:// が混在する。この一般化は v7 で新設した観点であり、v6 までの検出手法では発見できなかった",
      "moved": {
        "domains": 1,
        "stores": {
          "hair": 4,
          "esthetic": 0
        },
        "from": "own",
        "to": {
          "platform": 4
        }
      }
    }
  ],
  "source": {
    "data": "Google Maps Platform / Places API",
    "scope": "美容室・理容室（hair_salon / barber_shop）7エリア・2340店。重複はplace_idで除外済み",
    "scanned_date": "2026-07-31"
  },
  "order": [
    "none",
    "hold",
    "portal",
    "platform",
    "sns",
    "saas",
    "own"
  ],
  "labels": {
    "own": "自社ドメイン",
    "portal": "集客ポータル",
    "platform": "他社プラットフォーム上のページ",
    "sns": "SNS・リンク集約",
    "saas": "予約SaaS",
    "hold": "判定保留",
    "none": "URL登録なし"
  },
  "definitions": {
    "own": "そのドメインを、店またはその店のブランド（チェーン本部・シェアサロン運営会社を含む）が保有しているもの。下の portal / platform / sns / saas / hold のどれにも当てはまらなかったものが、ここに入る。サービスを解約してもURLは自分の手元に残り、別の制作会社やサーバーへ移せる。なお、チェーン自身が保有するドメイン上の予約画面も、ドメインの保有者がそのブランドである以上ここに入る。本区分にはチェーン本部の店舗ページを含み、その内訳は別途「同一ドメインを4店以上が共有しているもの」として開示している。",
    "portal": "予約や店舗検索を目的とした集客ポータルのドメイン。ホットペッパービューティー、楽天ビューティ、ミニモ、オズモール、エキテンなど。掲載をやめればページは消え、掲載順や表示のされ方は運営事業者が決める。",
    "platform": "ドメインの保有者が、その店・そのブランドではなく、第三者のサービス事業者であるもの。ブログサービス、無料ホームページ作成サービス、サロン向けの共有プラットフォームなどが該当する。サービスが終了したり解約したりすればURLごと消え、他所へ移すことができない。注意: URLが /salons/<ID>/ のような形をしていることは判定の根拠ではない。チェーン本部が自社サイトの中で /salon/<店舗名>/ という形を使う例が実際に多数あり、URLの形だけでは区別できない。判定はあくまで「そのドメインを誰が保有しているか」で行う。",
    "sns": "SNSのプロフィールページ、またはリンクをまとめるサービス（リンクインバイオ）。Instagram、Facebook、X、LINE、TikTok、YouTube、lit.link、linktr.ee など。",
    "saas": "第三者が提供する予約・顧客管理システムの画面。ログイン画面や予約フォームに直接つながるもので、店の情報を伝えるページではない。coubic.com、reservia.jp、b-merit.jp など。チェーン自身が保有するドメイン上の予約画面はここに含めない（own に入る）。",
    "hold": "上のどれとも判定できなかったもの。短縮URL、転送URL、地図サービスへのリンク、共有ドメインなど。判別できないものを自社ドメインには数えない、という方針で保留する。ホストごとの理由は rules.hold に記載する。 判定保留に入れるのは、構造的な根拠があるものに限る。共有第2レベルドメイン、短縮URL、転送URL、共有ホスティング、テナント別サブドメインなど、URLの形そのものが「保有者が第三者である可能性」を示しているものだけを対象とする。「ドメイン名がブランド名として読めるかどうか」という語感では判定しない。基準にならず、同じ形の他のドメインを一貫して扱えないため。構造的な根拠が無いものは、疑わしく見えても自社ドメインに数える。",
    "none": "GoogleビジネスプロフィールにウェブサイトのURLが登録されていないもの。"
  },
  "rules": {
    "portal": [
      "hotpepper.jp",
      "hpr.jp",
      "beauty.rakuten.co.jp",
      "minimodel.jp",
      "minimo.jp",
      "ozmall.co.jp",
      "beauty.biglobe.ne.jp",
      "ekiten.jp",
      "hairlog.jp",
      "bestsalonreport.jp",
      "nailbook.jp"
    ],
    "platform": [
      "hairbook.jp",
      "stekina.com",
      "ameblo.jp",
      "amebaownd.com",
      "jimdo.com",
      "jimdofree.com",
      "jimdosite.com",
      "wixsite.com",
      "goope.jp",
      "crayonsite.net",
      "crayonsite.info",
      "crayonsite.com",
      "peraichi.com",
      "themedia.jp",
      "shopinfo.jp",
      "storeinfo.jp",
      "thebase.in",
      "p-kit.com",
      "studio.site",
      "canva.site",
      "pagehub.jp",
      "bindcloud.jp",
      "manus.space",
      "pages.dev",
      "netlify.app",
      "vercel.app",
      "github.io",
      "salonpos-net.com",
      "airsalon.net",
      "iihair.net",
      "kanzashi.com",
      "locaop.jp",
      "showme.studio",
      "postas.asia",
      "main.jp",
      "business.site",
      "sites.google.com",
      "mystrikingly.com",
      "ipcard01.com",
      "blogspot.com",
      "minoriba.jp",
      "relxle.com",
      "atama-bijin.jp",
      "suma-one.jp"
    ],
    "sns": [
      "instagram.com",
      "facebook.com",
      "twitter.com",
      "x.com",
      "lin.ee",
      "line.me",
      "tiktok.com",
      "youtube.com",
      "youtu.be",
      "xiaohongshu.com",
      "lit.link",
      "linktr.ee",
      "linkbio.co"
    ],
    "saas": [
      "coubic.com",
      "reservia.jp",
      "yoyakul.jp",
      "1cs.jp",
      "cu-mybeautydesk.com",
      "b-merit.jp",
      "peakmanager.com",
      "su7.jp",
      "reserva.be"
    ],
    "hold": {
      "jp.net": "共有第2レベルドメイン。店が自分で登録した可能性もあり判別できない",
      "japan.com": "共有第2レベルドメイン。店が自分で登録した可能性もあり判別できない",
      "jpn.com": "共有第2レベルドメイン。店が自分で登録した可能性もあり判別できない",
      "cloudzero.biz": "共有ホスティングと思われる（URLのパスが / のみで判断材料がない）",
      "happytry.website": "共有ドメインと思われるが、店が自分で登録した可能性も否定できない",
      "the-person.com": "ブランド名とも共有サービス名とも読め、ページを開かずに判定できない",
      "onemorehand.jp": "テナント別サブドメインの共有基盤とも、運営会社の自社サイトとも読める。ページを開かずに判定できない",
      "goo.gl": "短縮URL。リンク先が確認できない",
      "onelink.me": "アプリ・予約への転送URLで、リンク先のページが確認できない",
      "map.yahoo.co.jp": "地図サービスへのリンクで、店のサイトではない",
      "rd-listing.yahoo.jp": "広告のリダイレクトURLで、店のサイトではない",
      "qjnavi.jp": "美容の求人ポータル。集客用のサイトではない",
      "hairsalongoope.com": "独自に登録されたドメインだが、名称が無料サービス「グーペ」に由来し判別できない",
      "bit.ly": "短縮URL。リンク先が確認できない",
      "x.gd": "短縮URL。リンク先が確認できない"
    }
  },
  "matched_counts": {
    "hair": {
      "hotpepper.jp": 680,
      "hpr.jp": 6,
      "beauty.rakuten.co.jp": 3,
      "minimodel.jp": 3,
      "minimo.jp": 0,
      "ozmall.co.jp": 0,
      "beauty.biglobe.ne.jp": 0,
      "ekiten.jp": 1,
      "hairlog.jp": 1,
      "bestsalonreport.jp": 1,
      "nailbook.jp": 0,
      "hairbook.jp": 50,
      "stekina.com": 21,
      "ameblo.jp": 4,
      "amebaownd.com": 7,
      "jimdo.com": 0,
      "jimdofree.com": 1,
      "jimdosite.com": 0,
      "wixsite.com": 5,
      "goope.jp": 1,
      "crayonsite.net": 1,
      "crayonsite.info": 1,
      "crayonsite.com": 0,
      "peraichi.com": 2,
      "themedia.jp": 1,
      "shopinfo.jp": 1,
      "storeinfo.jp": 1,
      "thebase.in": 2,
      "p-kit.com": 1,
      "studio.site": 1,
      "canva.site": 4,
      "pagehub.jp": 1,
      "bindcloud.jp": 1,
      "manus.space": 2,
      "pages.dev": 1,
      "netlify.app": 0,
      "vercel.app": 0,
      "github.io": 0,
      "salonpos-net.com": 2,
      "airsalon.net": 1,
      "iihair.net": 1,
      "kanzashi.com": 3,
      "locaop.jp": 1,
      "showme.studio": 1,
      "postas.asia": 1,
      "main.jp": 1,
      "business.site": 0,
      "sites.google.com": 1,
      "mystrikingly.com": 2,
      "ipcard01.com": 1,
      "blogspot.com": 0,
      "minoriba.jp": 0,
      "relxle.com": 0,
      "atama-bijin.jp": 3,
      "suma-one.jp": 4,
      "instagram.com": 50,
      "facebook.com": 10,
      "twitter.com": 0,
      "x.com": 1,
      "lin.ee": 4,
      "line.me": 2,
      "tiktok.com": 0,
      "youtube.com": 2,
      "youtu.be": 0,
      "xiaohongshu.com": 1,
      "lit.link": 4,
      "linktr.ee": 2,
      "linkbio.co": 1,
      "coubic.com": 2,
      "reservia.jp": 1,
      "yoyakul.jp": 1,
      "1cs.jp": 2,
      "cu-mybeautydesk.com": 1,
      "b-merit.jp": 20,
      "peakmanager.com": 0,
      "su7.jp": 0,
      "reserva.be": 0,
      "jp.net": 3,
      "japan.com": 0,
      "jpn.com": 0,
      "cloudzero.biz": 2,
      "happytry.website": 0,
      "the-person.com": 0,
      "onemorehand.jp": 1,
      "goo.gl": 1,
      "onelink.me": 2,
      "map.yahoo.co.jp": 1,
      "rd-listing.yahoo.jp": 1,
      "qjnavi.jp": 1,
      "hairsalongoope.com": 1,
      "bit.ly": 0,
      "x.gd": 0
    },
    "esthetic": {
      "hotpepper.jp": 114,
      "hpr.jp": 1,
      "beauty.rakuten.co.jp": 0,
      "minimodel.jp": 1,
      "minimo.jp": 0,
      "ozmall.co.jp": 1,
      "beauty.biglobe.ne.jp": 0,
      "ekiten.jp": 0,
      "hairlog.jp": 0,
      "bestsalonreport.jp": 0,
      "nailbook.jp": 2,
      "hairbook.jp": 1,
      "stekina.com": 0,
      "ameblo.jp": 1,
      "amebaownd.com": 0,
      "jimdo.com": 0,
      "jimdofree.com": 0,
      "jimdosite.com": 0,
      "wixsite.com": 4,
      "goope.jp": 0,
      "crayonsite.net": 0,
      "crayonsite.info": 0,
      "crayonsite.com": 0,
      "peraichi.com": 0,
      "themedia.jp": 0,
      "shopinfo.jp": 2,
      "storeinfo.jp": 0,
      "thebase.in": 0,
      "p-kit.com": 0,
      "studio.site": 0,
      "canva.site": 1,
      "pagehub.jp": 0,
      "bindcloud.jp": 0,
      "manus.space": 0,
      "pages.dev": 0,
      "netlify.app": 0,
      "vercel.app": 0,
      "github.io": 0,
      "salonpos-net.com": 0,
      "airsalon.net": 0,
      "iihair.net": 0,
      "kanzashi.com": 1,
      "locaop.jp": 0,
      "showme.studio": 0,
      "postas.asia": 0,
      "main.jp": 0,
      "business.site": 0,
      "sites.google.com": 0,
      "mystrikingly.com": 0,
      "ipcard01.com": 0,
      "blogspot.com": 1,
      "minoriba.jp": 1,
      "relxle.com": 1,
      "atama-bijin.jp": 0,
      "suma-one.jp": 0,
      "instagram.com": 15,
      "facebook.com": 0,
      "twitter.com": 0,
      "x.com": 0,
      "lin.ee": 5,
      "line.me": 1,
      "tiktok.com": 0,
      "youtube.com": 0,
      "youtu.be": 0,
      "xiaohongshu.com": 0,
      "lit.link": 0,
      "linktr.ee": 1,
      "linkbio.co": 0,
      "coubic.com": 0,
      "reservia.jp": 0,
      "yoyakul.jp": 0,
      "1cs.jp": 0,
      "cu-mybeautydesk.com": 0,
      "b-merit.jp": 6,
      "peakmanager.com": 2,
      "su7.jp": 1,
      "reserva.be": 1,
      "jp.net": 0,
      "japan.com": 1,
      "jpn.com": 1,
      "cloudzero.biz": 0,
      "happytry.website": 1,
      "the-person.com": 2,
      "onemorehand.jp": 0,
      "goo.gl": 0,
      "onelink.me": 0,
      "map.yahoo.co.jp": 0,
      "rd-listing.yahoo.jp": 0,
      "qjnavi.jp": 0,
      "hairsalongoope.com": 0,
      "bit.ly": 1,
      "x.gd": 1
    }
  },
  "category_counts": {
    "hair": {
      "none": 541,
      "hold": 13,
      "portal": 695,
      "platform": 131,
      "sns": 77,
      "saas": 27,
      "own": 856
    },
    "esthetic": {
      "none": 111,
      "hold": 7,
      "portal": 119,
      "platform": 13,
      "sns": 22,
      "saas": 10,
      "own": 203
    }
  }
}