# フェーズ別ROI 詳細仕様書

## 1. 問題定義

### 1.1 現行ロジックの構造問題

| 観点 | 現状 | 問題 |
|---|---|---|
| 分子 | 単月営業利益 | 月次ブレ、単月利回り表示 |
| 分母 | 初期投資額 | 小投資店で極端値 |
| 集計 | 全店ROI単純和 | 41,972,376.8% の発生源 |
| 時間軸 | 概念なし | 新旧店舗を同一指標で比較 |

### 1.2 改修ゴール

- ROIが意思決定に使える数値になる（極端値抑制）
- 店舗ライフサイクルに合った指標を自動提示
- 会社画面で正しい加重平均ROIを表示
- 顧客ごとに業態/フェーズ設定をカスタマイズ可能

---

## 2. フェーズモデル仕様

### 2.1 デフォルト4段階

| # | フェーズ | 判定条件 | 主表示ROI | 色 |
|---|---|---|---|---|
| 1 | 立上期 Launch | オープンから `L_months` ヶ月未満 | 回収進捗率(キャップ100%) | 青 |
| 2 | 回収期 Recovery | 累計利益 < 初期投資 かつ 立上期終了 | 回収進捗率(キャップ100%) | 黄 |
| 3 | 安定期 Stable | 回収完了〜目標回収期間×`B_ratio` | 年率ROI | 緑 |
| 4 | 成熟期 Mature | 目標回収期間×`B_ratio` 超過 | 年率ROI + 3年トレンド | 紫 |

### 2.2 カスタマイズ可能項目

| 項目 | スコープ | デフォルト | 範囲 |
|---|---|---|---|
| フェーズ段数 | 会社 | 4 | 2〜6 |
| 立上期月数 `L_months` | 会社/店舗 | 3 | 0〜12 |
| 境界倍率 `B_ratio` | 会社/店舗 | 1.5 | 1.0〜3.0 |
| 目標回収期間 | 店舗 | 36 | 6〜120 |
| 各フェーズ閾値 | 会社 | 上記ロジック | 自由編集 |
| 各フェーズ色 | 会社 | 青/黄/緑/紫 | 任意 |

### 2.3 フェーズ数を変える場合の挙動

- **2段階**: 回収期 / 回収完了期
- **3段階**: 立上期 / 回収期 / 成熟期
- **4段階**: 立上期 / 回収期 / 安定期 / 成熟期（デフォルト）
- **5段階**: 立上期 / 急成長期 / 回収期 / 安定期 / 成熟期
- **6段階**: 5段階 + 衰退期（前年対比で利益減）

---

## 3. 売上予測方式（手動選択）

### 3.1 方式

| 方式 | 計算式 | 用途 |
|---|---|---|
| ① 実績ベース | `AVG(直近3ヶ月営業利益)` or `AVG(直近6ヶ月営業利益)` | 実績あり |
| ② 業界ベンチマーク | `坪数 × 業態坪月商 × 30 × 営業利益率` | 新規店 |
| ③ 予算ベース | `月次予算営業利益` | 予算登録済 |

### 3.2 店舗設定

店舗マスタに「ROI算出方式」ドロップダウンを追加。デフォルト=①実績ベース。

---

## 4. 業態ベンチマーク

### 4.1 デフォルト業態（初期提供）

| 業態コード | 業態名 | 坪月商(万円/坪/月) | 営業利益率 |
|---|---|---|---|
| IZAKAYA | 居酒屋 | 15 | 10% |
| DINING | ダイニング | 17.5 | 12% |
| CAFE | カフェ | 12 | 8% |
| RAMEN | ラーメン | 22 | 15% |
| YAKINIKU | 焼肉 | 20 | 14% |
| BAR | バー | 10 | 20% |
| WASHOKU | 和食 | 18 | 12% |

### 4.2 カスタム業態登録

顧客ごとに:
- 業態コード（英数字）
- 業態名
- 坪月商(万円)
- 営業利益率(%)
- 目安回収期間(月)

を自由に登録/編集/削除可能。

### 4.3 店舗と業態の紐付け

店舗マスタに「業態」セレクトを追加。業態未選択店舗はROI算出方式で②を選択できない。

---

## 5. 計算ロジック詳細

### 5.1 投資回収期間（計画値）

```
投資回収期間(月) = 初期投資額 ÷ 月次予測営業利益
```

`月次予測営業利益` は 3.1 の方式から算出。

### 5.2 投資回収期間（実績/予測）

```
回収進捗率(%)   = 累計営業利益(オープン〜現在月) ÷ 初期投資額 × 100
残回収月数      = MAX(0, (初期投資額 − 累計営業利益) ÷ 直近3ヶ月平均営業利益)
実績回収月数    = 累計営業利益が初期投資額に達した月 − オープン月
```

### 5.3 フェーズ別主ROI

| フェーズ | 主ROI計算 |
|---|---|
| 立上期 | `MIN(100, 回収進捗率)` |
| 回収期 | `MIN(100, 回収進捗率)` |
| 安定期 | `直近12ヶ月営業利益 ÷ 初期投資額 × 100` |
| 成熟期 | `直近12ヶ月営業利益 ÷ 初期投資額 × 100` |

### 5.4 会社ROI（加重平均）

```
会社ROI = Σ(各店直近12ヶ月営業利益) ÷ Σ(各店初期投資額) × 100
```

フェーズ別内訳:
```
各フェーズROI = Σ(該当フェーズ店直近12ヶ月営業利益) ÷ Σ(該当フェーズ店初期投資額) × 100
```

### 5.5 坪月商判定（副次機能）

```
if 坪月商 < 業態坪月商 × 0.8   → 🔴 要改善
if 業態坪月商 × 0.8 〜 1.2    → 🟡 標準
if 坪月商 > 業態坪月商 × 1.2   → 🟢 好調
```

---

## 6. データ要件

### 6.1 既存データ（ラクミー保有）

- 初期投資額（店舗設定）
- オープン日（店舗マスタ）
- 実績売上/営業利益（POS連携）
- 固定費/変動費（費用設定）
- 坪数（店舗マスタ）
- 月次予算（予算機能）

### 6.2 新規追加が必要な項目

- 店舗マスタ: 業態コード、ROI算出方式、目標回収期間(月)、カスタム境界倍率
- 会社設定: フェーズ段数、フェーズ定義、デフォルト境界倍率、立上期月数
- 業態マスタ: 業態コード、業態名、坪月商、営業利益率、目安回収期間

---

## 7. 画面構成

### 7.1 店舗ダッシュボード（変更箇所）

**変更前**
```
ROI: 19.0%
```

**変更後**
```
[🟢 安定期]  年率ROI 38.5%
             回収倍率 1.2倍  回収完了から 8ヶ月経過
```

### 7.2 会社ダッシュボード（変更箇所）

**変更前**
```
ROI: 41,972,376.8%
```

**変更後**
```
全社年率ROI 28.3%（加重平均）
フェーズ内訳: 🔵立上期 2店 / 🟡回収期 5店 / 🟢安定期 8店 / 🟣成熟期 3店
フェーズ別ROI: 立上期 -/ 回収期 45% / 安定期 32% / 成熟期 18%
```

### 7.3 設定画面（新規）

- フェーズモデル設定タブ
- 業態マスタタブ
- 店舗別設定タブ

---

## 8. 移行手順（開発工程の参考）

1. マスタ拡張（業態/フェーズ/店舗項目）
2. 計算ロジック実装（バックエンド）
3. 設定画面実装
4. 店舗ダッシュボード改修
5. 会社ダッシュボード改修
6. 既存データ移行（デフォルト値投入）
7. UAT

---

## 9. 既知のリスク/論点

- オープン日が未入力店舗の扱い → デフォルト1年前扱い？要議論
- 閉店予定店舗のフェーズ扱い → 衰退期/閉店済ステータス要検討
- 業態マスタの初期値を顧客に押し付けると反発あり得る → オンボーディング時に選択式で
