Biotech Module¶
??? example "rnPV"
from startup_valuation.biotech import rnPV
result = rnPV(
cash_flows=[0, 0, 50_000_000, 100_000_000],
probabilities=[1.0, 0.60, 0.30, 0.15],
discount_rate=0.12,
)
print(f"rNPV: ${result.value:,.0f}")
??? example "decision_tree_ev"
from startup_valuation.biotech import decision_tree_ev
result = decision_tree_ev(
probabilities=[0.60, 0.40, 0.20],
terminal_value=500_000_000,
)
print(f"Decision tree EV: ${result.value:,.0f}") # $24,000,000
??? example "peak_sales"
from startup_valuation.biotech import peak_sales
result = peak_sales(
patient_population=1_000_000, penetration=0.10,
price=10_000, compliance=0.80,
)
print(f"Peak sales: ${result.value:,.0f}") # $800,000,000
??? example "pipeline_valuation"
from startup_valuation.biotech import pipeline_valuation
drugs = [
{"peak_sales": 500_000_000, "multiple": 3, "p_success": 0.10, "years_to_peak": 8},
{"peak_sales": 200_000_000, "multiple": 2, "p_success": 0.30, "years_to_peak": 5},
]
result = pipeline_valuation(drugs, discount_rate=0.12)
print(f"Pipeline value: ${result.value:,.0f}")
??? example "overall_success_probability"
from startup_valuation.biotech import overall_success_probability
result = overall_success_probability([0.60, 0.40, 0.20])
print(f"Overall success: {result.value:.2%}") # 4.80%
startup_valuation.biotech
¶
Biotech and pharmaceutical valuation methods.
Chapter 11: Industry-Specific Valuation Frameworks — Biotech
Classes¶
Functions¶
rnPV(cash_flows, probabilities, discount_rate, development_costs=0)
¶
Calculate risk-adjusted NPV for biotech.
Formula: rNPV = Σ[P_success × CFₜ / (1+r)ᵗ] - Development Costs
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
cash_flows
|
list[float]
|
Cash flows at each period. |
required |
probabilities
|
list[float]
|
Cumulative probability of success at each period. |
required |
discount_rate
|
float
|
Discount rate. |
required |
development_costs
|
float
|
Remaining development costs. |
0
|
Returns:
| Type | Description |
|---|---|
ValuationResult
|
ValuationResult with rNPV. |
Source code in src/startup_valuation/biotech.py
decision_tree_ev(probabilities, terminal_value)
¶
Calculate expected value from decision tree.
Formula: EV = Π pᵢ × Terminal Value
Example
result = decision_tree_ev([0.35, 0.60, 0.90], 500_000_000) result.value 94500000.0
Source code in src/startup_valuation/biotech.py
peak_sales(patient_population, penetration_rate, price, compliance_rate=1.0)
¶
Calculate peak sales for a drug.
Formula: Peak Sales = Population × Penetration × Price × Compliance
Example
result = peak_sales(50_000, 0.40, 150_000, 0.90) result.value 2700000000.0
Source code in src/startup_valuation/biotech.py
pipeline_valuation(drugs, discount_rate)
¶
Value a biotech pipeline.
Formula: V = Σ(Peak Sales × Multiple × P_success) / (1+r)ⁿ
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
drugs
|
list[dict[str, float]]
|
List of dicts with keys: peak_sales, multiple, p_success, years_to_peak. |
required |
discount_rate
|
float
|
Discount rate. |
required |
Returns:
| Type | Description |
|---|---|
ValuationResult
|
ValuationResult with pipeline value. |
Example
drugs = [{"peak_sales": 2_000_000_000, "multiple": 5, "p_success": 0.60, "years_to_peak": 2}] result = pipeline_valuation(drugs, 0.12) round(result.value / 1_000_000_000, 2) 4.78
Source code in src/startup_valuation/biotech.py
overall_success_probability(stage_probabilities)
¶
Calculate overall probability of success across all stages.
Formula: P_total = Π P_stage
Example
result = overall_success_probability([0.35, 0.60, 0.90]) round(result.value, 4) 0.189