---
id: wiki-2026-0508-profitability-framework
title: Profitability Framework
category: 10_Wiki/Topics
status: verified
canonical_id: self
aliases: [Profit Tree, Revenue-Cost Tree, Profitability Decomposition]
duplicate_of: none
source_trust_level: A
confidence_score: 0.88
verification_status: applied
tags: [business, consulting, mece, decision-framework]
raw_sources: []
last_reinforced: 2026-05-10
github_commit: pending
tech_stack:
  language: python
  framework: pandas
---

# Profitability Framework

## 매 한 줄
> **"매 Profit = Revenue − Cost 의 MECE 분해 의 driver-tree"**. McKinsey/BCG/Bain 의 case interview 의 standard tool — 매 modern data-driven companies 의 KPI tree / north-star decomposition 의 형태 의 살아있음.

## 매 핵심

### 매 Top-level
- **Profit = Revenue − Cost**.
- 매 둘 다 의 driver 의 MECE breakdown.

### 매 Revenue side
- **Revenue = Volume × Price**.
- Volume = Customers × Frequency × UnitsPerTxn.
- Customers = Acquisition + Retention − Churn.
- Price = ListPrice − Discount + Mix-effect.

### 매 Cost side
- **Cost = Variable + Fixed**.
- Variable = COGS + Variable SG&A + Logistics.
- Fixed = R&D + Fixed SG&A + Depreciation + Rent.
- 매 Allocation method (ABC / activity-based costing) 의 선택.

### 매 응용
1. Case interview 의 profitability problem.
2. SaaS unit economics (LTV/CAC, payback, gross margin).
3. KPI / north-star tree (DAU × ARPU 의 type).
4. Variance analysis (budget vs actual decomposition).
5. Pricing strategy diagnostic.

## 💻 패턴

### Pandas — full tree decomposition
```python
import pandas as pd

df = pd.DataFrame({
    "segment": ["A","B","C"],
    "customers":[1200, 800, 400],
    "frequency":[3.2, 4.1, 2.0],     # txn / customer / mo
    "units_per_txn":[1.5, 2.0, 1.0],
    "price":[20.0, 25.0, 50.0],
    "discount_pct":[0.10, 0.05, 0.20],
    "var_cost_per_unit":[8, 10, 22],
    "fixed_cost":[5000, 4000, 3000],
})

df["volume"]   = df.customers * df.frequency * df.units_per_txn
df["net_price"]= df.price * (1 - df.discount_pct)
df["revenue"]  = df.volume * df.net_price
df["var_cost"] = df.volume * df.var_cost_per_unit
df["profit"]   = df.revenue - df.var_cost - df.fixed_cost
df["margin"]   = df.profit / df.revenue
print(df[["segment","revenue","profit","margin"]])
```

### LTV / CAC (SaaS unit economics)
```python
def ltv(arpu, gross_margin, monthly_churn):
    return arpu * gross_margin / monthly_churn        # 매 ≈ contribution / churn
def payback_months(cac, arpu, gross_margin):
    return cac / (arpu * gross_margin)

print(ltv(50, 0.75, 0.03), payback_months(150, 50, 0.75))
```

### Variance bridge (budget→actual)
```python
# Decompose ΔProfit into Volume / Price / Mix / Cost effects
def bridge(b, a):
    vol  = (a.qty - b.qty) * b.price                 # volume effect at base price
    price= (a.price - b.price) * a.qty               # price effect at actual qty
    cost = (b.unit_cost - a.unit_cost) * a.qty       # cost effect
    return {"volume":vol, "price":price, "cost":cost,
            "delta_profit":vol+price+cost}
```

### Pareto on profit drivers
```python
sorted_seg = df.sort_values("profit", ascending=False)
sorted_seg["cum_profit_pct"] = sorted_seg.profit.cumsum() / sorted_seg.profit.sum()
top_80 = sorted_seg[sorted_seg.cum_profit_pct <= 0.8]
```

### KPI tree as nested dict (for dashboards)
```python
tree = {
  "Profit": {
    "Revenue": {"Volume": ["Customers","Freq","UnitsPerTxn"], "Price":["List","Discount","Mix"]},
    "Cost":    {"Variable":["COGS","Logistics"], "Fixed":["R&D","SG&A","Rent"]},
  }
}
```

## 매 결정 기준
| 상황 | Approach |
|---|---|
| 매 case interview / quick diagnostic | 2-level Profit = Rev − Cost tree |
| 매 SaaS / subscription | LTV / CAC / churn / ARPU tree |
| 매 retail / e-commerce | Volume × Price × Mix decomposition |
| 매 manufacturing | Variable+Fixed + ABC |
| 매 multi-segment company | per-segment tree + Pareto |
| 매 budget vs actual | Variance bridge |

**기본값**: 매 first MECE split: Revenue/Cost → Volume/Price + Variable/Fixed → segment Pareto.

## 🔗 Graph
- 부모: [[Issue Tree]] · [[Mutually Exclusive and Collectively Exhaustive (MECE)]] · [[Decision Theory]]
- 변형: [[Logic Trees]] · [[Root-Cause-Analysis-RCA]]
- 응용: [[Strategic_Thinking|Strategic Thinking]] · [[Problem_Solving|Problem Solving]] · [[Reports]]
- Adjacent: [[High-Frequency-Trading-Models]] · [[Economic-Complexity-Index]]

## 🤖 LLM 활용
**언제**: 매 ambiguous business problem ("매 why profit drop?") — 매 first-pass structured diagnostic.
**언제 X**: 매 root-cause beyond financial mechanics (culture, regulation) — 매 framework 의 too narrow.

## ❌ 안티패턴
- **MECE 위반**: 매 overlapping / missing branches.
- **Average obsession**: 매 per-segment decomposition 없이 aggregate 만 봄.
- **Fixed cost 의 marginal decision 적용**: 매 short-run 의 fixed 의 sunk; 매 contribution margin 의 use.
- **Volume↔Price↔Mix 혼동**: 매 variance bridge 의 잘못된 attribution.
- **LTV 의 churn=0 가정**: 매 division-by-zero / overestimate.

## 🧪 검증 / 중복
- Verified (Cosentino *Case in Point* 11e; Rasiel *McKinsey Way*; Damodaran *Valuation* 4e).
- 신뢰도 A.

## 🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — full MECE profit tree + SaaS unit econ + variance bridge |
