CAPM
startup_valuation.capm
¶
CAPM and risk-adjusted return calculations.
Chapter 2: Mathematical Foundations — Risk-Adjusted Discount Rates
Classes¶
Functions¶
capm(risk_free_rate, beta, market_return)
¶
Calculate expected return using CAPM.
Formula: E(Rᵢ) = Rf + βᵢ × (E(Rm) - Rf)
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
risk_free_rate
|
float
|
Risk-free rate (Rf). |
required |
beta
|
float
|
Beta of the asset (βᵢ). |
required |
market_return
|
float
|
Expected market return (E(Rm)). |
required |
Returns:
| Type | Description |
|---|---|
ValuationResult
|
ValuationResult with expected return. |
Example
result = capm(0.03, 1.5, 0.10) round(result.value, 4) 0.135
Source code in src/startup_valuation/capm.py
portfolio_beta(weights, betas)
¶
Calculate portfolio beta as weighted average.
Formula: βp = Σ wᵢ × βᵢ
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
weights
|
list[float]
|
Portfolio weights (wᵢ). |
required |
betas
|
list[float]
|
Individual asset betas (βᵢ). |
required |
Returns:
| Type | Description |
|---|---|
ValuationResult
|
ValuationResult with portfolio beta. |
Example
result = portfolio_beta([0.60, 0.40], [0.8, 1.2]) result.value 0.96
Source code in src/startup_valuation/capm.py
startup_adjusted_capm(risk_free_rate, beta, market_risk_premium, size_premium=0.0, startup_premium=0.0)
¶
Calculate startup-adjusted CAPM with additional risk premiums.
Formula: E(R) = Rf + β × MRP + Size Premium + Startup Premium
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
risk_free_rate
|
float
|
Risk-free rate. |
required |
beta
|
float
|
Beta of the startup. |
required |
market_risk_premium
|
float
|
Market risk premium. |
required |
size_premium
|
float
|
Additional premium for small company size. |
0.0
|
startup_premium
|
float
|
Additional premium for startup-specific risks. |
0.0
|
Returns:
| Type | Description |
|---|---|
ValuationResult
|
ValuationResult with adjusted expected return. |
Example
result = startup_adjusted_capm(0.04, 1.3, 0.07, 0.03, 0.10) round(result.value, 4) 0.261
Source code in src/startup_valuation/capm.py
portfolio_variance(weights, covariances)
¶
Calculate portfolio variance.
Formula: Var(Rp) = ΣΣ wᵢ × wⱼ × Cov(Rᵢ, Rⱼ)
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
weights
|
list[float]
|
Portfolio weights. |
required |
covariances
|
list[list[float]]
|
Covariance matrix. |
required |
Returns:
| Type | Description |
|---|---|
ValuationResult
|
ValuationResult with portfolio variance. |