skills/financial-unit-economics/SKILL.md
Analyzes profitability per customer, product, or transaction to determine business model viability and scalability. Covers CAC, LTV, contribution margin, cohort analysis, and growth-readiness assessment. Use when evaluating business model viability, validating startup metrics (CAC, LTV, payback period), making pricing decisions, comparing business models, or when user mentions unit economics, CAC/LTV ratio, contribution margin, customer profitability, or break-even analysis.
npx skillsauth add lyndonkl/claude financial-unit-economicsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Scenario: SaaS startup, $100/month subscription
Copy this checklist and track your progress:
Unit Economics Analysis Progress:
- [ ] Step 1: Define the unit
- [ ] Step 2: Calculate CAC
- [ ] Step 3: Calculate LTV
- [ ] Step 4: Assess contribution margin
- [ ] Step 5: Analyze cohorts
- [ ] Step 6: Interpret and recommend
Step 1: Define the unit
What is your unit of analysis? (Customer, product SKU, transaction, subscription). See resources/template.md.
Step 2: Calculate CAC
Total acquisition costs (sales + marketing) ÷ new units acquired. Break down by channel if applicable. See resources/template.md and resources/methodology.md.
Step 3: Calculate LTV
Revenue over unit lifetime minus variable costs. Use cohort data for retention/churn. See resources/template.md and resources/methodology.md.
Step 4: Assess contribution margin
(Revenue - Variable Costs) ÷ Revenue. Identify levers to improve margin. See resources/template.md and resources/methodology.md.
Step 5: Analyze cohorts
Track retention, LTV, payback by customer cohort (acquisition month/channel/segment). See resources/template.md and resources/methodology.md.
Step 6: Interpret and recommend
Assess LTV/CAC ratio, payback period, cash efficiency. Make recommendations (pricing, channels, growth). See resources/template.md and resources/methodology.md.
Validate using resources/evaluators/rubric_financial_unit_economics.json. Minimum standard: Average score ≥ 3.5.
Pattern 1: SaaS Subscription Model
Pattern 2: E-commerce / Transactional
Pattern 3: Marketplace / Platform
Pattern 4: Freemium / PLG (Product-Led Growth)
Pattern 5: Enterprise / High-Touch Sales
Fully-loaded CAC: Include all acquisition costs (sales salaries, marketing spend, tools, overhead allocation). Excluding sales team salaries is a common miss that inflates perceived economics.
True variable costs: Only include costs that scale with each unit (COGS, hosting per user, transaction fees). Exclude fixed costs (rent, core engineering). Accurate margins are essential for LTV.
Cohort-based LTV: Early cohorts are not the same as recent cohorts. Track retention curves by cohort. Base LTV on observed retention, not assumptions.
Use conservative time horizons: LTV is a prediction. For new products with limited data, weight recent cohorts more heavily and avoid projecting far beyond observed behavior.
Optimize both payback and LTV/CAC: High LTV/CAC but long payback (>18 months) strains cash. Fast payback (<6 months) allows rapid reinvestment.
Analyze at channel level: Blended metrics hide the truth. CAC and LTV vary by channel (paid search vs. referral vs. content). Break down separately to optimize spend.
Retention drives LTV exponentially: Improving monthly churn from 5% to 4% increases LTV by 25%. Retention improvements typically matter more than acquisition improvements.
Gross margin floor: SaaS needs >=60% gross margin, e-commerce >=40%, to be viable. Low margin means even high LTV/CAC ratios yield poor cash flow.
Common pitfalls:
Key formulas:
CAC = (Sales + Marketing Costs) ÷ New Customers Acquired
LTV (subscription) = ARPU × Gross Margin % ÷ Monthly Churn Rate
LTV (transactional) = AOV × Purchase Frequency × Gross Margin % × Lifetime (years)
Contribution Margin % = (Revenue - Variable Costs) ÷ Revenue
LTV/CAC Ratio = Lifetime Value ÷ Customer Acquisition Cost
Payback Period (months) = CAC ÷ (Monthly Revenue × Gross Margin %)
CAC Payback (months) = S&M Spend ÷ (New ARR × Gross Margin %)
Gross Margin % = (Revenue - COGS) ÷ Revenue
Customer Lifetime (months) = 1 ÷ Monthly Churn Rate
MRR (Monthly Recurring Revenue) = Sum of all monthly subscriptions
ARR (Annual Recurring Revenue) = MRR × 12
ARPU (Average Revenue Per User) = Total Revenue ÷ Total Users
NRR (Net Revenue Retention) = (Starting ARR + Expansion - Contraction - Churn) ÷ Starting ARR
Benchmarks (varies by stage and industry):
| Metric | Good | Acceptable | Poor | |--------|------|------------|------| | LTV/CAC Ratio | ≥5:1 | 3:1 - 5:1 | <3:1 | | Payback Period | <6 months | 6-12 months | >18 months | | Gross Margin (SaaS) | ≥80% | 60-80% | <60% | | Gross Margin (E-commerce) | ≥50% | 40-50% | <40% | | Monthly Churn (B2C SaaS) | <3% | 3-7% | >7% | | Monthly Churn (B2B SaaS) | <1% | 1-3% | >3% | | CAC Payback (SaaS) | <12 months | 12-18 months | >18 months | | NRR (SaaS) | ≥120% | 100-120% | <100% |
Decision framework:
| LTV/CAC | Payback | Recommendation | |---------|---------|----------------| | <1:1 | Any | Stop: Losing money on every customer. Fix model or pivot. | | 1:1 - 2:1 | >12 months | Caution: Marginal economics. Don't scale yet. Improve retention or reduce CAC. | | 2:1 - 3:1 | 6-12 months | Optimize: Unit economics acceptable. Focus on improving before scaling. | | 3:1 - 5:1 | <12 months | Scale: Good economics. Can profitably invest in growth. | | >5:1 | <6 months | Aggressive scale: Excellent economics. Raise capital, increase spend rapidly. |
Inputs required:
Outputs produced:
unit-economics-analysis.md: Full analysis with CAC, LTV, ratios, cohort breakdownscohort-retention-table.csv: Retention curves by cohortchannel-profitability.csv: CAC and LTV by acquisition channelrecommendations.md: Pricing, channel, growth recommendations based on metricstesting
Cluster a conference's event records into a small set of coarse themes with finer sub-clusters, an explicit outlier bucket, and soft (multi-membership) affinities — using the hybrid embed-then-label pipeline (embed abstracts, reduce, density-cluster, then LLM-label the clusters) when embedding libraries are available, and an LLM-reasoned hierarchical fallback when they are not. Embeddings do the grouping; the LLM only names the groups. Conference-agnostic. Use when turning structured event records into a navigable theme map for preference elicitation and scheduling, when you need 6-8 reasonable themes rather than 20 muddy ones, or when overlapping talks must belong to more than one theme. Trigger keywords - theme clustering, cluster talks, embed then label, soft membership, outlier talks, conference themes, topic map.
development
Build a personal conference schedule as a constraint-optimization problem — hard constraints (no time overlap, room-to-room travel time, capacity/registration, the attendee's own must-attends and blackouts) plus a user-owned weighted objective trading interest against breadth, pacing (maximize contiguous free time), and serendipity. Surfaces unbreakable conflicts (two high-value overlapping talks the model cannot rank) as decisions for the human rather than silently picking, and reports what each choice traded away. Conference-agnostic. Use to turn a preference profile plus a theme map into a day-by-day plan, to resolve overlapping sessions, or to balance a packed vs paced schedule. Trigger keywords - schedule optimization, conference schedule, constraint optimization, overlapping talks, contiguous free time, conflict surfacing, packed vs paced.
development
Parse a heterogeneous conference program (markdown, HTML, PDF-derived text, or JSON) into normalized event records with per-field confidence scores and independent classification axes (topic, depth, format, prerequisites, recorded, capacity). Detects the program's format before extracting, treats every inferred field as uncertain (present vs inferred vs missing), and flags thin or missing abstracts so downstream enrichment can target them. Conference-agnostic. Use when ingesting a conference or event schedule into a structured store, normalizing a talk/session list, or extracting per-session metadata with calibrated confidence. Trigger keywords - program ingestion, parse schedule, session extraction, event records, conference program, talk metadata, per-field confidence.
development
Build a personalized preference profile from a small number of well-chosen, cluster-grounded questions instead of a long survey. Represents the person's interests as an uncertainty region over the theme map, picks the single highest-information-gain choice-based question (contrasting real talks from different clusters), balances exploiting known interests against exploring uncertain ones, deliberately injects outlier probes to fight selection bias, and stops as soon as the schedule would be stable. Also elicits the user-owned objective weights and hard constraints. Interactive — runs where it can actually ask the person. Conference-agnostic. Use to turn a theme map into a preference profile, to decide what to ask a conference attendee, or to elicit scheduling priorities. Trigger keywords - preference elicitation, ask few questions, information gain, choice-based questions, selection bias probe, objective weights, attendee preferences.