ビジネスKPI連動評価
「MAPEが改善しました、だけでは経営会議では通じない。」
田中VPoEが経営ダッシュボードを指す。
「在庫回転率は上がったか?欠品率は下がったか?廃棄コストは減ったか?ビジネスKPIで語れないと、このプロジェクトの価値を証明できない。」
ML指標とビジネスKPIの対応
| ML指標 | ビジネスKPI | 関係 |
|---|---|---|
| MAPE | 在庫回転率 | 予測精度↑ → 適正在庫 → 回転率↑ |
| 過小予測率 | 欠品率 | 過小予測↓ → 欠品↓ |
| 過大予測率 | 廃棄率 | 過大予測↓ → 過剰在庫↓ → 廃棄↓ |
| 予測安定性 | 発注頻度 | 安定した予測 → 計画的発注 |
主要ビジネスKPI
1. 在庫回転率
def inventory_turnover(annual_sales, average_inventory):
"""在庫回転率 = 年間売上 / 平均在庫"""
return annual_sales / average_inventory
# 目標: 食品12回→15回、家電6回→8回
current = inventory_turnover(600_000_000, 50_000_000) # 12回
target = inventory_turnover(600_000_000, 40_000_000) # 15回
print(f"現在: {current:.0f}回 → 目標: {target:.0f}回")
print(f"在庫削減額: {50_000_000 - 40_000_000:,}円")
2. 欠品率
def stockout_rate(stockout_days, total_days):
"""欠品率 = 欠品日数 / 全営業日数"""
return stockout_days / total_days * 100
# 目標: 8% → 3%
before = stockout_rate(24, 300) # 8%
after = stockout_rate(9, 300) # 3%
opportunity_cost = (24 - 9) * 500_000 # 1日あたり50万円の機会損失
print(f"欠品率: {before:.0f}% → {after:.0f}%")
print(f"機会損失削減: {opportunity_cost:,}円/年")
3. 廃棄率
def waste_rate(wasted_units, total_units):
"""廃棄率 = 廃棄数量 / 総仕入数量"""
return wasted_units / total_units * 100
# 目標: 5% → 2%
before_waste = waste_rate(5000, 100000) # 5%
after_waste = waste_rate(2000, 100000) # 2%
waste_cost_savings = (5000 - 2000) * 200 # 1個200円の原価
print(f"廃棄率: {before_waste:.0f}% → {after_waste:.0f}%")
print(f"廃棄コスト削減: {waste_cost_savings:,}円/年")
KPIダッシュボード設計
def generate_kpi_dashboard(actual_data, predictions, inventory_data):
"""ビジネスKPIダッシュボードを生成"""
dashboard = {
'period': '2017年8月',
'ml_metrics': calculate_metrics(actual_data['sales'], predictions),
'business_kpis': {
'在庫回転率': {
'current': 13.2,
'target': 15.0,
'previous': 12.0,
'status': '改善中',
},
'欠品率': {
'current': 4.5,
'target': 3.0,
'previous': 8.0,
'unit': '%',
'status': '大幅改善',
},
'廃棄率': {
'current': 3.2,
'target': 2.0,
'previous': 5.0,
'unit': '%',
'status': '改善中',
},
'発注コスト': {
'current': 2_800_000,
'target': 2_500_000,
'previous': 3_500_000,
'unit': '円/月',
'status': '改善',
},
},
'cost_impact': {
'欠品損失削減': 7_500_000, # 月間
'廃棄コスト削減': 1_800_000,
'保管コスト削減': 2_000_000,
'合計月間削減': 11_300_000,
'年間削減見込': 135_600_000,
}
}
return dashboard
ROI計算
def calculate_roi():
"""需要予測システムのROIを計算"""
# 投資コスト
development_cost = 5_000_000 # 開発費
infrastructure_cost = 1_200_000 # 年間インフラ費(サーバー、API)
maintenance_cost = 2_400_000 # 年間保守費(人件費込み)
total_investment = development_cost + infrastructure_cost + maintenance_cost
# 年間コスト削減効果
annual_savings = 135_600_000 # 月間1,130万 × 12
# ROI
roi = (annual_savings - total_investment) / total_investment * 100
payback_months = total_investment / (annual_savings / 12)
print(f"総投資額: {total_investment:,}円")
print(f"年間削減効果: {annual_savings:,}円")
print(f"ROI: {roi:.0f}%")
print(f"回収期間: {payback_months:.1f}ヶ月")
まとめ
| 項目 | ポイント |
|---|---|
| KPI連動 | ML指標をビジネスKPIに変換して報告 |
| 主要KPI | 在庫回転率、欠品率、廃棄率 |
| コスト影響 | 欠品損失 + 廃棄コスト + 保管コストの削減 |
| ROI | 投資対効果と回収期間で経営判断を支援 |
チェックリスト
- ML指標とビジネスKPIの対応関係を説明できる
- 在庫回転率、欠品率、廃棄率を計算できる
- コスト削減効果を定量化できる
- ROIと回収期間を計算できる
次のステップへ
ビジネスKPI連動評価を学んだ。次は演習でモニタリング計画を策定しよう。
推定読了時間: 15分