Skip to content

divyansh1920/FinModel-Pro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


███████╗██╗███╗   ██╗███╗   ███╗ ██████╗ ██████╗ ███████╗██╗         ██████╗ ██████╗  ██████╗
██╔════╝██║████╗  ██║████╗ ████║██╔═══██╗██╔══██╗██╔════╝██║         ██╔══██╗██╔══██╗██╔═══██╗
█████╗  ██║██╔██╗ ██║██╔████╔██║██║   ██║██║  ██║█████╗  ██║         ██████╔╝██████╔╝██║   ██║
██╔══╝  ██║██║╚██╗██║██║╚██╔╝██║██║   ██║██║  ██║██╔══╝  ██║         ██╔═══╝ ██╔══██╗██║   ██║
██║     ██║██║ ╚████║██║ ╚═╝ ██║╚██████╔╝██████╔╝███████╗███████╗    ██║     ██║  ██║╚██████╔╝
╚═╝     ╚═╝╚═╝  ╚═══╝╚═╝     ╚═╝ ╚═════╝ ╚═════╝ ╚══════╝╚══════╝    ╚═╝     ╚═╝  ╚═╝ ╚═════╝

Institutional-Grade Financial Modelling · Built for the Next Generation of Analysts


MIT License HTML5 CSS3 JavaScript Chart.js

Stars Forks Issues PRs Welcome


🚀 Live Demo  ·  📖 Documentation  ·  🐛 Report Bug  ·  💡 Request Feature




🏦 What is FinModel Pro?

"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.



✨ The Complete Toolkit — 14 Models & Features


┌───────────────────────────────────────────────────────────────────────────────────┐
│                                                                                   │
│   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


🎯 Who Is This For?


  🎓 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.


⚡ Quick Start

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.



📐 Formula Reference

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.



🏗️ Architecture

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 =====


🎨 Design System

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


🔥 Features At a Glance


⚡ 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.


📊 Model Deep Dives


📊 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) × 100

The 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 (code style)
  • 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)ᵗ


🛠️ Tech Stack

┌──────────────────────────────────────────────────┐
│  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.


🗺️ Roadmap

  • 🔗 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


🤝 Contributing

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 Request

Areas 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:

  1. All new models must follow the existing code structure and CSS design system
  2. Every new input field must have an oninput handler — no static outputs
  3. Every formula must be cited and documented in the formula reference panel
  4. Outputs must never display NaN, Infinity, or undefined
  5. Test that the file works by double-clicking it (no server required)


📜 License

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.



⚠️ Disclaimer

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.


🙏 Acknowledgements



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.


Star History Chart


Built with obsession for finance education.
Made open-source so anyone can think like an analyst.

↑ Back to Top

Releases

No releases published

Packages

 
 
 

Languages