バック業務効率化

AIで予約データから繁閑カレンダーを自動生成する方法

AIで予約データから繁閑カレンダーを自動生成する方法

この記事の要点

旅館の予約データをAIに読み込ませると、繁閑カレンダーの作成が手作業の数時間から30分以内に短縮できる。仕入れ・シフト・清掃計画との連動まで、実践的な手順を解説する。

結論:予約CSVをAIに渡すだけで、繁閑の可視化は今日から始められる

旅館の繁閑カレンダーは、多くの施設で「担当者の感覚と経験」で作られている。OTAの管理画面を見ながら手書きで書き込み、月に1度エクセルを更新する——そういう運用を変えるのに、特別なシステムは不要だ。

過去2年分の予約CSVをAIに読み込ませると、曜日別・月別の稼働率分布、連休前後の予約集中パターン、前年比の増減傾向まで30分以内に整理できる。この記事では、CSVの取り出し方から、AIへの渡し方、生成したカレンダーの業務活用まで、実際に動く手順を解説する。


なぜ手作業の繁閑管理では限界があるのか

繁閑カレンダーの精度が低いまま放置されると、被害が三方向に広がる。

仕入れが需要と合わない。閑散期に食材を過剰発注して廃棄が増え、繁忙期に足りずに追加調達で割高になる。食材ロスをAI需要予測で減らす実践ステップで詳しく触れているが、廃棄コストは月間売上の2〜3%に達する施設も珍しくない。

シフトが実態と乖離する。繁忙期に人手が足りてフロントが回らない一方、閑散期に出勤者が余るという非効率が繰り返される。AIで勤怠データから残業の偏りを見つけるでも取り上げたが、偏ったシフトは離職の一因にもなる。

販売機会を逃す。稼働率が高い週末に料金を上げるダイナミックプライシングも、繁閑の把握なしには機能しない。

これらの問題の根本は「過去データが整理されていない」ことにある。OTAの管理画面にデータは存在するのに、それを体系的に使えていないだけだ。


予約データの取り出し方:OTAごとの手順

まず手元にデータを集める。主要OTAごとのCSV取得方法は以下の通りだ。

OTA取得場所ファイル形式含まれる主な項目
楽天トラベル予約管理 → 予約一覧 → CSV出力CSVチェックイン日、泊数、人数、プラン名、売上金額
じゃらん予約管理 → 予約レポート → ダウンロードCSVチェックイン日、部屋タイプ、人数、経路
一休.com予約管理 → 予約データDLCSV/Excelチェックイン日、プラン、売上、キャンセル有無
自社サイト(予約エンジン)管理画面 → 予約データCSVまたはAPI直予約の全項目(エンジンによる)

複数OTAを使っている場合、各CSVを一つのGoogleスプレッドシートに縦積みで貼り付けて統合する。列名が違う場合は手動で統一する。最低限必要な列は「チェックイン日」「チェックアウト日」「室数(または人数)」の3つだ。

取得期間は2年分が理想だが、1年でもパターンの把握には使える。データが多いほどAIの分析精度は上がる。


AIに渡すデータの前処理:5分でできる整形

AIに渡す前に、スプレッドシートで3点だけ確認する。

1. 日付フォーマットの統一 楽天とじゃらんで「2025/08/13」「2025-08-13」など形式が混在することがある。スプレッドシートの置換機能でスラッシュをハイフンに統一する。

2. キャンセルデータの除外 キャンセル扱いの行が含まれていると稼働率が下がって見える。「キャンセル」「cancel」を含む行をフィルタリングして削除する。

3. 集計列の追加 チェックイン日から「月」「曜日」「週番号」の列をIF・WEEKDAY・WEEKNUM関数で追加しておくと、AIが集計しやすくなる。

この3ステップで整形したCSVをコピーして、AIへの質問と一緒に貼り付ける。1,000行程度なら問題なくペーストできる。それ以上の場合はサンプルとして直近6ヶ月分に絞る。


AIへの指示の出し方:コピーして使えるプロンプト

以下のプロンプトをそのまま使える。CSVデータの後に貼り付けること。

以下は旅館の予約データです(チェックイン日、部屋数、OTA名)。
このデータをもとに次の分析をしてください。

1. 月別の予約室数合計と前年比(表形式)
2. 曜日別の平均予約室数(月〜日の7行)
3. 最も予約が集中する連続3日間(TOP5)
4. 閑散期と繁忙期の境目となる稼働率の閾値(室数ベース)
5. 来年同時期の予測稼働率(過去2年のトレンドから)

[CSVデータをここに貼り付け]

ChatGPT(GPT-4o)またはClaude Sonnetのどちらでも動作する。Claudeは表形式の出力が整いやすく、長い会話の中でデータを保持しながら追加質問ができるため、複数回やりとりする場合に使いやすい。

AIからの返答には月別集計表と曜日別ヒートマップが含まれる。これをそのままGoogleスプレッドシートに貼り付け、条件付き書式で色分けすれば繁閑カレンダーの完成だ。


生成されたカレンダーをどう読むか:3つの注目ポイント

AIが出力した集計結果を見るとき、以下の3点を確認する。

予約速度の前年比 同じ8月でも、今年は2ヶ月前時点での予約数が昨年より多ければ単価を上げられる余地がある。逆に遅れていれば早期割引で埋めるアクションが必要だ。

曜日ごとの波 木曜チェックイン・日曜チェックアウトが多い施設もあれば、週末2泊が主流の施設もある。パターンが分かれば、閑散曜日に連泊割引や日帰りプランを設定するロジックが立てやすい。

連休の取りこぼし AIが「予約集中TOP5」として出した日程の前後1週間を確認する。連休直前に空室が残っていれば、直前割引を設定するタイミングの目安になる。


繁閑カレンダーを業務計画に連動させる手順

繁閑の可視化で終わらせず、実際の業務計画に数値を流し込む。

仕入れ計画への活用

月別予測稼働率が出たら、食材仕入れの基準数量をその比率で増減させる。たとえば通常月の稼働率50%に対して翌月が70%予測なら、仕入れ基準を1.4倍に設定する。AIで仕入れ・発注の最適量を予測する基礎では、この係数設定をさらに精緻化する方法を解説している。

シフト作成への活用

月別・週別の稼働予測をシフト作成の入力情報として使う。繁忙週は早めにパート・アルバイトを確保し、閑散週は有給消化や研修を入れる計画が立てやすくなる。シフト担当者に「来月第3週は稼働率75%見込み、フロント2名体制が必要」と具体的な数字を共有できる点が重要だ。

清掃スタッフの配置計画

客室稼働が高い日は清掃人員も増やす必要がある。繁閑カレンダーを清掃会社との月次打ち合わせ資料として活用することで、直前の急な人員要請を減らせる。客室清掃の品質チェックをAI写真判定で標準化で触れている品質管理とも組み合わせると、繁忙期の品質低下を防ぎやすい。

リネン在庫管理

稼働率予測があれば、タオル・浴衣・シーツの使用枚数を週単位で試算できる。AIでリネン在庫を自動で発注点管理する方法では在庫の発注点自動化を取り上げているが、繁閑カレンダーはその入力データとして直接使える。


Pythonで自動化する:月1回のルーティンをゼロにする

エクセルへの手貼りすら省きたい場合、以下のPythonスクリプトを月1回実行するだけで繁閑カレンダーを自動生成できる。プログラミングが得意でなくても、スクリプトをそのままAIに貼り付けて「このコードを動かすにはどうすればいいか」と聞けば導入手順を教えてもらえる。

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.colors as mcolors
import japanize_matplotlib

# CSVを読み込む(ファイル名は適宜変更)
df = pd.read_csv("reservations.csv", encoding="utf-8-sig", parse_dates=["checkin_date"])

# 月・曜日を追加
df["month"] = df["checkin_date"].dt.month
df["weekday"] = df["checkin_date"].dt.day_name()

# 月別集計
monthly = df.groupby("month")["rooms"].sum().reset_index()
monthly.columns = ["月", "予約室数"]

# 曜日別集計
weekday_order = ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]
weekday_jp = {"Monday":"月","Tuesday":"火","Wednesday":"水","Thursday":"木",
              "Friday":"金","Saturday":"土","Sunday":"日"}
weekly = df.groupby("weekday")["rooms"].mean().reindex(weekday_order).reset_index()
weekly["曜日"] = weekly["weekday"].map(weekday_jp)

# 月別棒グラフ出力
plt.figure(figsize=(10, 4))
plt.bar(monthly["月"], monthly["予約室数"], color="steelblue")
plt.title("月別予約室数")
plt.xlabel("月")
plt.ylabel("予約室数")
plt.tight_layout()
plt.savefig("monthly_calendar.png", dpi=150)
plt.close()

print("完了:monthly_calendar.png を確認してください")

CSVの列名(checkin_daterooms)は自施設のデータに合わせて変更する。出力された棒グラフをそのまま月次報告資料に貼り付けられる。


精度を上げるための補完データ:祭事・イベント情報の活用

AIによる予測が外れやすいのは、過去に前例のないイベントが絡む時期だ。地域の花火大会・マラソン・温泉フォーラムなど、施設周辺で集客力のあるイベント情報をAIに追加で伝えると精度が上がる。

上記の予測に加えて、以下のイベントを考慮した修正予測を作ってください。
- 8月15日:地域の花火大会(例年1万人動員)
- 11月3日連休:紅葉シーズンのピーク(昨年比1.2倍の実績)
- 3月:卒業旅行需要(20〜30代女性グループが増加傾向)

こうした定性情報を添えることで、AIは過去のデータパターンに加味して予測値を調整する。あくまで補助的な補正であり、最終的な判断は人が行う前提で使うこと。


運用の落とし穴:やりがちな3つのミス

データを一度だけ作って放置する 繁閑カレンダーは静的な資料ではなく、予約が入るたびに実績が更新される。月に1回、前月の実績を加えて再生成するルーティンを作らないと、3ヶ月後には使い物にならなくなる。

全期間を均等に扱う 直近6ヶ月のデータは行動変容を反映しているが、2年前のデータは感染症の影響が残っている可能性がある。直近ほど重みを置くよう、AIへの指示に「直近1年のデータを優先して分析してほしい」と加える。

AIの数字をそのまま採用する AIが「来年8月の稼働率は82%」と出しても、それは確率的な推計にすぎない。フロントや営業担当者が持つ定性情報(「今年から競合が1軒減った」「OTAが新施策を導入した」)と組み合わせて最終判断するのが正しい使い方だ。予測は判断の補助であり、判断そのものではない。


月次決算・経営指標との連動

繁閑カレンダーで稼働率の予測精度が上がると、月次の予算と実績のずれも小さくなる。旅館の経理をAIで月次決算を1週間早める方法で解説している月次決算の早期化とも相性が良い。稼働率予測→売上予測→費用計画→月次着地見込み、という一連の流れをAIでつなぐことで、経営の意思決定が数週間単位から週単位に速くなる。


FAQ

Q. 予約データが少ない小規模旅館でもAIで繁閑カレンダーを作れますか? 過去1〜2年分のデータがあれば傾向は十分読み取れます。データが少ない場合は、地域の祭事カレンダーや連休情報を補完データとして与えると精度が上がります。

Q. 繁閑カレンダーの自動生成にはどんなツールを使いますか? ExcelやGoogleスプレッドシートにCSVをインポートしてClaude・ChatGPTに貼り付けるだけで分析できます。本格的に使うならPythonのpandasとmatplotlibで可視化まで自動化できます。

Q. 繁閑カレンダーを仕入れ計画と連動させるには? 繁閑カレンダーで稼働率を週・月単位で予測し、その数値を仕入れ担当が参照する形が現実的です。さらにAIに仕入れ量の試算もさせると人の判断を補助できます。

Q. AIが生成した繁閑予測は実際の予約とどれくらいずれますか? 過去データのパターンが安定している時期(お盆・年末年始・大型連休)は誤差5〜10%以内に収まることが多いです。台風や感染症など外部要因は反映できないため、直近の予約速度と合わせて人が補正する運用が現実的です。


まとめ

予約CSVをAIに渡して繁閑カレンダーを作る工程は、データの整形から分析結果の出力まで30分以内に収まる。毎月1時間以上かかっていた手作業と比べると、担当者の負担は大幅に減る。

重要なのは、生成したカレンダーを仕入れ・シフト・清掃・リネン在庫の各担当者と共有する仕組みを作ることだ。データは持っているだけでは価値を生まない。月1回の更新と共有をルーティン化することが、AIを業務に定着させる唯一の方法だ。

#繁閑カレンダー#予約データ#AI活用#旅館バック業務#需要予測#シフト管理

よくある質問

予約データが少ない小規模旅館でもAIで繁閑カレンダーを作れますか?

過去1〜2年分のデータがあれば傾向は十分読み取れます。データが少ない場合は、地域の祭事カレンダーや連休情報を補完データとして与えると精度が上がります。

繁閑カレンダーの自動生成にはどんなツールを使いますか?

ExcelやGoogleスプレッドシートにCSVをインポートしてClaude・ChatGPTに貼り付けるだけで分析できます。本格的に使うならPythonのpandasとmatplotlibで可視化まで自動化できます。

繁閑カレンダーを仕入れ計画と連動させるには?

繁閑カレンダーで稼働率を週・月単位で予測し、その数値を仕入れ担当が参照する形が現実的です。さらにAIに仕入れ量の試算もさせると人の判断を補助できます。

AIが生成した繁閑予測は実際の予約とどれくらいずれますか?

過去データのパターンが安定している時期(お盆・年末年始・大型連休)は誤差5〜10%以内に収まることが多いです。台風や感染症など外部要因は反映できないため、直近の予約速度と合わせて人が補正する運用が現実的です。