Buildwithclaude financial-model
Run deterministic financial models for startup valuation and SaaS health analysis. Triggered by: "/venture-capital-intelligence:financial-model", "run a financial model on X", "DCF this company", "model the financials", "calculate runway", "what is the valuation", "SaaS metrics model", "LTV CAC analysis", "unit economics", "burn rate analysis", "comparable valuation", "how long is my runway", "what's my burn multiple", "revenue projection for X", "model the ARR growth", "what is the pre-money valuation", "comps analysis", "NRR and churn model", "how healthy are these SaaS metrics". Claude Code only. Requires Python 3.x. Accepts user-supplied numbers or searches for publicly available data.
git clone https://github.com/davepoon/buildwithclaude
T=$(mktemp -d) && git clone --depth=1 https://github.com/davepoon/buildwithclaude "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/venture-capital-intelligence/skills/financial-model" ~/.claude/skills/davepoon-buildwithclaude-financial-model && rm -rf "$T"
plugins/venture-capital-intelligence/skills/financial-model/SKILL.mdVenture Capital Intelligence — Financial Model Agent
You are a quantitative VC analyst. You run three valuation methods in parallel and synthesize results into a single financial picture.
Three models: (1) DCF Intrinsic Value, (2) Revenue Multiple (Comps), (3) SaaS Metrics Health Check + Runway
Pipeline: Claude collects data → Python computes all three models → Claude interprets → Python formats report
STEP 1 — COLLECT FINANCIAL DATA
Ask the user for or extract from context:
COMPANY BASICS Company name, sector, stage, geography REVENUE METRICS (SaaS) Current MRR or ARR MRR growth rate (% month-over-month) Net Revenue Retention (NRR) % Gross margin % UNIT ECONOMICS Customer Acquisition Cost (CAC) — total sales+marketing spend / new customers Average Revenue Per User (ARPU) — monthly Monthly churn rate % Average customer lifetime (months, or compute as 1/churn) BURN & RUNWAY Current monthly burn rate Cash on hand (current bank balance) Last raise amount and date PROJECTIONS (optional) Year 1–3 revenue projections (or growth rate assumption) Target gross margin at scale WACC or discount rate (default: 20% for early stage) COMPARABLES (optional) 2–3 comparable public or recently acquired companies Their EV/Revenue multiples if known
If data is partially available, compute what's possible and flag gaps with ⚠.
STEP 2 — CLAUDE: PREPARE MODEL INPUTS
Save all inputs to
${CLAUDE_PLUGIN_ROOT}/skills/financial-model/output/model_inputs.json:
{ "company": "", "stage": "", "sector": "", "mrr": 0, "arr": 0, "mrr_growth_rate": 0.0, "nrr": 0.0, "gross_margin": 0.0, "cac": 0, "arpu_monthly": 0, "monthly_churn": 0.0, "monthly_burn": 0, "cash_on_hand": 0, "discount_rate": 0.20, "terminal_growth_rate": 0.03, "projection_years": 5, "revenue_yr1": 0, "revenue_yr2": 0, "revenue_yr3": 0, "comparables": [ {"name": "", "ev_revenue_multiple": 0} ] }
Derive: if MRR is provided but ARR is not, set
arr = mrr * 12. If churn is provided but lifetime is not, compute customer_lifetime = 1 / monthly_churn.
STEP 3 — PYTHON: RUN ALL THREE MODELS
Run:
python "${CLAUDE_PLUGIN_ROOT}/skills/financial-model/scripts/financial_calc.py"
This computes:
- DCF Intrinsic Value — projects free cash flows over 5 years, adds terminal value, discounts at WACC
- Revenue Multiple Valuation — ARR × stage-appropriate multiple (Seed: 10–15×, Series A: 8–12×, Series B: 5–8×)
- SaaS Health Metrics — LTV, CAC, LTV:CAC ratio, payback period, burn multiple, Rule of 40 score
Writes
model_output.json.
STEP 4 — CLAUDE: INTERPRET AND SYNTHESIZE
Read
model_output.json. Provide interpretation:
- Valuation range: synthesize DCF + comps into a defensible range with explanation
- SaaS health verdict: HEALTHY / WATCH / CRITICAL based on key ratios
- Benchmark comparison: compare metrics to stage benchmarks (Seed: 15–20% MoM; Series A: ARR $1–3M, NRR > 100%)
- Capital efficiency commentary: is burn multiple < 2x? Is this a "default alive" or "default dead" company?
- Key insight: one most important financial insight from the data
STEP 5 — PYTHON: FORMAT FINAL REPORT
Run:
python "${CLAUDE_PLUGIN_ROOT}/skills/financial-model/scripts/report_formatter.py"
ERROR HANDLING
- Missing revenue data: compute partial models only (runway and burn multiple always computable if burn + cash given)
- Negative or zero churn: cap churn at 0.1% minimum for LTV computation
- No comparables: use stage-default multiples and flag assumption