Unit economics model
Activated Cloud✓ Officialactivated/unit-economics-model
Free · MIT
About
Works out what one customer, order or project is really worth: fully loaded acquisition cost, contribution margin after every variable cost, lifetime value from real cohort retention, payback period and LTV to CAC, by channel and segment, in a spreadsheet that ties back to the P&L. Use when the owner asks if growth is profitable, which channel or product to push, what they can afford to spend to win a customer, or how pricing changes the economics. Not for the company-wide budget: use budget-build.
Documentation
Unit economics model
You show whether the business makes money one customer (or order, or project) at a time, and how fast it gets its acquisition spend back. You build the numbers from the owner's own data, fully loaded and by segment, reconcile them to the P&L so they are not a fantasy, and state which assumptions they hang on. Benchmarks are context, never targets in themselves.
When to use
- "Is each customer actually profitable?"
- "What can we afford to pay to acquire a customer?"
- "Should we put more into Google Ads or into sales hires?"
- "What happens to our economics if we raise prices 10%?"
- "Investors are asking for LTV to CAC."
What you need
- Customer-level revenue by month (subscriptions, orders or projects) for at least 12 months, with the date each customer started and the channel they came from. Access, best first: connected apps (Stripe, Xero, QuickBooks) on the Connections page; your own browser signed in by the owner to the billing system, store or accounting software; or exports. If none is there, ask with
clarify. - Sales and marketing costs by month and by channel: ad spend, agency fees, tools, and the salaries of people who sell and market (fully loaded).
- Variable costs per unit: cost of goods, hosting per customer, payment processing fees, shipping and packing, onboarding and support time, commissions.
- The P&L for the same period, to reconcile against.
Method
- Pick the unit that matches how the business earns: customer (subscription), order and customer (e-commerce), client or project (services). Agree the period (monthly for subscriptions, per order and 12-month customer for e-commerce).
- Contribution margin per unit = revenue minus every cost that scales with that unit: direct costs, payment fees, shipping, hosting, variable support, commissions, discounts and refunds. Not fixed overheads. Show it as an amount and a percentage.
- CAC, fully loaded = sales and marketing cost in the period / new customers won in the period. Include salaries, tools and agency fees, not just ad spend. Calculate it:
- blended (all customers, including organic and referral), and
- paid, by channel (spend in channel / customers attributed to it). Use a lag that matches the sales cycle (spend in month n wins customers in month n+1 or later for long cycles) and say which lag you used.
- Retention from cohorts, not a single churn number. Group customers by start month, then track the share still active (logo retention) and the revenue they bring (revenue retention, including upgrades and downgrades) in each later month. Read the curve: steep early drop, then flattening, is normal; average it into a monthly churn rate only after month 3 or so, and say so. Code in
references/formulas-and-cohorts.md. - Lifetime value, on margin, never on revenue:
- Subscription: LTV = monthly contribution per customer / monthly churn rate. Also compute a capped version (36 months is a common cap) because a low churn rate can produce an implausibly long life.
- E-commerce: 12-month contribution per customer = first order contribution + (repeat orders in 12 months, from cohorts) x contribution per repeat order.
- Services: contribution per client over the average engagement length, from history.
- Payback months = CAC / monthly contribution per customer (subscription), or the month in which cumulative cohort contribution passes CAC (more accurate, from the cohort table).
- Ratios and context. LTV to CAC and payback, by channel and segment. Rules of thumb often quoted for subscription businesses are an LTV to CAC of around 3 or more and payback within about 12 months; they are conventions from venture-backed software, not laws, and a cash-constrained small business may need much faster payback. Say this when you quote them.
- Reconcile to the P&L. Total contribution across all customers in the period should be close to gross profit minus the variable costs you included; total CAC spend should equal sales and marketing costs in the P&L. If not, find the missing cost.
- Sensitivities the owner can act on: price plus 5% and 10%, churn plus and minus 1 point, CAC by channel, discount levels, a shipping threshold. Show the effect on LTV, payback and contribution.
- Build the workbook with
execute_code(pandas for cohorts, openpyxl for the output), with formulas for the ratio sheet so the owner can change an input and see the effect, and a Python tie-out of every output.
Worked example: subscription
Price 120.00 a month; variable costs (hosting, support, payment fees) 22%; contribution 93.60 a month (78%). Cohort churn from month 4 onwards 2.5% a month. Sales and marketing last quarter 30,000 including two salaries; 25 new customers: CAC 1,200.
- LTV simple: 93.60 / 0.025 = 3,744. Capped at 36 months: 93.60 x (1 minus 0.975^36) / 0.025 = 2,239.
- LTV to CAC 3.1 on the simple figure, 1.9 capped. Payback 1,200 / 93.60 = 12.8 months.
- By channel: paid search CAC 1,900 (payback 20 months); referrals 450 (payback 5 months). The blended 1,200 hides that paid search barely pays back inside the cap. What to tell the owner: the business looks sound on the uncapped figure and marginal on the realistic one. The two moves with the most effect are a 10% price rise (contribution 102.96, payback 11.7 months) and moving budget from paid search to referral incentives. Both go in the sensitivity sheet with their effect on payback.
Worked example: e-commerce
Average order 60.00; product margin 55% (33.00); shipping and packing 6.00; payment fees 2.10: contribution 24.90 an order.
- Cohorts show 1.6 repeat orders in the first 12 months, so 12-month contribution per customer is 24.90 x 2.6 = 64.74.
- Paid CAC 35.00: the first order loses 10.10, the customer pays back on the second order, and 12-month contribution after CAC is 29.74.
- An order value of 75.00 at the same margins adds about 7.70 of contribution an order; test a free-shipping threshold in the sensitivity sheet before recommending it.
- If repeat orders fall to 1.0 (a cohort of mostly one-time buyers), 12-month contribution after CAC drops to 14.80: the repeat rate is the number to watch, by channel.
Reading a cohort table
| Cohort | Size | M1 | M2 | M3 | M6 | M12 |
|---|---|---|---|---|---|---|
| Jan | 42 | 90% | 83% | 79% | 74% | 69% |
| Apr | 55 | 87% | 80% | 78% | 73% | |
| Jul | 61 | 91% | 85% | 81% |
- The drop in months 1 to 3 is onboarding failure, not steady churn: measure churn from month 3 or 4 onwards and treat onboarding as a separate fix.
- Blank cells are months that have not happened yet, never zeros.
- Cohorts under about 30 customers are shown but not relied on alone.
- A later cohort retaining better than an earlier one at the same age is the first evidence that a product or onboarding change worked.
The code that builds this table, blanks unobserved months and computes the weighted churn is in
references/formulas-and-cohorts.md.
Output
unit-economics-<date>.xlsxwith sheets: Summary (by segment and channel), Inputs (with sources), Contribution (unit-level waterfall from price to contribution), CAC (by month and channel), Cohorts (logo and revenue retention), LTV and payback, Sensitivity, P&L reconciliation, Checks.- A
show_card: contribution margin %, blended and paid CAC, LTV (capped), LTV to CAC, payback months, for the top segments. - A short memo: which customers or channels make money, which do not, and the 2 or 3 moves that would improve the economics most.
Checks before you finish
- CAC includes people costs, not just ad spend, and total CAC spend agrees to the P&L.
- LTV uses contribution, not revenue.
- Churn comes from cohorts with the window stated; small cohorts (under about 30 customers) are flagged as unreliable.
- Payback and LTV recomputed in Python match the workbook formulas.
- Every benchmark quoted is labelled as a rule of thumb and sourced if specific.
Pitfalls
- Revenue LTV. Inflates value by the cost of serving the customer.
- Ad-spend-only CAC. Leaves out the sales team and makes every channel look cheap.
- Blended CAC hiding paid CAC. Organic customers make paid channels look better than they are.
- Churn from too short a window or from the first months only.
- Uncapped LTV from very low churn, producing customer lives of 20 years.
- Averages across segments that behave differently. Split by plan, channel or customer size.
- Ignoring refunds, chargebacks and discounts in contribution.
See also
- financial-scenario-model, finance-kpi-dashboard, budget-build.
Versions
Listed from the source repository.
Reviews
No reviews yet. Be the first.
