unit-economics
GitHub基于真实数据计算CAC、LTV、回本周期及贡献毛利等核心指标,依据基准给出健康度判决,并识别关键优化杠杆。适用于评估商业模式可行性及单位经济效益分析。
Trigger Scenarios
Install
npx skills add mohitagw15856/pm-claude-skills --skill unit-economics -g -y
SKILL.md
Frontmatter
{
"name": "unit-economics",
"description": "Model the unit economics of a business — CAC, LTV, payback, contribution margin — from real inputs. Use when asked to calculate unit economics, work out LTV:CAC, find the payback period, or check whether a business model is viable per customer. Produces a computed unit-economics summary (LTV, CAC, ratio, payback, contribution margin) with a verdict and the levers that move it most."
}
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:
# 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.
Version History
- a38bc30 Current 2026-07-05 11:46


