商圏とは、店舗が顧客を集めている地理的な範囲のことです。最も手早い描き方は円です。店舗を選び、半径を5 kmに設定し、その中の人口を数えます。ただし、これは最も精度の低い方法でもあります。顧客は道路を走って来店し、道路網は円の形をしていないからです。
私たちは、その違いがどれほど大きいかを測りました。リヨン、ミュンヘン、ミラノのスーパー60店について、MapAtlasのIsochrone APIで車で5分、10分、15分の到達圏を取得し、100 mの人口グリッドで各範囲の住民を数えました。半径5 kmの円に含まれる人口は、中央値で、車で10分に実際に届く人口の1.7倍でした。 立地選定にとってさらに問題なのは、円を使うと店舗の順位が入れ替わることです。
この記事では、商圏の定義、3都市の比較、測定結果を順に説明し、最後に車の到達時間で商圏を描くのに必要な2つのAPIリクエストを紹介します。データはヨーロッパの都市のものですが、同じ商圏分析の手順は自社の店舗リストにそのまま当てはめられます。
商圏とは:顧客を集める範囲
商圏(英語ではcatchment areaまたはtrade area)とは、ある拠点が顧客の大半を集めている地理的な範囲です。小売業、銀行、クリニック、フィットネスジム、飲食チェーンはどれも、同じ問いに答えるために商圏を使います。その立地に潜在顧客が何人いるか、何店の競合がその顧客を分け合っているか、新しい店舗が既存店の顧客を奪わないか、という問いです。
商圏の描き方は主に3つあります。
- 半径。 拠点を中心に、一定の直線距離で描く円です。手早く描けますが、道路、川、鉄道の線路を考慮しません。
- 移動時間。 到達圏(等時間圏、アイソクローン)です。車、徒歩、自転車で決められた時間内に到達できるすべての地点を、道路網の上で計算します。この記事で検証するのはこの方法です。
- 実測。 ポイントカード、配送先住所、スマートフォンの位置情報パネルなどから分かる、実際の顧客が住んでいる範囲です。最も正確ですが、店舗が開業してからしか使えません。
移動時間の商圏は、通常いくつかの帯に分けます。店舗に近い1次商圏が顧客の大半を供給し、2次商圏はそれより少なく、外縁の3次商圏はたまの来店を供給します。今回は車で5分、10分、15分を使いました。
商圏は重なり合います。3つのスーパーの10分圏に入っている世帯は、支出を3店に分けます。この配分をモデル化する古典的な方法が、デビッド・ハフ(David Huff)が1964年に論文Defining and Estimating a Trading Areaで発表した重力モデル、いわゆるハフモデルです。このモデルでは、ある店舗が選ばれる確率は、店舗の規模が大きいほど上がり、そこまでの移動時間が長いほど下がります。どの版のモデルも移動時間を必要とするので、この点からも車の到達時間から始める理由があります。
商圏分析で測定したこと
リヨン、ミュンヘン、ミラノの各中心部から15 km以内で、OpenStreetMapにスーパーとしてタグ付けされた店舗をすべて取得しました。そのうち中心部から8 km以内の店舗から、各都市20店を無作為に選びました。各店舗について、次のものを求めました。
- 到達圏ポリゴン。 MapAtlas Isochrone APIで、車で5分、10分、15分の範囲を取得しました。2026年9月30日に出発時刻を指定せずにリクエストしたため、リアルタイムの交通状況は含みません。
- 2つの円。 同じ地点を中心とした半径5 kmの固定円と、その店舗の10分圏ポリゴンとまったく同じ面積の円です。
- 各範囲内の住民。 欧州委員会共同研究センター(JRC)のGHS-POP R2023A人口グリッドを使いました。セルは100 m、値は2025年の推計です。
- 各範囲内の競合店。 OpenStreetMapのリストにある他のスーパーです。
下の地図は、各都市1店舗ずつを示しています。10分圏の人口がその都市の中央値に最も近い店舗です。
10分圏のポリゴンはぎざぎざした形をしています。速い道路に沿って長く突き出し、道路網が遅い所や途切れる所ではへこんでいます。3つのどれも破線の円には似ておらず、3都市すべてで、円は10分圏が届かない人口密集地区を含んでいます。
半径5 kmの円は人口を1.7倍多く数える
| 都市 | 店舗数 | 10分圏の面積 | 5分圏の住民 | 10分圏の住民 | 15分圏の住民 | 半径5 km円内の住民 | 円に対する10分圏の割合 |
|---|---|---|---|---|---|---|---|
| リヨン | 20 | 33 km² | 46,000 | 261,000 | 617,000 | 566,000 | 45% |
| ミュンヘン | 20 | 50 km² | 71,000 | 372,000 | 920,000 | 586,000 | 65% |
| ミラノ | 20 | 44 km² | 97,000 | 428,000 | 941,000 | 672,000 | 63% |
| 60店すべて | 60 | 44 km² | 67,000 | 348,000 | 807,000 | 628,000 | 60% |
表の値はすべて、各行に含まれる店舗の中央値です。最後の列は、店舗ごとに計算した比率の中央値です。
これらの都市で車で10分に届く範囲は約44 km²で、半径3.7 kmの円と同じ面積です。半径5 kmの円は79 km²なので、より多くの人を数え、中央値では1.7倍になります。比率は店舗ごとに大きく異なり、円内の人口のうち10分で到達できる割合は21〜87%でした。
問題の核心はこのばらつきです。リヨン中心部から約6 kmにある2つのスーパーが、その例です。1店目は、東側の人口が密集した郊外ヴィルールバンヌ(Villeurbanne)にあります。2店目は、市の北西でモン・ドール(Monts d'Or)の丘のふもとにあるリモネスト(Limonest)にあります。円で数えると、1店目は431,000人、2店目は168,000人で、比は2.6です。車で10分で数えると、1店目は347,000人、2店目は36,000人に届き、比は9.6です。リモネストの円はリヨンの人口密集地区まで届いていますが、車で10分の到達圏はそこまでほとんど届きません。
面積が同じ円でも形が合わない
当然の反論として、半径5 kmの円は単に大きすぎるという見方があります。そこで、各店舗の10分圏ポリゴンとまったく同じ面積の円も描きました。
それでも形の違いは結果に効きます。中央値で見ると、同じ面積の円は、店舗から10分で到達できる人の14%を取りこぼし、円の中にいる人の15%は10分では店舗に到達できませんでした。 2つの形が共有していたのは、合わせた面積の64%です。川と丘で道路網が分断されるリヨンでは、円は到達可能な人口の20%を取りこぼしました。より平坦で規則的な街路網のミュンヘンとミラノでは、それぞれ13%と12%でした。
1店舗だけなら、15%の誤差は許容できるかもしれません。候補地を比べる場合は許容できません。誤差の大きさが立地ごとに違うからです。
円を使うと立地の順位が入れ替わる
立地選定は順位付けの問題です。どの候補地に潜在顧客が最も多いかを決めます。私たちは各都市の20店を2回順位付けしました。1回目は半径5 kmの円の人口、2回目は車で10分の到達圏の人口で並べました。
- 順位相関(スピアマン):2つの順位の相関は、リヨン0.70、ミュンヘン0.70、ミラノ0.85、60店全体で0.64でした。
- 各都市の上位5店:円と到達時間で一致したのは、リヨンで上位5店中2店、ミュンヘンで2店、ミラノで3店だけでした。
- 最良の立地:到達圏の人口が最も多い店舗は、円の順位ではリヨンで4位、ミュンヘンで6位でした。両方の方法が同じ店舗を選んだのはミラノだけです。
円の人口で候補地を絞り込むと、最良の立地のいくつかを候補から落とすことになります。
商圏内の競合店
同じ形を使えば、立地選定の2つ目の問いにも答えられます。市場がどれだけ混み合っているか、という問いです。中央値の店舗では、車で10分の到達圏にOpenStreetMapのリストにある他のスーパーが約108店、半径5 kmの円には167店ありました。円は需要と同じくらい競合も多く見積もります。しかも2つの誤差は打ち消し合いません。誤差が大きくなる店舗がそれぞれ異なるからです。
これらの数には、都心の小型店から大型店まで、スーパーとしてタグ付けされたすべての店舗が含まれます。密度の指標として扱ってください。実際のシェアを見積もるには、各競合店を規模と各世帯からの移動時間で重み付けします。ハフモデルが行っているのはこの計算です。
商圏分析のやり方:車の到達時間で商圏を描く
手順は2つです。ポリゴンをリクエストし、その中にあるものを数えます。
1. アイソクローンをリクエストする。 1拠点につき1回のPOSTリクエストで、すべての時間帯がまとめて返ります。
curl -X POST "https://gateway.mapmetrics-atlas.net/isochrone/?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"locations": [{"lat": 45.7640, "lon": 4.8357}],
"costing": "auto",
"contours": [{"time": 5}, {"time": 10}, {"time": 15}],
"polygons": true
}'
レスポンスは、時間帯ごとに1つのポリゴンを含むGeoJSONのFeatureCollectionです。人口が密集した中心部にあり、顧客の多くが徒歩で来る店舗では"costing": "pedestrian"を使ってください。
2. 中にあるものを数える。 各ポリゴンを人口データと重ね合わせます。GHS-POPのような人口グリッド、国勢調査の小地域、または自社の顧客住所が使えます。グリッドの場合は、中心点がポリゴン内に入るセルを合計します。統計区域の場合は、各区域の人口を、ポリゴン内に入る面積の割合で按分します。競合店のリストにも同じ処理をします。
結果を大きく左右するのは、手法そのものよりも次の3つの選択です。
- 業態ごとの時間帯。 同じ通りにあるコンビニと家具店では、商圏が大きく異なります。日常の買い物には短い時間帯、たまの買い物には長い時間帯を使ってください。
- 交通状況。 今回のポリゴンは、リアルタイムの交通を含まない通常の道路速度で計算しています。夕方のラッシュ時が来店のピークになる店舗では、その時間帯の到達圏はもっと狭くなります。
- 交通手段。 都心では多くの顧客が徒歩や自転車で来店します。どちらを信頼するか決める前に、徒歩のアイソクローンと車のアイソクローンを比べてください。
1つの住所で試すなら、移動時間マップでブラウザ上に同じアイソクローンを描けます。比較用の円は半径マップで描けます。
方法と限界
- 店舗: 各都市の中心から15 km以内で
shop=supermarketとタグ付けされたOpenStreetMapのノードとウェイすべて(リヨンは287店)。そのうち8 km以内の店舗から、固定シードで20店を無作為に選びました。小規模店舗のOpenStreetMapへの登録状況は地区によって異なるため、一部の地区では競合店の数は下限値です。 - 到達圏: MapAtlas Isochrone API、costing
auto、時間帯は5分、10分、15分。2026年9月30日に出発時刻を指定せずにリクエストしました。通常の道路速度を反映しており、ラッシュ時の渋滞と駐車にかかる時間は含みません。 - 人口: GHS-POP R2023A、2025年時点、World Mollweide正積図法の100 mセル。2025年の値は国勢調査データと市街地面積からモデル化した推計値で、住民を居住地で数えています。そのため、オフィスで働く人のような昼間人口は含みません。セルの中心が範囲内に入る場合に、そのセルを数えます。
- 円: 店舗の座標を中心とした測地線上の円です。同じ面積の円は、その店舗の10分圏ポリゴンと同じ面積を持ちます。
- サンプル: 3都市60店は、誤差の大きさと方向を示すには十分ですが、他の都市に使える補正係数を出すには少なすぎます。同じ方法は、どの店舗リストでも数分で実行できます。
データのダウンロード:catchment-area-analysis-2026-09-30.csv(60店舗、1店舗1行。到達圏の面積、時間帯と円ごとの人口、競合店数を収録。店舗の位置 © OpenStreetMap contributors、ODbL。人口 GHS-POP R2023A、CC BY 4.0。派生データ CC BY 4.0 MapAtlas)。
スクリプトと生の結果は、私たちの研究アーカイブにあります:scripts/seo/blog-keyword-research/catchment-area-analysis.py と docs/blog-keyword-research/catchment-area-analysis-2026-09-30.json。
関連記事
ポリゴンの計算の仕組みはアイソクローンとはで説明しています。ハフモデルで全世帯から全店舗までを計算する場合のように、多数の出発地と目的地を一度に扱うなら距離行列を使ってください。店舗検索(ストアロケーター)の作り方では、同じデータを顧客の側から見ています。
Isochrone APIはこの記事で使った車と徒歩の到達圏ポリゴンを返し、GeoEnrich APIは任意の住所の周辺にある施設や地域の情報を追加します。
よくある質問
商圏とは何ですか?
商圏とは、店舗や支店、サービス拠点が顧客の大半を集めている地理的な範囲のことです。通常は拠点を中心に移動時間で描き、たとえば車で10分以内に住む人すべてを商圏とします。多くの場合、1次商圏、2次商圏、3次商圏に分けて考えます。企業は商圏を使って、その立地に潜在顧客が何人いるか、その顧客を何店の競合と分け合っているかを見積もります。
商圏分析はどうやって行いますか?
拠点の周りに範囲を描き、その中にあるものを数えます。最も簡単な範囲は一定半径の円です。より適しているのは、ルーティングエンジンで計算した車や徒歩の到達圏(等時間圏、アイソクローン)のポリゴンです。道路網に沿って広がるからです。次に、人口グリッドや統計区域からポリゴン内の居住人口を合計し、ポリゴン内の競合店を数えます。私たちがスーパー60店で試したときは、1店舗につきアイソクローンのリクエスト1回と、100 mの人口グリッドの合計だけで作業が終わりました。
商圏は半径と車の到達時間のどちらで描くべきですか?
顧客が道路を使って来店するなら、車の到達時間が適しています。リヨン、ミュンヘン、ミラノのスーパー60店で測定したところ、半径5 kmの円に含まれる住民は、中央値で車で10分の到達圏の1.7倍でした。また、円の人口で店舗を順位付けすると、各都市の上位5店のうち到達時間の順位と一致したのは2店か3店だけでした。半径が向いているのは、最初のおおまかな確認や、ルール自体が直線距離で決まっている場合です。
店舗の商圏には何分の到達時間を使えばよいですか?
その業態で顧客がどのくらい移動するかに合わせます。コンビニのような日常の買い物には短い時間帯、家具やホームセンターのようなたまの買い物には長い時間帯を使います。今回の調査と同じように5分、10分、15分など複数の時間帯を一度にリクエストし、実際の顧客住所やポイントカードの郵便番号があれば、それと照らし合わせてください。人口が密集した中心部の店舗では、徒歩の商圏と車の商圏を比べてください。

