DEV Community

Hajime
Hajime

Posted on

間借り出店のプランを損益分岐点で比べる:会場費と売上の取り分を式にする

飲食の間借りや一日店長のプランは、「会場費」と「売上のうち自分に入る割合」の組み合わせで性格が決まります。料金表を眺めているだけだと比較しにくいので、式に落として、数十行のコードで比べられるようにしてみました。

題材にしたのは、東京・大山のスタンドが公開している貸し切りプラン(一日店長)の料金です(2026年9月時点。税区分は問い合わせ時に案内とのことなので、以下の数字は税の扱い未確認のまま使っています)。

コミュニティスタンド咲

→ 料金体系が公開されている間借り出店のスタンド コミュニティスタンド咲

モデル化する

貸し切りプランの料金表

貸し切りプランは3スタイルあり、ドリンクの売上の扱いが違います。

スタイル 平日昼 平日夜 土日祝・金夜 昼 / 夜 ドリンク売上の取り分
staffed(スタッフ付き) 24,000 29,000 37,000 / 47,000 50%
unstaffed(スタッフなし) 15,000 18,000 23,000 / 28,000 50%
self(ドリンク持ち込み) 18,000 22,000 27,000 / 35,000 100%

1日の手残りを次のように置きます。

profit = food * (1 - foodCostRate)
       + drink * share
       - (style === 'self' ? drink * drinkCostRate : 0)
       - fee
Enter fullscreen mode Exit fullscreen mode
  • food:自分の料理・商品の売上
  • drink:ドリンクの売上
  • share:ドリンク売上の取り分(0.5 か 1.0)
  • drinkCostRate:持ち込みドリンクの原価率(self のときだけ自分で負担)
  • fee:会場費

お店のドリンクを使うスタイルでは、ドリンクの仕入れは店側なので原価を引かない、という前提にしています。ここは実際の契約内容で確認すべき仮定です。

コード

const FEES = {
  staffed:   { weekday: { day: 24000, night: 29000 }, weekend: { day: 37000, night: 47000 }, share: 0.5 },
  unstaffed: { weekday: { day: 15000, night: 18000 }, weekend: { day: 23000, night: 28000 }, share: 0.5 },
  self:      { weekday: { day: 18000, night: 22000 }, weekend: { day: 27000, night: 35000 }, share: 1.0 },
};

// 金曜の夜は土日祝料金
const dayType = (weekday, slot) =>
  weekday === 'sat' || weekday === 'sun' || weekday === 'holiday' || (weekday === 'fri' && slot === 'night')
    ? 'weekend' : 'weekday';

function profit({ style, weekday, slot, food, drink, foodCostRate = 0.35, drinkCostRate = 0.3 }) {
  const p = FEES[style];
  const fee = p[dayType(weekday, slot)][slot];
  const drinkIn = drink * p.share - (style === 'self' ? drink * drinkCostRate : 0);
  return Math.round(food * (1 - foodCostRate) + drinkIn - fee);
}

for (const style of Object.keys(FEES)) {
  console.log(style, profit({ style, weekday: 'wed', slot: 'night', food: 30000, drink: 20000 }));
}
Enter fullscreen mode Exit fullscreen mode

原価率の 0.35 と 0.3 は例として置いた値で、どこかの実績値ではありません。自分のメニューの数字に差し替えてください。

損益分岐のドリンク売上を解く

料理の売上を固定したとき、ドリンクをいくら売れば手残りが0になるかは、式を drink について解けば出ます。

function breakEvenDrink({ style, weekday, slot, food, foodCostRate = 0.35, drinkCostRate = 0.3 }) {
  const p = FEES[style];
  const fee = p[dayType(weekday, slot)][slot];
  const perYen = p.share - (style === 'self' ? drinkCostRate : 0); // ドリンク1円あたりの手残り
  return Math.max(0, Math.ceil((fee - food * (1 - foodCostRate)) / perYen));
}
Enter fullscreen mode Exit fullscreen mode

perYen が小さいほど、同じ会場費を埋めるのに必要なドリンク売上は増えます。取り分50%のスタイルでは1円売って0.5円、持ち込みで原価率30%なら0.7円が手元に残る計算なので、ドリンク中心の営業なら持ち込みのほうが分岐点は下がりやすい、ということが式からも読めます。

表計算でやる場合

スプレッドシートなら、スタイルを行、曜日と時間帯を列にした会場費の表を作り、VLOOKUP などで引いてから同じ式を当てるだけです。金曜の夜を週末扱いにする判定だけは忘れやすいので、別の列で明示しておくと事故が減ります。

前提として押さえておくこと

  • スタッフなしのスタイルは審査制で、スタッフ付きでの利用実績が必要(初回は選べない)
  • 料理など自分の商品の売上がどう扱われるかは、ページからは読み切れないので契約時に確認
  • 掲載の料金は予告なしに改定されることがある

条件を変えて何パターンか回してみると、「どのスタイルなら何を売ればいいか」がはっきりします。表を眺めて悩むより、数字を入れて比べるほうが早い、というのが今回の結論です。

本ページはプロモーションが含まれています

Top comments (0)