andreworia/unit-economics

Builds a unit-economics and cohort .xlsx with live formulas across separate assumptions, cohort, and output tabs plus checks, computing CAC, LTV, LTV/CAC, and CAC payback from a monthly cohort retention grid. Use when someone needs unit economics, an LTV/CAC analysis, a payback model, or a cohort retention build. Do not trigger for editing an existing workbook through the Claude for Excel add-in.

Qu'est-ce que unit-economics ?

unit-economics is a Claude Code agent skill that builds a unit-economics and cohort .xlsx with live formulas across separate assumptions, cohort, and output tabs plus checks, computing CAC, LTV, LTV/CAC, and CAC payback from a monthly cohort retention grid. Use when someone needs unit economics, an LTV/CAC analysis, a payback model, or a cohort retention build. Do not trigger for editing an existing workbook through the Claude for Excel add-in.

Compatible avecClaude Code~Codex CLI~Cursor
npx skills add https://github.com/andreworia/claude-excel-skills/tree/main/skills/unit-economics

Installed? Explore more Productivité et collaboration skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Unit Economics (LTV/CAC and Cohorts)

When to use

Use when you need to know whether a customer is worth more than it costs to acquire: CAC, gross-margin contribution, retention, LTV, the LTV/CAC ratio, and CAC payback in months. Good for SaaS and subscription businesses, board reviews, and diligence where a cohort retention grid backs the headline ratios. The skill builds a downloadable .xlsx in the Claude app with openpyxl; it does not use any Excel add-in or Microsoft 365 connection.

What it builds

A workbook with six tabs:

  • Cover: title, color legend, scenario selector, headline LTV/CAC and payback.
  • Assumptions: blue inputs (S&M spend, new customers, ARPU, gross margin %, churn, discount rate, scenario multipliers).
  • Cohorts: a retention grid, cohorts down the rows and months across the columns, with retained % and revenue per cohort.
  • Unit Economics: CAC, ARPU, contribution per customer, payback.
  • LTV-CAC: LTV by the simple formula and by discounted cohort contribution, plus the ratio.
  • Checks: consistency, monotonic retention, and payback sanity flags.

Build workflow

  1. Create the workbook and the six tabs in the order above.
  2. On Assumptions, lay out all inputs in blue with units; add a scenario cell (1=Base, 2=Bull, 3=Bear) named scn.
  3. Build CAC and per-customer contribution on Unit Economics from the spend and customer inputs.
  4. Build the cohort grid: a month-0 base of 100% (or starting customers) decaying by retention across months.
  5. Add a revenue and contribution row beneath the retention grid per cohort.
  6. Build LTV two ways on LTV-CAC: closed-form and discounted cohort sum; compute the ratio and payback.
  7. Build the Checks tab with consistency, monotonicity, and payback tests.
  8. Recalculate the workbook headless (LibreOffice) so all formulas compute.
  9. Verify zero formula errors (#REF!, #DIV/0!, #VALUE!, #NAME?); fix and re-recalculate in a loop, then deliver.

Tab-by-tab spec

Cover

  • Title cell, model purpose line, and a build date.
  • Color legend block: a blue swatch labelled "Input", black labelled "Formula", green labelled "Cross-tab link".
  • Scenario echo: =CHOOSE(scn,"Base","Bull","Bear") pulling the active scenario from Assumptions.
  • Headline outputs as green cross-tab links: LTV/CAC =LTV-CAC!<ratio cell>, CAC payback in months, and discounted LTV.
  • A one-line read-me noting the workbook recalculates live in Excel and was verified error-free at build.

Assumptions

  • B2 Scenario selector (blue, 1/2/3), named scn.
  • S&M spend per period B5; new customers acquired B6.
  • ARPU per month B7; gross margin % B8.
  • Monthly churn % B9 (so monthly retention =1-B9); discount rate per month B10.
  • Scenario multipliers (Base/Bull/Bear) for churn and ARPU: active churn =CHOOSE(scn,...) in B12, active ARPU =CHOOSE(scn,...) in B13.

Unit Economics

  • CAC B3 =Assumptions!B5/Assumptions!B6.
  • Effective ARPU B4 =Assumptions!B7*Assumptions!B13.
  • Gross profit per customer-month B5 =B4*Assumptions!B8.
  • Monthly retention B6 =1-Assumptions!B9*Assumptions!B12.
  • CAC payback (months) B7 =CAC/gross profit per customer-month =B3/B5. If you prefer cohort-aware payback, compute cumulative gross profit per cohort month until it crosses CAC and report that month index.
  • Average customer lifetime (months) B8 =1/(Assumptions!B9*Assumptions!B12).

Cohorts

  • Row 3 month headers 0,1,2,...,N across columns.
  • Column A cohort labels (Cohort 1, Cohort 2, ...).
  • Retained %: month 0 cell = 1 (100%); each later month =prior_month_cell*'Unit Economics'!$B$6 (apply monthly retention). One consistent formula across the row.
  • Active customers per cohort: =retained% * Assumptions!$B$6.
  • Revenue per cohort-month: =active customers * 'Unit Economics'!$B$4.
  • Contribution per cohort-month: =revenue * Assumptions!$B$8.

LTV-CAC

  • LTV closed-form B3 ='Unit Economics'!B4*Assumptions!B8/('Unit Economics'!B6 lifetime churn) i.e. =ARPU*GM% / churn; in cells ='Unit Economics'!B4*Assumptions!B8/(Assumptions!B9*Assumptions!B12).
  • LTV discounted-cohort B4: sum over months of contribution per customer discounted, =SUMPRODUCT(contribution_per_customer_row, 1/(1+Assumptions!B10)^month_index) using the month-0 cohort row divided by starting customers so it is per-customer.
  • LTV/CAC B5 =B4/'Unit Economics'!B3 (use the discounted LTV as primary).
  • Payback echo B6 ='Unit Economics'!B7.

Checks

  • Consistency: =IF(ABS(LTV_closedform-LTV_discounted)/LTV_discounted<=Assumptions!tol,"PASS","FAIL").
  • Monotonic retention within each cohort: =IF(SUMPRODUCT(--(this_month_cells>prior_month_cells))=0,"PASS","FAIL") so no month exceeds the prior.
  • Payback positive and within a stated cap (blue input).
  • LTV/CAC computed from the same ARPU, margin, and churn used in the cohort grid.

Formula and formatting conventions

  • Blue font for inputs (Assumptions only). Black for in-tab formulas. Green for cross-tab links.
  • No hardcoded numbers in formulas; constants live on Assumptions. Use absolute refs to the retention and ARPU drivers so cohort rows fill cleanly.
  • One consistent formula per cohort row so it copies across months without edits.
  • Retention and margins as percent; CAC, LTV, ARPU as currency; payback and lifetime as months with one decimal.
  • Name scn, tol, CAC, and the retention cell for readable Checks and LTV formulas.

Checks

  • LTV/CAC computed consistently (closed-form and discounted within tolerance).
  • CAC payback reported in months and positive.
  • Retention monotonically non-increasing within each cohort (no month rises above the prior).
  • Margins and retention between 0 and 1; CAC and LTV non-negative.

Recalculate and verify

After writing, recalculate headless with LibreOffice so openpyxl formula text becomes computed values. Scan every sheet for #REF!, #DIV/0!, #VALUE!, #NAME?. Note that LTV and payback divide by churn, so guard against churn = 0 producing #DIV/0!. Fix any offending formula or missing named range and recalculate again in a loop. Deliver only when the Checks tab shows all PASS and no error strings remain.

Inputs to gather

  • Sales and marketing spend and new customers in the same period (for CAC).
  • ARPU per month and gross margin %.
  • Monthly churn (or retention) and a discount rate.
  • Number of cohorts and months to model in the grid.
  • Scenario multipliers for churn and ARPU (Base/Bull/Bear) and the tolerance band.

Example

Hypothetical: S&M 200,000, 400 new customers, so CAC 500. ARPU 50 per month, 80% gross margin gives 40 gross profit per customer-month, payback 12.5 months. Churn 4% monthly implies 25-month average lifetime; closed-form LTV about 1,000 and discounted cohort LTV slightly lower; LTV/CAC near 2.0x. The cohort grid decays each cohort 100%, 96%, 92.2%, ... across months, and contribution sums to the discounted LTV.

Individual skills in this repo

This repo contains 11 individual skills — each has its own dedicated page.

andreworia/assumption-registry-builder

Creates a structured assumption register for any Excel model with columns for name, category, base value, source, Bull/Bear values, sensitivity rank, and owner, plus a formula for computing sensitivity rank from Data Table outputs.

andreworia/data-cleaning-for-excel

Turns pasted or exported data with mixed formats, blank rows, or duplicates into a clean, consistently formatted range ready for analysis. Use it right after pasting raw data into a worksheet.

andreworia/formula-audit-checker

Provides a systematic audit checklist for Excel model formula logic, hardcoded values, circular references, and error handling, with step-by-step instructions for using Excel's native auditing tools.

andreworia/inputs-calcs-outputs-design

Enforces the three-tab separation principle for any Excel model, producing a full design for a dedicated Inputs tab, one or more Calculations tabs, and a clean Outputs tab with a conventions checklist.

andreworia/model-architecture-template

Defines the master tab structure, naming conventions, color codes, number formats, and print area setup for any new strategy or finance Excel model, serving as the structural template before any content is added.

andreworia/output-summary-tab

Designs the executive summary tab of an Excel model with KPI tiles, a narrative block, a sensitivity summary, and an assumption log, formatted for print or screenshot use in a board pack.

andreworia/pivot-table-builder

Specifies and builds a pivot table from a flat data range, choosing rows, columns, values, and filters. Use it when you have raw tabular data and need a summary view without building it cell by cell.

andreworia/revenue-build

Builds a driver-based revenue forecast .xlsx with live formulas across separate drivers, build, and output tabs plus checks, rolling a customer or units schedule (beginning, adds, churn, ending) into revenue with Base/Bull/Bear scenario toggles. Use when someone needs a bottom-up revenue model, an ARR build, or a driver-based forecast for planning or a board deck. Do not trigger for editing an existing workbook through the Claude for Excel add-in.

andreworia/scenario-manager

Builds a Base/Bull/Bear scenario switching layer for a model in a .xlsx with a live selector, CHOOSE or INDEX assumption links, a side-by-side output comparison, and a recalc check, then delivers the workbook. Use when someone wants an auditable scenario toggle instead of Excel's hidden Scenario Manager. Do not trigger for editing an existing workbook through the Claude for Excel add-in.

andreworia/sensitivity-tables

Builds one- and two-variable sensitivity (Data Table) analysis on a model output in a .xlsx with live formulas and a recalc check, then delivers the workbook. Use when someone wants to see how an output (NPV, IRR, EPS, margin) moves as one or two inputs change. Do not trigger for editing an existing workbook through the Claude for Excel add-in.

andreworia/sensitivity-tornado

Ranks variable sensitivities to a key output and builds a tornado chart by swinging each input over a defined range, computing output impact, and producing a horizontal bar chart data structure.

Skills associés