Skip to main content
โšก Calmops

SaaS Metrics Deep Dive: Understanding Unit Economics

Introduction

Unit economics are the fundamental financial metrics that determine whether your SaaS business is sustainable. Understanding and optimizing CAC, LTV, and their relationship is essential for growth.

This guide provides deep dives into the key unit economics metrics every SaaS founder needs to master.

Customer Acquisition Cost (CAC)

What is CAC?

CAC is the total cost of acquiring a new customer:

CAC = Total Acquisition Costs / Number of New Customers

CAC Components

Acquisition Costs Include:

Category Examples
Marketing Ads, content, events
Sales Salaries, commissions, tools
Marketing ops Software, agencies
Overhead Allocated costs

CAC Calculation

def calculate_cac():
    marketing_spend = get_marketing_spend()
    sales_spend = get_sales_spend()
    total_acquisition = marketing_spend + sales_spend
    
    new_customers = get_new_customers()
    
    cac = total_acquisition / new_customers
    return cac

CAC by Channel

def cac_by_channel():
    channels = ['paid', 'organic', 'referral', 'direct']
    
    for channel in channels:
        spend = get_channel_spend(channel)
        customers = get_customers_by_channel(channel)
        
        cac = spend / customers if customers > 0 else 0
        print(f"{channel}: ${cac}")

CAC Benchmarks

Stage CAC Notes
Early stage $200-$500 Building foundation
Growth $500-$1,500 Scaling channels
Mature $1,500-$5,000 Enterprise focus

Customer Lifetime Value (LTV)

What is LTV?

LTV is the total revenue expected from a customer:

LTV = ARPU ร— Gross Margin ร— Customer Lifetime

LTV Calculation Methods

Simple LTV:

LTV = Average Revenue Per User ร— Gross Margin ร— Churned Months

Example:
ARPU: $100/month
Gross Margin: 80%
Churn: 5%/month (20 month lifetime)

LTV = $100 ร— 0.80 ร— 20 = $1,600

Advanced LTV:

def calculate_ltv():
    # Get cohort data
    cohort = get_cohort_data()
    
    # Project future revenue
    projected_revenue = 0
    margin = 0.80
    discount_rate = 0.10
    
    for month in range(1, 37):
        probability = cohort.survival_rate(month)
        revenue = cohort.revenue(month)
        
        projected_revenue += probability * revenue / ((1 + discount_rate) ** month)
    
    return projected_revenue * margin

LTV Benchmarks

Segment LTV Typical Range
SMB $1,000-$5,000 12-24 months
Mid-Market $10K-$50K 24-48 months
Enterprise $50K-$500K 36-60+ months

The LTV:CAC Ratio

What is LTV:CAC?

The ratio measures the return on acquisition investment:

LTV:CAC = LTV / CAC

Healthy Ratios

Ratio Interpretation
< 1:1 Losing money on acquisition
1:1 to 3:1 Healthy, room for improvement
3:1 to 5:1 Excellent efficiency
> 5:1 Underinvesting in growth

Optimizing LTV:CAC

Ways to Improve:

  1. Increase LTV

    • Raise prices
    • Reduce churn
    • Drive expansion
    • Improve gross margin
  2. Decrease CAC

    • Optimize marketing channels
    • Improve conversion rates
    • Build referral programs
    • Better targeting

Payback Period

What is Payback Period?

Payback period is how long until acquired customers become profitable:

Payback Period = CAC / (ARPU ร— Gross Margin)

Calculation

def calculate_payback():
    cac = get_cac()
    arpu = get_arpu()
    gross_margin = 0.80
    
    monthly_margin = arpu * gross_margin
    payback_months = cac / monthly_margin
    
    return payback_months  # in months

Payback Benchmarks

Stage Payback Target
Bootstrapped < 12 months 6-9 months
VC-backed 12-18 months 12-15 months

CLTV:CAC Ratio

What is CLTV:CAC?

Customer Lifetime Value to CAC ratio considers cost to serve:

CLTV:CAC = (LTV - Cost to Serve) / CAC

Cost to Serve

Include:

  • Support costs
  • Hosting/infrastructure
  • Variable costs
  • Credit card fees
def cost_to_serve(customer):
    support_cost = customer.support_tickets * 15
    hosting_cost = customer.usage_gb * 0.10
    fees = customer.revenue * 0.029
    
    return support_cost + hosting_cost + fees

Cohort Analysis for Unit Economics

Building Cohorts

def cohort_analysis():
    cohorts = {}
    
    for customer in get_all_customers():
        cohort_key = customer.signup_month
        if cohort_key not in cohorts:
            cohorts[cohort_key] = []
        cohorts[cohort_key].append(customer)
    
    for month, cohort in cohorts.items():
        cac = cohort.acquisition_cost / cohort.size
        ltv = cohort.ltv_24_months()
        
        print(f"{month}: CAC=${cac}, LTV=${ltv}, Ratio={ltv/cac}")

Cohort Comparison

Metric Q1 Cohort Q2 Cohort Q3 Cohort
CAC $500 $450 $400
12-month LTV $1,200 $1,400 $1,600
LTV:CAC 2.4x 3.1x 4.0x

Optimization Strategies

Improving Unit Economics

CAC Optimization:

Strategy Impact
Better targeting -20% to -30% CAC
Conversion optimization -15% to -25% CAC
Referral programs -20% to -40% CAC
Content marketing -30% to -50% CAC

LTV Optimization:

Strategy Impact
Price increase +10% to +20% LTV
Churn reduction +15% to +30% LTV
Expansion revenue +20% to +50% LTV
Upsell programs +15% to +30% LTV

Unit Economics by Channel

def channel_unit_economics():
    channels = get_channels()
    
    for channel in channels:
        cac = channel.cac()
        ltv = channel.ltv()
        ratio = ltv / cac if cac > 0 else 0
        
        efficiency = 'Healthy' if ratio > 3 else 'Needs Work'
        print(f"{channel}: LTV:CAC = {ratio}x ({efficiency})")

Modeling and Forecasting

Building Financial Models

Revenue Forecast:

def forecast_revenue():
    current_mrr = 100000
    growth_rate = 0.10
    
    for month in range(1, 13):
        new_customers = calculate_new_customers(month)
        churned = calculate_churn(month)
        
        current_mrr = current_mrr * (1 + growth_rate) - churned
        
        print(f"Month {month}: ${current_mrr}")

Scenario Planning

Models:

Scenario Growth CAC Churn
Optimistic 15%/mo -10% -20%
Base 10%/mo Baseline Baseline
Conservative 5%/mo +10% +20%

Conclusion

Unit economics are the foundation of SaaS financial health. Master CAC, LTV, and their relationship. Optimize continuously. The best companies achieve 3:1+ LTV:CAC with payback under 12 months.


Resources


Related articles: SaaS Metrics Analytics Complete Guide and SaaS Data-Driven Decision Making

Comments