予測モデルの公開
東京の行列は
いつ混むのか
ジャンル別・時間帯別の待ち時間の目安 / 行列予測アプリ「ナラブ」が実際に使っている係数を、そのまま公開します
「昼のピークを外せば空いている」——これはラーメンには当てはまりますが、スイーツには真逆に当てはまります。ラーメン店が最も空く15時は、スイーツの店が最も混む時間です。
13時前後で2本の線が交差します。ここを境に、狙うべきジャンルが入れ替わります。
これは私たちが行列予測アプリ「ナラブ」を作る過程で、最初に修正することになった思い込みでした。当初は全ジャンル共通で「14〜16時は空いている」という係数を使っていましたが、スイーツとカフェについてはこれが実態と正反対だったのです。
このページでは、ナラブが実際に使っている混雑モデルを、係数の数字まで含めて公開します。アプリを入れなくても、この表を見るだけで「いつ行けば並ばずに済むか」の目安は分かるはずです。
ジャンル別・時間帯別の待ち時間
ナラブが「そのジャンルの標準的な人気店」に対して出す予測値です。赤に近いほど混雑、緑に近いほど空いています。
平日
単位:分
| ジャンル | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
|---|---|---|---|---|---|---|---|---|---|---|
| ラーメン | 38 | 40 | 35 | 15 | 12 | 15 | 22 | 32 | 32 | 28 |
| スイーツ | 33 | 39 | 42 | 48 | 48 | 42 | 30 | 21 | 18 | 15 |
| カフェ | 16 | 20 | 21 | 22 | 24 | 21 | 16 | 14 | 12 | 9 |
| 和食・定食 | 22 | 24 | 21 | 8 | 8 | 9 | 14 | 21 | 21 | 18 |
| ベーカリー | 13 | 16 | 17 | 19 | 19 | 17 | 12 | 8 | 7 | 6 |
| バー・居酒屋 | 6 | 7 | 6 | 5 | 5 | 6 | 8 | 11 | 13 | 15 |
土日・祝日
単位:分
| ジャンル | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
|---|---|---|---|---|---|---|---|---|---|---|
| ラーメン | 45 | 48 | 42 | 18 | 15 | 18 | 27 | 39 | 39 | 33 |
| スイーツ | 50 | 58 | 63 | 72 | 72 | 63 | 45 | 32 | 27 | 22 |
| カフェ | 25 | 29 | 32 | 34 | 36 | 32 | 25 | 20 | 18 | 14 |
| 和食・定食 | 34 | 36 | 32 | 11 | 11 | 14 | 20 | 32 | 32 | 27 |
| ベーカリー | 18 | 22 | 24 | 27 | 27 | 24 | 17 | 12 | 10 | 8 |
| バー・居酒屋 | 8 | 10 | 8 | 7 | 7 | 8 | 11 | 15 | 18 | 21 |
数値はモデルが出す目安です。個々の店の規模・回転率・話題性によって、実際の待ち時間は大きく変わります。
この表から読み取れる、実用的な結論
ラーメンと和食は14〜15時が明確な谷です。12時に40分並ぶ店が、15時なら12分。3時間ずらすだけで待ち時間は3分の1以下になります。
逆にスイーツ・カフェ・ベーカリーは14〜15時がピークで、狙い目は夕方以降。19〜20時なら休日でもピークの4割以下まで下がります。甘いものには「昼を外す」という常識が通用しません。
休日の倍率は、ジャンルで違う
「土日は混む」は正しいのですが、混み方の倍率はジャンルによってはっきり違います。ナラブが使っている休日係数はこうです。
| ジャンル | 休日の倍率 | 理由 |
|---|---|---|
| ラーメン | 1.2倍 | 平日ランチが本番。土日との差が最も小さい |
| スイーツ | 1.5倍 | 休日に目的地として来店されるため跳ね上がる |
| カフェ | 1.5倍 | 同上。滞在時間が長く回転が遅いことも効く |
| 和食・定食 | 1.5倍 | 平日は近隣のビジネス客、休日は遠方からの来店 |
| その他 | 1.4倍 | 上記に当てはまらないジャンルの既定値 |
ラーメンだけが1.2倍と低いのは、そもそも平日の昼が最大の山だからです。「土日を避ければラーメンの行列が短くなる」という期待は、他ジャンルほどは報われません。
国民の祝日はさらに1.3倍、3連休以上の中日は1.4倍を掛けます。連休の初日と最終日は移動に使われる一方、中日は外食が最大化するためです。
雨の日は、本当に空くのか
空きます。ただし「雨なら空く」と一括りにはできません。ナラブは雨量で二段階に分けています。
傘を差せば行ける程度では、行列は大きくは崩れない
狙い目はここ
10〜16時の昼のみ。夜は戻る
屋外で並ばせる店ほど影響が大きい
猛暑の係数を昼だけにしているのには理由があります。暑さで昼の外出が減っても、日が落ちた夜の行列はほぼ元に戻るからです。一日を通して同じ係数を掛けると、夜の予測が実態より短く出てしまいます。
いちばん空く条件の組み合わせ
強い雨の平日15時、ラーメン。基準25分 × 時間帯0.5 × 雨0.7 = およそ9分。同じ店が同じ週のうちに、40分と9分の両方になり得ます。
なぜ大規模言語モデルを使わないのか
ナラブの予測は、ここまで見てきたとおり掛け算と中央値だけでできています。AIと名乗ってはいますが、大規模言語モデルは一切使っていません。理由は三つあります。
検証できるから。掛け算なら単体テストが書けます。「15時のラーメンが12分」という出力は、いつ何度実行しても12分です。言語モデルに数字を出させると、同じ入力で違う答えが返ってきます。待ち時間のように毎回同じであるべき数字を、揺れる仕組みで出すべきではありません。
説明できるから。表示された数字がなぜその値なのか、係数を辿れば必ず説明できます。予測が外れたとき、どの係数が悪かったのかを特定して直せます。
費用がかからないから。個人が運営するアプリで、1件の予測ごとにAPI料金が発生する設計は続きません。無料で使えるアプリであり続けるための、現実的な選択でもあります。
この目安と、実際の待ち時間のあいだ
ここまでの表は「そのジャンルの標準的な人気店」の値です。実際の店には、この目安から大きく外れるものがあります。行列が名物になっている店では、休日のピークに3時間待ちになることもあります。
だからナラブは、実際に並んだ人の報告を集めています。報告が集まった店については、直近の報告の中央値を予測の軸に切り替えます。そして報告が何件集まっているかに応じて、予測の信頼度を画面に表示します。報告ゼロの店では、上の表と同じ計算で出した「AI予測(参考)」であることを隠さずに表示します。
予測が出せない店を空欄にすれば、アプリは間違えないように見えます。でも、それでは使う人の役に立ちません。予測は出す。そのかわり、どれくらい確からしいかを必ず一緒に出す。それがこのアプリの設計方針です。