SaaS Module¶
??? example "arr"
from startup_valuation.saas import arr
result = arr(monthly_recurring_revenue=100_000)
print(f"ARR: ${result.value:,.0f}") # $1,200,000
??? example "mrr"
from startup_valuation.saas import mrr
result = mrr(customers=500, arpu=200)
print(f"MRR: ${result.value:,.0f}") # $100,000
??? example "cac"
from startup_valuation.saas import cac
result = cac(marketing_spend=100_000, new_customers=200)
print(f"CAC: ${result.value:,.0f}") # $500
??? example "ltv_saas"
from startup_valuation.saas import ltv_saas
result = ltv_saas(arpu=200, gross_margin=0.80, churn_rate=0.05)
print(f"LTV: ${result.value:,.0f}") # $3,200
??? example "net_revenue_retention"
from startup_valuation.saas import net_revenue_retention
result = net_revenue_retention(revenue_start=1_000_000, revenue_end=1_200_000)
print(f"NRR: {result.value:.0%}") # 120%
??? example "cac_payback_period"
from startup_valuation.saas import cac_payback_period
result = cac_payback_period(cac=500, mrr=200, gross_margin=0.80)
print(f"Payback: {result.value:.1f} months") # 3.1 months
??? example "magic_number"
from startup_valuation.saas import magic_number
result = magic_number(net_new_arr=300_000, sales_marketing_expense=200_000)
print(f"Magic number: {result.value:.2f}") # 1.50
??? example "rule_of_40"
from startup_valuation.saas import rule_of_40
result = rule_of_40(growth_rate=0.30, profit_margin=0.15)
print(f"Rule of 40: {result.value:.0%}") # 45%
??? example "saas_revenue_multiple_valuation"
from startup_valuation.saas import saas_revenue_multiple_valuation
result = saas_revenue_multiple_valuation(arr=1_200_000, multiple=10)
print(f"Valuation: ${result.value:,.0f}") # $12,000,000
startup_valuation.saas
¶
SaaS-specific valuation metrics and methods.
Chapter 11: Industry-Specific Valuation Frameworks — SaaS
Classes¶
Functions¶
arr(subscription_values)
¶
Calculate Annual Recurring Revenue.
Formula: ARR = Σ Annual Subscription Valueᵢ
Source code in src/startup_valuation/saas.py
mrr(arr_value)
¶
Calculate Monthly Recurring Revenue.
Formula: MRR = ARR / 12
cac(sales_marketing_expense, new_customers)
¶
Calculate Customer Acquisition Cost.
Formula: CAC = Sales & Marketing Expenses / New Customers
Source code in src/startup_valuation/saas.py
ltv_saas(arpu, gross_margin, churn_rate)
¶
Calculate SaaS Lifetime Value.
Formula: LTV = (ARPU × Gross Margin) / Churn Rate
Example
result = ltv_saas(100, 0.80, 0.05) result.value 1600.0
Source code in src/startup_valuation/saas.py
net_revenue_retention(starting_revenue, ending_revenue, expansion_revenue=0)
¶
Calculate Net Revenue Retention.
Formula: NRR = (Ending Revenue + Expansion Revenue) / Starting Revenue
Source code in src/startup_valuation/saas.py
cac_payback_period(cac, mrr_per_customer, gross_margin)
¶
Calculate CAC Payback Period.
Formula: CAC Payback = CAC / (MRR per Customer × Gross Margin)
Source code in src/startup_valuation/saas.py
magic_number(net_new_arr, sm_expense_prior)
¶
Calculate SaaS Magic Number.
Formula: Magic Number = Net New ARR_quarter / S&M Expense_prior_quarter
Source code in src/startup_valuation/saas.py
rule_of_40(growth_rate, profit_margin)
¶
Calculate Rule of 40 metric.
Formula: Growth Rate + Profit Margin ≥ 40%
Example
result = rule_of_40(1.18, 0.01) round(result.value, 2) 1.19
Source code in src/startup_valuation/saas.py
saas_revenue_multiple_valuation(arr, multiple)
¶
Value a SaaS company using ARR multiple.
Formula: Valuation = ARR × Multiple
Example
result = saas_revenue_multiple_valuation(400_000_000, 23) result.value 9200000000.0