MRP 計算ロジック / MRP Calculation Logic
BOM 展開から所要量計算、ロットサイズ決定、リードタイム・オフセットまでの標準 MRP ロジック。 受注生産 (Make-to-Order) の中小製造業を前提とする。
→ DDD 対応:
ddd/03-aggregates/quotation-order.md,ddd/05-business-rules.md
1. MRP の位置づけ
S&OP (経営計画)
↓
MPS (基準生産計画 / Master Production Schedule)
↓
MRP (資材所要量計画 / Material Requirements Planning)
↓
CRP (能力所要量計画) / 購買発注 / 製作指示
MRP は「何を・いくつ・いつまでに」必要かを、BOM とリードタイムから逆算する仕組み。
2. BOM 展開 (Bill of Materials Explosion)
構造
製品 A (レベル 0)
├── 部品 B ×2 (レベル 1)
│ ├── 材料 D ×3 (レベル 2)
│ └── 材料 E ×1 (レベル 2)
└── 部品 C ×1 (レベル 1)
└── 材料 D ×2 (レベル 2)
ローレベルコード (Low-Level Code)
同じ品目が BOM の複数階層に出現する場合、最も深い階層の番号をその品目のローレベルコードとする。MRP はローレベルコード 0 → 1 → 2 ... の順に処理し、上位の所要量が確定してから下位を計算する。
展開計算
品目 D の総所要量 = (B の所要量 × 3) + (C の所要量 × 2)
= (2 × 3) + (1 × 2)
= 8 個
3. 所要量計算 (Net Requirements Calculation)
基本式
正味所要量 = 総所要量 - 手持在庫 - 発注残 (入庫予定) + 安全在庫
| 用語 | 英語 | 説明 |
|---|---|---|
| 総所要量 | Gross Requirements | BOM 展開で算出された必要数量 |
| 手持在庫 | On-Hand Inventory | 現在の倉庫在庫 |
| 発注残 | Scheduled Receipts | 既に発注済みで未入荷の数量 |
| 安全在庫 | Safety Stock | 需要変動・供給遅延への緩衝在庫 |
| 正味所要量 | Net Requirements | 実際に手配が必要な数量 |
計算例
| 項目 | 数量 |
|---|---|
| 総所要量 | 100 |
| 手持在庫 | 30 |
| 発注残 | 20 |
| 安全在庫 | 10 |
| 正味所要量 | 100 - 30 - 20 + 10 = 60 |
受注生産 (MTO) の場合
- 手持在庫・安全在庫はほぼゼロ (在庫を持たない方針)
- 総所要量 ≒ 正味所要量 になることが多い
- 受注確定後に即 BOM 展開 → 手配という流れ
4. ロットサイズ決定 (Lot Sizing)
| 方式 | 英語 | 説明 | 適用場面 |
|---|---|---|---|
| ロット・フォー・ロット | Lot-for-Lot (L4L) | 正味所要量 = 発注量。在庫を持たない | 受注生産の標準 |
| 固定ロット | Fixed Order Quantity | 常に一定数を発注 | 標準品の購入品 |
| EOQ | Economic Order Qty | 発注費と保管費の最小化 | 汎用材料の定期発注 |
| 期間まとめ | Period Order Quantity | N 期間分をまとめて発注 | 段取り替えコストが高い場合 |
EOQ 公式
EOQ = √(2DS / H)
D = 年間需要量
S = 1回の発注費用
H = 1個あたり年間保管費用
受注生産での推奨
中小受注生産ではほぼ L4L (ロット・フォー・ロット) を採用:
- 在庫リスクを最小化
- 各受注に対して必要量だけ手配
- 余剰在庫の管理コストを回避
5. リードタイム・オフセット (Lead Time Offsetting)
概念
納期から逆算 (バックワード・スケジューリング) して、各工程の開始日を決定する。
納期 (受注の NOUKI)
← 検収リードタイム (1日)
← 組立リードタイム (3日)
← 部品入荷待ち
← 外注リードタイム (14日) ← 発注日を決定
← 内製リードタイム (5日) ← 製作指示日を決定
← 材料入荷待ち
← 材料調達リードタイム (7日) ← 材料発注日を決定
リードタイムの構成要素
| 要素 | 英語 | 説明 |
|---|---|---|
| 段取り時間 | Setup Time | 機械の切り替え時間 |
| 加工時間 | Processing Time | 実際の作業時間 |
| 待ち時間 | Queue Time | 前工程完了待ち |
| 移動時間 | Move Time | 工程間の物理的移動 |
| 検査時間 | Inspection Time | 品質チェック |
製造リードタイム = 段取り + (加工 × 数量) + 待ち + 移動 + 検査
6. MRP の入力と出力
入力 (Inputs)
| 入力 | 説明 | 我々のシステムでは |
|---|---|---|
| MPS (基準生産計画) | 何を・いつ作るか | T_ORDER (受注) の納期 |
| BOM (部品表) | 製品構成と所要量 | M_PARTS_HED / M_PARTS_BDY |
| 在庫レコード | 手持在庫・発注残 | T_UKEIRE (受入実績) |
| リードタイム | 各品目の調達・製造期間 | マスタ設定 |
出力 (Outputs)
| 出力 | 説明 | 我々のシステムでは |
|---|---|---|
| 計画オーダー | 手配すべき品目・数量・時期 | T_TEHAI (手配) の自動生成 |
| 製作指示 | 内製品目の作業指示 | T_SSIJI (製作指示) の自動生成 |
| リスケジュール通知 | 納期変更が必要な場合の警告 | — (将来実装) |
7. MRP の限界と対策
| 限界 | 説明 | 対策 |
|---|---|---|
| 無限能力前提 | MRP は設備能力を考慮しない | CRP (能力所要量計画) で別途検証 |
| リードタイム固定 | 負荷に応じた変動を無視 | 余裕を持たせるか、有限能力スケジューリング |
| データ精度依存 | BOM・在庫が不正確だと結果も不正確 | マスタ管理の徹底、棚卸の定期実施 |
| 需要変動に弱い | 計画変更時の再計算コストが大きい | 受注生産なら影響は限定的 |
8. 受注生産 (MTO) での MRP 簡略化
中小製造業の受注生産では、MRP の以下の要素を簡略化できる:
| 標準 MRP | MTO 簡略版 | 理由 |
|---|---|---|
| 需要予測 | 不要 | 受注確定が起点 |
| 安全在庫 | ほぼゼロ | 在庫を持たない方針 |
| 複雑なロットサイズ | L4L 固定 | 受注量 = 手配量 |
| MPS 作成 | 受注 = MPS | 受注そのものが生産計画 |
| 再計画 (Regeneration) | 差分計算で十分 | 受注単位で独立 |
我々のシステムでの実装方針: 受注登録 → BOM 展開 → 手配/製作指示の自動生成 (L4L) → リードタイム逆算で開始日設定