Comparables Module¶
??? example "pe_ratio"
from startup_valuation.comparables import pe_ratio
result = pe_ratio(market_cap=1_000_000_000, net_income=100_000_000)
print(f"P/E ratio: {result.value:.1f}x") # 10.0x
??? example "ps_ratio"
from startup_valuation.comparables import ps_ratio
result = ps_ratio(market_cap=500_000_000, revenue=50_000_000)
print(f"P/S ratio: {result.value:.1f}x") # 10.0x
??? example "ev_ebitda"
from startup_valuation.comparables import ev_ebitda
result = ev_ebitda(enterprise_value=1_000_000_000, ebitda=150_000_000)
print(f"EV/EBITDA: {result.value:.1f}x") # 6.7x
??? example "ev_revenue"
from startup_valuation.comparables import ev_revenue
result = ev_revenue(enterprise_value=500_000_000, revenue=50_000_000)
print(f"EV/Revenue: {result.value:.1f}x") # 10.0x
??? example "regression_adjusted_multiple"
from startup_valuation.comparables import regression_adjusted_multiple
result = regression_adjusted_multiple(
intercept=5.0, growth_rate=0.30, growth_coefficient=10.0,
market_maturity=0.5, maturity_coefficient=-2.0,
)
print(f"Adjusted multiple: {result.value:.1f}x") # 7.0x
??? example "target_valuation_multiple"
from startup_valuation.comparables import target_valuation_multiple
result = target_valuation_multiple(multiple=8.0, metric=50_000_000)
print(f"Valuation: ${result.value:,.0f}") # $400,000,000
startup_valuation.comparables
¶
Market comparables and regression-adjusted multiples.
Chapter 5: Market Comparables
Classes¶
Functions¶
pe_ratio(market_cap, net_income)
¶
Calculate P/E ratio.
Formula: P/E = Market Cap / Net Income
Source code in src/startup_valuation/comparables.py
ps_ratio(market_cap, revenue)
¶
Calculate P/S ratio.
Formula: P/S = Market Cap / Revenue
Example
result = ps_ratio(500_000_000, 100_000_000) result.value 5.0
Source code in src/startup_valuation/comparables.py
ev_ebitda(enterprise_value, ebitda)
¶
Calculate EV/EBITDA ratio.
Formula: EV/EBITDA = Enterprise Value / EBITDA
Source code in src/startup_valuation/comparables.py
ev_revenue(enterprise_value, revenue)
¶
Calculate EV/Revenue ratio.
Source code in src/startup_valuation/comparables.py
regression_adjusted_multiple(intercept, growth_rate, growth_coefficient, market_maturity=0, maturity_coefficient=0, stage=0, stage_coefficient=0, geography=0, geography_coefficient=0)
¶
Calculate regression-adjusted valuation multiple.
Formula: Multiple = β₀ + β₁×g + β₂×M + β₃×S + β₄×G + ε
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
intercept
|
float
|
Base multiple (β₀). |
required |
growth_rate
|
float
|
Revenue growth rate (g). |
required |
growth_coefficient
|
float
|
Coefficient for growth (β₁). |
required |
market_maturity
|
float
|
Market maturity indicator (M). |
0
|
maturity_coefficient
|
float
|
Coefficient for maturity (β₂). |
0
|
stage
|
float
|
Company stage indicator (S). |
0
|
stage_coefficient
|
float
|
Coefficient for stage (β₃). |
0
|
geography
|
float
|
Geography indicator (G). |
0
|
geography_coefficient
|
float
|
Coefficient for geography (β₄). |
0
|
Returns:
| Type | Description |
|---|---|
ValuationResult
|
ValuationResult with adjusted multiple. |
Example
result = regression_adjusted_multiple(2.5, 0.30, 10, 1, 0.5, 0, -1.5, 0, -0.2) result.value 6.0
Source code in src/startup_valuation/comparables.py
target_valuation_multiple(multiple, metric)
¶
Calculate target valuation using a comparable multiple.
Formula: Valuation = Multiple × Metric
Example
result = target_valuation_multiple(5.5, 8_000_000) result.value 44000000.0