# Unit Economics Skill

A business is only viable if each customer is worth more than it costs to acquire and serve. This skill
computes the core unit economics — CAC, LTV, the LTV:CAC ratio, payback period, and contribution margin
— from real numbers (not vibes), states a clear verdict against the rule-of-thumb benchmarks, and shows
which lever moves the model most.

## Required Inputs

Ask for these only if they aren't already provided:

- **ARPA** — average revenue per account, per month (or per period).
- **Gross margin %** — the share of revenue left after cost-to-serve.
- **Churn %** — monthly customer (or revenue) churn — drives LTV.
- **CAC** — fully-loaded cost to acquire a customer (sales + marketing ÷ new customers).

## Output Format

### Unit Economics: [business]

**1. The numbers** — computed, with the formula shown (use the helper script so they're consistent):

| Metric | Value | Benchmark |
|---|---|---|
| Lifetime (1/churn) | | |
| LTV (ARPA × margin ÷ churn) | | |
| CAC | | |
| **LTV : CAC** | | ≥ 3:1 healthy |
| **Payback (months)** | | < 12 healthy |
| Contribution margin | | |

**2. Verdict** — healthy / borderline / underwater, in one line, against the benchmarks (LTV:CAC ≥ 3, payback < 12 months).

**3. Biggest levers** — which input, improved realistically, moves the model most (usually churn or CAC), with the rough effect.

**4. Caveats** — where the inputs are assumptions vs. measured, and what to validate before betting on this.

## Programmatic Helper

`scripts/unit_econ.py` (stdlib only) computes the model so the numbers are calculated, not estimated:

```bash
# in.json: {"arpa": 50, "gross_margin": 0.8, "monthly_churn": 0.03, "cac": 400}
python3 scripts/unit_econ.py in.json
python3 scripts/unit_econ.py in.json --json
```

## Quality Checks

- [ ] LTV uses gross margin, not raw revenue (a common, model-breaking error)
- [ ] The numbers are computed by the helper, not eyeballed
- [ ] Verdict is stated against the standard benchmarks (LTV:CAC ≥ 3, payback < 12mo)
- [ ] The biggest lever is identified with its rough effect
- [ ] Assumed inputs are flagged separately from measured ones

## Anti-Patterns

- [ ] Do not compute LTV on revenue instead of gross margin — it inflates LTV and hides an unviable model
- [ ] Do not ignore payback — a great LTV:CAC with a 30-month payback can still starve a business of cash
- [ ] Do not treat blended CAC as paid CAC — separate organic from paid or the model lies
- [ ] Do not present assumptions as facts — label estimated churn/CAC and validate them
- [ ] Do not optimise the smallest lever — model which input actually moves the outcome

## Based On

SaaS unit-economics practice (David Skok / for Entrepreneurs) — margin-based LTV, LTV:CAC ≥ 3, payback < 12 months.
