Financial Model Builder
Builds structured financial models including revenue forecasts, pricing tools, DCF valuations, LBO models, scenario analyses, and SaaS cohort metrics.
When to Use This Skill
- - Building 3-statement models (P&L, Balance Sheet, Cash Flow)
- Creating SaaS revenue models (MRR, ARR, churn, LTV/CAC)
- DCF (Discounted Cash Flow) valuation analysis with WACC
- Unit economics and pricing sensitivity analysis
- LBO (Leveraged Buyout) models for investment banking
- Budget vs. actuals tracking spreadsheets
- Break-even analysis and contribution margin models
- Cohort analysis and revenue forecasting
Core Workflow
- 1. Define scope — Identify model type, time horizon (monthly/quarterly/annual), and key drivers
- Build assumptions tab — All inputs in one clearly labeled sheet; color-code inputs (blue) vs. formulas (black)
- Build calculation layers — Revenue model → cost model → P&L → cash flow → balance sheet
- Add scenarios — Base / bull / bear cases with a scenario toggle (data validation dropdown)
- Sensitivity tables — Two-variable data tables for key metrics (e.g., price × volume → revenue)
- Dashboard — Summary sheet with KPIs, charts, and scenario outputs
- Validate — Balance sheet must balance; cash flow must reconcile; check for circular refs
Standard Model Structure (Excel Tabs)
| Tab | Contents |
|---|
| INLINECODE0 | All input variables with labels, units, and sources |
| INLINECODE1 |
Revenue build-up by segment/product/channel |
|
OpEx | COGS, gross margin, operating expenses |
|
P&L | Income statement (3-5 years monthly or annual) |
|
Cash Flow | Operating, investing, financing cash flows |
|
Balance Sheet | Assets, liabilities, equity (if full 3-statement) |
|
DCF | WACC, FCF projections, terminal value, EV bridge |
|
LBO | Sources & uses, debt schedule, returns summary |
|
Scenarios | Scenario toggle and outputs |
|
Sensitivity | Data tables for key variable combinations |
|
Cohort | MRR cohort waterfall, NRR, GRR |
|
Dashboard | Charts, KPI summary, executive view |
Key Formula Patterns
CODEBLOCK0
SaaS Metrics Checklist
- - MRR / ARR growth rate
- Net Revenue Retention (NRR)
- Gross Revenue Retention (GRR)
- CAC (by channel)
- LTV and LTV/CAC ratio
- Churn rate (logo and revenue)
- Payback period
- Rule of 40 (growth rate + FCF margin)
Output
Deliver as .xlsx file with all tabs labeled. Include a README tab explaining assumptions and how to use the scenario toggle. Flag any assumptions that need client input with [INPUT NEEDED] in yellow highlight.
DCF Model (Discounted Cash Flow)
WACC Calculation
Formula: WACC = (E/V) × Re + (D/V) × Rd × (1 − T)
| Variable | Meaning | Source |
|---|
| E | Market value of equity | Market cap or comparable |
| D |
Market value of debt | Balance sheet + adjustments |
| V | E + D (total capital) | Calculated |
| Re | Cost of equity (CAPM) | Rf + β × ERP |
| Rd | Cost of debt (pre-tax) | Weighted avg interest rate |
| T | Marginal tax rate | Company / jurisdiction rate |
CAPM for cost of equity:
CODEBLOCK1
Excel formulas (Assumptions tab → referenced in DCF tab):
CODEBLOCK2
Free Cash Flow (FCF) Build
CODEBLOCK3
Excel FCF row structure (columns = projection years):
CODEBLOCK4
Terminal Value
Always show both methods and reconcile:
Gordon Growth Model (GGM):
CODEBLOCK5
Exit Multiple Method:
CODEBLOCK6
Enterprise Value → Equity Value Bridge
CODEBLOCK7
Flag: if TV > 80% of EV, projection period is too short — extend to 5–10 years.
Python DCF Model
CODEBLOCK8
Sensitivity Analysis
Two-Variable Data Table (Excel)
Test how an output changes when two inputs vary simultaneously.
Setup:
CODEBLOCK9
Standard sensitivity ranges:
CODEBLOCK10
Conditional formatting for tables:
CODEBLOCK11
One-Variable Data Table
CODEBLOCK12
Tornado Chart (Python)
Rank variables by their impact range (high output − low output) to show what moves the needle most.
CODEBLOCK13
Scenario Modeling
Named Range Scenario Toggle
CODEBLOCK14
OFFSET-based Switching
CODEBLOCK15
Python Scenario Runner
CODEBLOCK16
LBO Model (Leveraged Buyout)
Sources & Uses of Funds
CODEBLOCK17
Excel formulas:
CODEBLOCK18
Debt Schedule
CODEBLOCK19
Returns Analysis
CODEBLOCK20
Benchmark targets: MOIC ≥ 2.5×, IRR ≥ 20%, hold period 3–7 years, leverage ≤ 6–7× EBITDA.
Python LBO Model
CODEBLOCK21
Revenue Forecasting & Cohort Analysis
MRR Waterfall (SaaS)
CODEBLOCK22
Excel MRR waterfall formulas:
CODEBLOCK23
Cohort Analysis Pattern
Cohort = all customers acquired in the same period.
CODEBLOCK24
Excel cohort grid (diagonal offset pattern):
CODEBLOCK25
Python Cohort Builder
CODEBLOCK26
SaaS Unit Economics
CODEBLOCK27
Excel / Python Interoperability
Build Excel Model with openpyxl
CODEBLOCK28
Read Excel into Pandas
CODEBLOCK29
Validation & Error Checking
Balance Sheet Balance Check
CODEBLOCK30
Cash Flow Reconciliation
CODEBLOCK31
Python Validation Suite
CODEBLOCK32
Common Model Errors
| Error | Detection | Fix |
|---|
| Circular reference | Excel warning on open | Reference prior-period NWC, not current |
| Hard-coded values in formulas |
Ctrl+~ formula audit | Move all inputs to Assumptions tab |
| TV > 80% of EV |
tv_pct_ev flag | Extend projection to 5–10 years |
| NWC includes non-cash items | Manual review | Exclude D&A, impairments from ΔNWC |
| IRR with multiple sign changes | MIRR check |
=MIRR(flows, reinvest_rate, finance_rate) |
| LBO leverage > 7× | Leverage check cell | Reduce debt quantum or increase equity |
| BS doesn't balance | Balance check cell | Trace retained earnings / equity roll |
财务模型构建器
构建结构化财务模型,包括收入预测、定价工具、DCF估值、LBO模型、情景分析和SaaS群组指标。
何时使用此技能
- - 构建三表模型(利润表、资产负债表、现金流量表)
- 创建SaaS收入模型(MRR、ARR、流失率、LTV/CAC)
- 使用WACC进行DCF(贴现现金流)估值分析
- 单位经济模型和定价敏感性分析
- 投资银行LBO(杠杆收购)模型
- 预算与实际跟踪电子表格
- 盈亏平衡分析和边际贡献模型
- 群组分析和收入预测
核心工作流程
- 1. 定义范围 — 确定模型类型、时间跨度(月度/季度/年度)和关键驱动因素
- 构建假设表 — 所有输入集中在一个标注清晰的表格中;输入值用蓝色标记,公式用黑色标记
- 构建计算层级 — 收入模型 → 成本模型 → 利润表 → 现金流量表 → 资产负债表
- 添加情景 — 基准/乐观/悲观情景,使用情景切换(数据验证下拉菜单)
- 敏感性表格 — 关键指标的双变量数据表(例如,价格 × 数量 → 收入)
- 仪表盘 — 包含KPI、图表和情景输出的汇总表
- 验证 — 资产负债表必须平衡;现金流量表必须对账;检查循环引用
标准模型结构(Excel标签页)
| 标签页 | 内容 |
|---|
| 假设 | 所有输入变量,包含标签、单位和来源 |
| 收入 |
按细分市场/产品/渠道的收入构建 |
| 运营支出 | 销售成本、毛利率、运营费用 |
| 利润表 | 损益表(3-5年,月度或年度) |
| 现金流量表 | 经营、投资、融资现金流 |
| 资产负债表 | 资产、负债、权益(如果是完整三表模型) |
| DCF | WACC、FCF预测、终值、企业价值桥接 |
| LBO | 资金来源与用途、债务时间表、回报汇总 |
| 情景 | 情景切换和输出 |
| 敏感性 | 关键变量组合的数据表 |
| 群组 | MRR群组瀑布图、NRR、GRR |
| 仪表盘 | 图表、KPI汇总、管理层视图 |
关键公式模式
excel
复合增长
=B5*(1+$B$2)^(COLUMN()-COLUMN($B5))
LTV/CAC
=B
ARPU / BChurnRate / B_CAC
NPV
=NPV(贴现率, 现金流范围)
IRR
=IRR(现金流范围)
情景切换(命名范围scenario)
=IF(scenario=bull, bull
value, IF(scenario=bear, bearvalue, base_value))
SaaS指标检查清单
- - MRR / ARR增长率
- 净收入留存率(NRR)
- 毛收入留存率(GRR)
- CAC(按渠道)
- LTV和LTV/CAC比率
- 流失率(客户和收入)
- 回收期
- 40法则(增长率 + FCF利润率)
输出
交付为包含所有标签页的.xlsx文件。包含一个README标签页,解释假设和使用情景切换的方法。用黄色高亮标记需要客户输入的假设,标注[需要输入]。
DCF模型(贴现现金流)
WACC计算
公式: WACC = (E/V) × Re + (D/V) × Rd × (1 − T)
债务市场价值 | 资产负债表 + 调整项 |
| V | E + D(总资本) | 计算得出 |
| Re | 股权成本(CAPM) | Rf + β × ERP |
| Rd | 债务成本(税前) | 加权平均利率 |
| T | 边际税率 | 公司/司法管辖区税率 |
股权成本的CAPM模型:
Re = Rf + β × ERP
Rf = 无风险利率(10年期国债收益率)
β = 杠杆贝塔(来自可比公司;为目标资本结构去杠杆/再杠杆)
ERP = 股权风险溢价(通常为4.5–6.5%)
Excel公式(假设表 → 在DCF表中引用):
excel
股权成本(CAPM)
=Risk
FreeRate + Beta * Equity
RiskPremium
去杠杆贝塔(剥离当前资本结构)
=Levered
Beta / (1 + (1 - TaxRate) * (Debt
Value / EquityValue))
在目标资本结构下再杠杆贝塔
=Unlevered
Beta (1 + (1 - TaxRate) Target
DE_Ratio)
WACC
=(Equity
Value / (EquityValue + Debt
Value) * CostOf_Equity)
+ (Debt
Value / (EquityValue + Debt
Value) CostOfDebt (1 - TaxRate))
自由现金流(FCF)构建
EBIT
× (1 − 税率) → NOPAT(税后净营业利润)
+ D&A → 加回非现金费用
− CapEx → 资本支出
− Δ净营运资本 → 净营运资本增加 = 现金流出
= 无杠杆自由现金流
Excel FCF行结构(列 = 预测年份):
excel
EBIT: =Revenue - COGS - OpEx - DA
NOPAT: =EBIT * (1 - Tax_Rate)
加回D&A: =DA_row
减去CapEx: =-CapEx_row
减去ΔNWC: =-(NWCrow - OFFSET(NWCrow, 0, -1))
FCF: =NOPAT + DA - CapEx - ΔNWC
贴现因子: =1 / (1 + WACC) ^ period_number
FCF现值: =FCFrow * Discountfactor_row
终值
始终展示两种方法并进行对账:
戈登增长模型(GGM):
excel
终期FCF(最后一个预测年份之后的一年)
=FCF
finalyear * (1 + Terminal
GrowthRate)
终值
=Terminal
FCF / (WACC - TerminalGrowth_Rate)
终值现值
=Terminal
Value / (1 + WACC) ^ projectionyears
退出倍数法:
excel
终期EBITDA × 倍数
=EBITDA
finalyear * Exit
EBITDAMultiple
终值现值
=Exit
MultipleTV / (1 + WACC) ^ projection_years
企业价值 → 股权价值桥接
excel
企业价值
=SUM(PV
FCFrange) + PV
TerminalValue
净债务
=Total
Debt + PreferredStock + Minority
Interest - Cash - MarketableSecurities
股权价值(内在价值)
=Enterprise
Value - NetDebt
隐含股价
=Equity
Value / DilutedShares_Outstanding
隐含EV/EBITDA合理性检查
=Enterprise
Value / LTMEBITDA
标记:如果TV > EV的80%,预测期过短 — 延长至5–10年。
Python DCF模型
python
import numpy as np
def build_dcf(
revenue: list[float], # 每年预测收入
ebit_margins: list[float], # 每年EBIT利润率
da_pct: float, # D&A占收入百分比
capex_pct: float, # CapEx占收入百分比
nwc_pct: float, # NWC占收入百分比
tax_rate: float,
wacc: float,
terminal_growth: float,
exit_multiple: float, # EBITDA退出倍数
net_debt: float,
shares_outstanding: float,
) -> dict:
years = len(revenue)
fcf = []
for i, rev in enumerate(revenue):
ebit = rev * ebit_margins[i]
nopat = ebit * (1 - tax_rate)
da = rev * da_pct
capex = rev * capex_pct
prev_rev = revenue[i - 1] if i > 0 else rev
deltanwc = (rev - prevrev) * nwc_pct
fcf.append(nopat + da - capex - delta_nwc)
discount_factors = [1 / (1 + wacc) (i + 1