███████╗██╗███╗ ██╗███╗ ███╗ ██████╗ ██████╗ ███████╗██╗ ██████╗ ██████╗ ██████╗
██╔════╝██║████╗ ██║████╗ ████║██╔═══██╗██╔══██╗██╔════╝██║ ██╔══██╗██╔══██╗██╔═══██╗
█████╗ ██║██╔██╗ ██║██╔████╔██║██║ ██║██║ ██║█████╗ ██║ ██████╔╝██████╔╝██║ ██║
██╔══╝ ██║██║╚██╗██║██║╚██╔╝██║██║ ██║██║ ██║██╔══╝ ██║ ██╔═══╝ ██╔══██╗██║ ██║
██║ ██║██║ ╚████║██║ ╚═╝ ██║╚██████╔╝██████╔╝███████╗███████╗ ██║ ██║ ██║╚██████╔╝
╚═╝ ╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚══════╝╚══════╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝
🚀 Live Demo · 📖 Documentation · 🐛 Report Bug · 💡 Request Feature
"The exact analytical framework used in analyst training programs at top investment banks — now open source."
FinModel Pro is a fully self-contained, single-file financial modelling toolkit that runs directly in your browser — no server, no installations, no subscriptions. Just download the HTML file and double-click.
Built for students, aspiring analysts, and finance professionals who want to learn financial modelling the way it's actually done at firms like Goldman Sachs, JPMorgan, Morgan Stanley, BlackRock, Lazard, and Evercore — by working with real models, not watching videos.
Every model is live and automated — enter your assumptions and every output recalculates instantly.
┌───────────────────────────────────────────────────────────────────────────────────┐
│ │
│ VALUATION CORPORATE FINANCE MARKETS & CREDIT │
│ ───────────────────── ────────────────── ────────────────── │
│ 📊 DCF Valuation Model 💼 3-Statement Model 📈 Bond Valuation │
│ · Perpetuity Growth 📉 Financial Forecasting 📋 Ratio Dashboard │
│ · Exit Multiple 🔀 M&A Accretion/Dilution 🎯 Sensitivity Table │
│ │
│ 🏢 Comps Analysis (CCA) 🔒 LBO Model 🗺️ Football Field │
│ ⚖️ WACC Calculator 🏛️ IPO Valuation 📚 Formula Glossary │
│ │
└───────────────────────────────────────────────────────────────────────────────────┘
| # | Model | What it does | Used in |
|---|---|---|---|
| 01 | DCF — Perpetuity Growth | Projects FCFF and discounts via Gordon Growth terminal value | Equity Research · IB |
| 02 | DCF — Exit Multiple | DCF with EV/EBITDA-based terminal value method | Equity Research · IB |
| 03 | 3-Statement Model | Integrated IS, BS, CFS with balance check | IB · Corp Finance |
| 04 | Comparable Company Analysis | Live peer multiples table with valuation band | Equity Research · ECM |
| 05 | WACC Calculator | CAPM-based cost of equity + tax-adjusted debt, full build | All valuation work |
| 06 | Sensitivity Analysis | 5×5 heat-mapped matrix: WACC vs growth rate / exit multiple | All DCF work |
| 07 | Financial Forecasting | Revenue, EBITDA, FCF projections with NWC mechanics | Corp Finance · PE |
| 08 | LBO Model | Full debt schedule, cash sweep, MOIC & IRR (Newton-Raphson) | Private Equity |
| 09 | M&A Accretion/Dilution | EPS impact of deal structure, synergies, and financing | M&A · IB |
| 10 | Ratio Analysis Dashboard | 20+ ratios across 5 categories with benchmark scoring | Credit · ER |
| 11 | IPO Valuation Model | ECM pricing via peer multiples, IPO discount, float analysis | ECM · IB |
| 12 | Bond Valuation | Price, YTM, duration, convexity, DV01, price-yield curve | Fixed Income |
| 13 | Football Field Comparator | CSS-built pitch-book valuation range chart | IB · Pitchbooks |
| 14 | Formula Glossary | 80+ searchable terms with formulas, definitions, and examples | Learning |
🎓 STUDENTS 📊 ASPIRING ANALYSTS 🏆 PROFESSIONALS
───────────────────── ───────────────────── ──────────────────────
Preparing for finance Breaking into IB, PE, Quick modelling on the
placements and or Equity Research. go. A clean, fast tool
internship interviews. Learn the exact way for sanity-checking
Build models used in it's done on the desk. valuations anywhere.
actual analyst tests. Not theory. Practice. No Excel needed.
It literally could not be easier:
# Option 1 — Clone and open
git clone https://github.com/divyansh1920/FinModel-Pro.git
cd FinModel-Pro
open FinModel-Pro.html # macOS
# OR
start FinModel-Pro.html # Windows
# OR
xdg-open FinModel-Pro.html # Linux# Option 2 — Just download the file
# Click "FinModel-Pro.html" in this repo → Download → Double-click
# That's it. No npm. No server. No setup.✅ Works in Chrome, Firefox, Safari, and Edge. ✅ No internet connection required after download (except Google Fonts). ✅ All your inputs are auto-saved to localStorage between sessions.
Every model uses institutional-standard formulas. Here's a snapshot:
DCF — Free Cash Flow to Firm
FCFF = NOPAT + D&A − CapEx − ΔNWC
= [EBIT × (1 − t)] + D&A − CapEx − ΔNWC
DCF — Terminal Value (Perpetuity Growth)
TV = FCFF₅ × (1 + g)
─────────────────
WACC − g
WACC — Weighted Average Cost of Capital
WACC = (E/V × Ke) + (D/V × Kd × (1 − t))
where:
Ke = Rf + β × ERP [CAPM]
Kd = Pre-Tax Cost of Debt
E/V = Equity / (Equity + Debt)
LBO — Internal Rate of Return
0 = Σ CFₜ / (1 + IRR)ᵗ [solved via Newton-Raphson]
t=0
MOIC = Exit Equity Value / Entry Equity Contribution
Bond — Price & Duration
Price = Σ C / (1+y)ᵗ + F / (1+y)ᴺ
t=1
Macaulay Duration = Σ [t × PV(CFₜ)] / Price
Modified Duration = Macaulay Duration / (1 + y/n)
DV01 = Modified Duration × Price × 0.0001
M&A — EPS Accretion / Dilution
Pro-Forma NI = Acquirer NI + Target NI + Synergies − Financing Cost − Fees
Pro-Forma EPS = Pro-Forma NI / Pro-Forma Shares Outstanding
Accretion/(Dilution) = Pro-Forma EPS − Standalone EPS
📚 All 80+ formulas are documented inside the Formula Glossary page of the app itself.
FinModel-Pro.html
│
├── <head>
│ ├── Google Fonts (Inter + Playfair Display)
│ ├── Chart.js CDN
│ └── <style> — Complete design system (CSS variables, components, dark mode)
│
├── <body>
│ ├── <nav> — Fixed navigation bar (14 pages)
│ ├── #page-home — Landing page
│ ├── #page-dcf — DCF Valuation (2 methods)
│ ├── #page-3statement — 3-Statement Model
│ ├── #page-comps — Comparable Company Analysis
│ ├── #page-wacc — WACC Calculator
│ ├── #page-sensitivity — Sensitivity Analysis
│ ├── #page-forecast — Financial Forecasting
│ ├── #page-lbo — LBO Model
│ ├── #page-merger — M&A Model
│ ├── #page-ratios — Ratio Dashboard
│ ├── #page-ipo — IPO Valuation
│ ├── #page-bond — Bond Valuation
│ ├── #page-compare — Football Field Chart
│ └── #page-glossary — Formula Glossary (80+ terms)
│
└── <script>
├── // ===== PAGE NAVIGATION & TRANSITIONS =====
├── // ===== CHART REGISTRY (destroy/redraw on nav) =====
├── // ===== GLOBAL ASSUMPTIONS ENGINE =====
├── // ===== LOCALSTORAGE PERSISTENCE =====
├── // ===== DARK MODE & UNIT TOGGLE =====
├── // ===== SANITY CHECK ALERT ENGINE =====
├── // ===== DCF CALCULATIONS =====
├── // ===== 3-STATEMENT CALCULATIONS =====
├── // ===== COMPS CALCULATIONS =====
├── // ===== WACC CALCULATIONS =====
├── // ===== SENSITIVITY CALCULATIONS =====
├── // ===== FORECAST CALCULATIONS =====
├── // ===== LBO + IRR (Newton-Raphson) =====
├── // ===== M&A CALCULATIONS =====
├── // ===== RATIO CALCULATIONS =====
├── // ===== IPO CALCULATIONS =====
├── // ===== BOND VALUATION + YTM SOLVER =====
├── // ===== FOOTBALL FIELD CSS POSITIONING =====
└── // ===== GLOSSARY SEARCH ENGINE =====
Colors Typography
────────────────────── ────────────────────────────────
Background #F8F9FC Headings Playfair Display (serif)
Surface #FFFFFF Body Inter (400, 500, 600, 700)
Navy #0A1628 ████ Mono Courier New (formulas)
Gold #C9A84C ████
Green #16A34A ████
Amber #D97706 ████
Red #DC2626 ████
Border #E2E8F0
Muted #64748B
⚡ LIVE AUTOMATION Every output recalculates on every keystroke. No submit buttons.
🧮 VERIFIED FORMULAS Institutional-standard formulas across all 14 models.
Documented on every page. Cross-referenced in glossary.
🚨 SANITY CHECK ALERTS Live model health checks flag impossible inputs:
"Terminal growth > WACC", "Negative EV", "Leverage > 7x EBITDA"
🐻 BEAR / BASE / BULL Scenario analysis panels on DCF, LBO, and Forecast pages.
Three simultaneous calculations. Upside/downside auto-generated.
🎯 SENSITIVITY TABLES 5×5 heat-mapped matrices with automatic color gradients.
Base case cell highlighted in gold. N/M cells for invalid inputs.
🏈 FOOTBALL FIELD CHART Pure CSS pitch-book valuation range chart.
Current price marker, methodology color coding, auto-commentary.
📊 10 CHART.JS CHARTS Waterfall, bar, line, radar, scatter, dual-axis.
All destroyed and redrawn on page navigation. Zero canvas conflicts.
💾 LOCALSTORAGE SAVE All inputs saved automatically between sessions.
"Inputs restored" banner on return. Never lose your work.
🌙 DARK MODE Full dark mode toggle. CSS variable swap. State persisted.
📏 UNIT TOGGLE Switch between $M and $B globally across all pages instantly.
🖨️ PRINT TO PDF Every page has a print stylesheet. Clean PDF output.
Inputs hidden. Outputs formatted for pitch-book style printing.
📋 COPY TO CLIPBOARD One-click copy on every hero metric card.
ℹ️ ANALYST TOOLTIPS Every input field has a hover tooltip with analyst guidance.
Benchmark ranges, typical values, sourcing notes.
🔍 SEARCHABLE GLOSSARY 80+ terms. Real-time search filtering. Category tabs.
Definition + Formula + Example + "Used in" model links.
📍 PROGRESS TRACKER Floating card tracks which models you've explored.
localStorage-based. Gold trophy when all 14 completed.
⚙️ GLOBAL ASSUMPTIONS Set Rf, ERP, Tax Rate once. Auto-fills matching fields globally.
📊 DCF Valuation Model
Two methods in one page — toggle between them with a single click.
Perpetuity Growth Method (Gordon Growth Model)
- Input: 5-year revenue projections, EBIT margin, D&A, CapEx, NWC, WACC, terminal growth rate
- Output: FCFF per year, PV of FCFFs, Terminal Value, PV of TV, Enterprise Value, Equity Value, Implied Share Price
- Formula:
TV = FCFF₅ × (1 + g) / (WACC − g)
Exit Multiple Method
- Same structure, terminal value via
TV = EBITDA Year 5 × Exit EV/EBITDA Multiple - Method comparison card shown when both tabs are completed: Price variance in $ and %
Bear / Base / Bull Scenarios
- Three independent scenario columns with their own WACC and g/multiple inputs
- All three implied prices calculated simultaneously
- Auto-commentary: "Base: $XX. Bear downside: −XX%. Bull upside: +XX%"
Sanity Checks (live)
- ⚠ Terminal growth rate exceeds WACC
- ⚠ Terminal Value > 90% of EV
- ⚠ All FCFFs are negative
🔒 LBO Model
The core private equity analytical framework — fully automated.
Inputs: Entry EBITDA, entry multiple, debt tranches (Senior Secured, Senior Unsecured, Sub Debt — each with leverage multiple and interest rate), 5-year operating assumptions, exit year, exit multiple.
Auto-Built Outputs:
- Sources & Uses table with balance check
- Full debt schedule with mandatory amortization and cash sweep waterfall (senior-first priority)
- Operating model (Revenue, EBITDA, FCF) for Years 1–5
- MOIC and IRR (solved via Newton-Raphson iteration)
// IRR via Newton-Raphson — implemented in pure JS
function calcIRR(cashflows) {
let rate = 0.20;
for (let i = 0; i < 1000; i++) {
let npv = 0, dnpv = 0;
cashflows.forEach((cf, t) => {
npv += cf / Math.pow(1 + rate, t);
dnpv -= t * cf / Math.pow(1 + rate, t + 1);
});
const newRate = rate - npv / dnpv;
if (Math.abs(newRate - rate) < 1e-8) break;
rate = newRate;
}
return isFinite(rate) ? rate : null;
}Return Benchmarks (color-coded)
- MOIC > 3.0x = green | 2.0–3.0x = amber | < 2.0x = red
- IRR > 25% = green | 20–25% = amber | < 20% = red
🗺️ Football Field Chart
The most iconic output in investment banking — built entirely in pure CSS (no canvas, no library).
How it works: User enters low/high implied values from each methodology (DCF, Comps, LBO, IPO, Analyst Targets). The chart renders as CSS div elements with left and width calculated as percentages of the total range.
barLeftPct = ((methodLow − globalMin) / totalRange) × 100
barWidthPct = ((methodHigh − methodLow) / totalRange) × 100
priceLine = ((currentPrice − globalMin) / totalRange) × 100The current market price renders as a vertical red line crossing all methodology bars — exactly as it appears in pitch books.
Auto-generated commentary (JS string interpolation):
"Across all methodologies, [Company] implies an equity value range of $XX to $XX per share. The stock currently trades at $XX, representing XX% upside to the median implied value of $XX."
📚 Formula Glossary — 80+ Terms
A searchable reference page covering every term used across the toolkit.
5 Categories: Valuation · Accounting · Credit/Fixed Income · Returns · Markets
Each term card includes:
- Plain-English definition (analyst voice, not textbook)
- Formula in monospace (
codestyle) - Real-world example
- "Used in:" badge with a direct link to the relevant model
Real-time search — filters all cards on every keystroke. Zero lag. Zero page reload.
Sample entries:
| Term | Formula |
|---|---|
| FCFF | NOPAT + D&A − CapEx − ΔNWC |
| Modified Duration | Macaulay Duration / (1 + YTM/n) |
| ROIC | EBIT × (1−t) / (Debt + Equity) |
| Cash Conversion Cycle | DSO + DIO − DPO |
| IRR | Solve: NPV = 0 = Σ CFₜ / (1+IRR)ᵗ |
┌──────────────────────────────────────────────────┐
│ Single .html file · ~5,000 lines · ~180KB │
│ │
│ HTML5 ── Structure & semantics │
│ CSS3 ── Design system, dark mode, │
│ animations, print styles, │
│ CSS football field chart │
│ Vanilla JS ── All calculation logic, │
│ page routing, localStorage, │
│ Newton-Raphson IRR/YTM │
│ Chart.js ── 10 charts (CDN only) │
│ Google ── Inter + Playfair Display │
│ Fonts (CDN, graceful fallback) │
└──────────────────────────────────────────────────┘
Zero dependencies beyond two CDN links.
No npm. No build step. No server. No framework.
- 🔗 Export to Excel — Generate .xlsx from model outputs via SheetJS
- 🌐 Live Data Feed — Pull stock prices and financials via public APIs
- 📱 Mobile Layout — Responsive redesign for tablet use
- 🎓 Tutorial Mode — Guided walkthrough for each model with sample data
- 💬 Model Commentary — AI-generated analyst note for each completed model
- 🔁 Precedent Transactions Model — M&A deal database and transaction comps
- 📉 Monte Carlo Simulation — DCF with probability distributions
- 📁 Multi-Company Mode — Save and switch between different company analyses
- 🌍 Multi-Currency Support — Currency selector affecting all formatting
- 🔄 Import from CSV — Paste financial data directly from Excel or Bloomberg
Contributions are what make this project better. Any help is genuinely appreciated.
# Fork the repo, then:
git checkout -b feature/your-model-name
# Make your changes to FinModel-Pro.html
git commit -m 'feat: add [model name] with live calculations'
git push origin feature/your-model-name
# Open a Pull RequestAreas where contributions are especially welcome:
- 🐛 Formula bug fixes (cite your source — Damodaran, Berk & DeMarzo, etc.)
- 📊 New model additions (Precedent Transactions, DDM, Sum-of-the-Parts)
- 🎨 UI/UX improvements
- 📱 Mobile responsiveness
- 📚 Glossary term additions
- 🧪 Real-world test cases with known outputs
Contribution Guidelines:
- All new models must follow the existing code structure and CSS design system
- Every new input field must have an
oninputhandler — no static outputs - Every formula must be cited and documented in the formula reference panel
- Outputs must never display
NaN,Infinity, orundefined - Test that the file works by double-clicking it (no server required)
MIT License
Copyright (c) 2024 FinModel Pro
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software...
See LICENSE for the full text.
FinModel Pro is designed for educational purposes only.
The models, formulas, and outputs provided in this toolkit are illustrative
and should not be used as the sole basis for any investment decision.
Financial modelling involves significant assumptions and judgement. Always
verify outputs independently and consult a qualified financial professional
before making investment decisions.
This project is not affiliated with Goldman Sachs, JPMorgan Chase, Morgan
Stanley, BlackRock, or any other financial institution mentioned in the
documentation. Institutional references are for educational context only.
- Damodaran Online — The gold standard for valuation data and teaching
- Chart.js — Beautiful, performant JavaScript charting
- Google Fonts — Inter & Playfair Display
- Breaking Into Wall Street — The IB training framework that inspired this
- Wall Street Prep — For setting the benchmark on what practical modelling education looks like
If FinModel Pro helped you land an internship, pass an interview, or understand a concept — drop a ⭐ on the repo. It genuinely means a lot.
Built with obsession for finance education.
Made open-source so anyone can think like an analyst.