-
Notifications
You must be signed in to change notification settings - Fork 0
Core Methods
Textbook: Chapter 3 | Module:
startup_valuation.core| Last verified: 2026-08-11
- Scorecard Method ⬅ Complete 13-step derivation
- Berkus Method
- Risk Factor Summation
- VC Method
Derive the Scorecard Valuation Method for pre-revenue startups. By the end of this section, you will be able to:
- Compute a target valuation from an average regional valuation
- Apply factor weights and scores to adjust for startup-specific strengths and weaknesses
- Understand the assumptions behind the method
- Implement the calculation in Python
- Understanding of pre-money vs post-money valuation
- Basic algebra (weighted averages)
- Familiarity with the Glossary notation
| Symbol | Meaning | Units | Code Variable |
|---|---|---|---|
| Average pre-money valuation for comparable startups in the region | USD | average_valuation |
|
| Weight assigned to factor |
Dimensionless (sum = 1.0) | weights[i] |
|
| Score for factor |
Dimensionless | scores[i] |
|
| Number of factors (typically 7) | Count | len(weights) |
|
| Target valuation (output) | USD | result.value |
-
Average valuation is from comparable regional deals — The
$$V_{avg}$$ baseline is derived from actual funding rounds of similar-stage startups in the same geography and industry. - Scores are relative to average (1.0 = average): A score of 1.0 means the startup is average on that factor. Scores > 1.0 indicate above-average strength. Scores < 1.0 indicate below-average.
- Weights reflect factor importance for this stage: The seven standard factors (Team, Product, Market, etc.) are weighted according to their importance at the startup's current stage.
- Factors are independent: The method assumes additive independence — each factor contributes independently to the adjustment.
- Linear scaling: The valuation adjustment is linear with respect to the weighted score. No diminishing returns or interaction effects.
The Scorecard Method adjusts the average regional valuation by a weighted sum of factor scores:
Where
Source: Startup Valuation textbook, Chapter 3, Section 3.1, Formula 3.1.
Step 1 — Baseline. Start with the average pre-money valuation
Step 2 — Factor identification. Identify
| Factor | Typical Weight | Rationale |
|---|---|---|
| Team | 30% | The team's experience and track record are the strongest predictors of startup success |
| Product/Technology | 25% | Product maturity, IP protection, and technical differentiation |
| Market Size & Growth | 15% | Addressable market size and growth rate |
| Competitive Environment | 10% | Number and strength of competitors |
| Marketing/Sales | 10% | Go-to-market strategy and sales channels |
| Need for Additional Investment | 5% | Future capital requirements |
| Other Factors | 5% | Legal, regulatory, or other considerations |
Step 3 — Scoring. For each factor, assign a score
Scores typically range from 0.5 (significantly below average) to 2.0 (significantly above average).
Step 4 — Weighted score. Compute the weighted sum of scores:
This produces a single multiplier. A result of 1.0 means the startup is average across all factors (valuation =
Step 5 — Apply multiplier. Multiply the average valuation by the weighted score:
Check 1 — Weight normalization:
Check 2 — Score bounds: All
Check 3 — Multiplier range: For typical scores (0.5 to 2.0), the weighted score ranges from 0.5 to 2.0, meaning the valuation ranges from
The library implements this directly:
weighted_score = sum(w * s for w, s in zip(weights, scores))
valuation = average_valuation * weighted_scoreThis is the stable computational form — no numerical issues for typical inputs.
| Mathematical Step | Python Call | Source |
|---|---|---|
| Weight normalization check | abs(sum(weights) - 1.0) > 0.01 |
core.py:37 |
| Score-weights length check | len(weights) != len(scores) |
core.py:39 |
| Weighted sum | sum(w * s for w, s in zip(weights, scores)) |
core.py:42 |
| Final valuation | average_valuation * weighted_score |
core.py:43 |
Scenario: A pre-revenue SaaS startup in the Bay Area. Comparable startups in the region raise at an average pre-money valuation of $1,500,000.
| Factor | Weight | Score | Weighted Score |
|---|---|---|---|
| Team | 0.30 | 1.25 | 0.375 |
| Product | 0.25 | 1.50 | 0.375 |
| Market | 0.15 | 1.20 | 0.180 |
| Competition | 0.10 | 0.75 | 0.075 |
| Marketing | 0.10 | 1.00 | 0.100 |
| Funding Need | 0.05 | 0.90 | 0.045 |
| Other | 0.05 | 1.00 | 0.050 |
| Total | 1.00 | 1.200 |
The startup's target pre-money valuation is $1,800,000 — 20% above the regional average, driven primarily by a strong team (1.25) and superior product (1.50), partially offset by a weak competitive position (0.75).
Python verification:
from startup_valuation.core import scorecard_valuation
result = scorecard_valuation(
average_valuation=1_500_000,
weights=[0.30, 0.25, 0.15, 0.10, 0.10, 0.05, 0.05],
scores=[1.25, 1.50, 1.20, 0.75, 1.00, 0.90, 1.00],
)
print(f"${result.value:,.0f}") # $1,800,000-
Weight precision: Weights must sum to 1.0. A tolerance of ±0.01 is enforced. Inputs with sum outside this range raise
ValueError. - Score domain: Scores must be strictly positive. Zero or negative scores are undefined.
- No confidence interval: The method produces a point estimate. For probabilistic output, use Scenario Analysis or Monte Carlo simulation.
- Stage sensitivity: Factor weights change by startup stage (pre-seed weights differ from Series A weights). The method does not auto-adjust weights.
The textbook reports a target valuation of $1,800,000 for the example above. The library produces:
assert result.value == pytest.approx(1_800_000) # Exact match within toleranceThe library's test suite validates this against the textbook example (see tests/test_core.py:15-21).
- Textbook: Startup Valuation, Chapter 3, Section 3.1 — Scorecard Method
-
API:
scorecard_valuation() -
Source:
core.py:11-59 -
Test:
tests/test_core.py:15-21 - Next: Berkus Method | Advanced Methods
Full derivation coming in Phase 2. See API docs for the Python interface.
The Berkus Method assigns dollar values to five key risk-reduction milestones: Sound Idea, Prototype, Quality Management Team, Strategic Relationships, and Product Rollout/Sales. The valuation is the sum of the values achieved.
Full derivation coming in Phase 2. See API docs for the Python interface.
The Risk Factor Summation method starts with a baseline valuation and adjusts up or down for each of 12 risk factors.
Full derivation coming in Phase 2. See API docs for the Python interface.
The Venture Capital Method works backward from an expected exit value, discounting for the target return rate and accounting for dilution.
Startup Valuation Engine — MIT License
Version 1.0.2 | PyPI | GitHub
Textbook: Startup Valuation by Simon Mak
Report an issue | Contributing guide
Last synced from main repo: 2026-08-11
Start
Foundation
Core Valuation
- Core Methods ⬅ Start here for derivations
Advanced
Industry
Cross-Cutting
Learn & Apply
Reference
Contribute