Comprehensive LBO Model for Financial Analysis
A sophisticated Python-based LBO model featuring covenant tracking, sensitivity analysis, Monte Carlo simulation, and professional PDF reporting with organized output management.
pip install -r requirements.txt
Command Line:
cd src/modules
python orchestrator_advanced.pyInteractive Web App:
streamlit run streamlit_app.py
All analysis files are automatically saved to the output/ folder:
- PDF Report: Comprehensive analysis document
- Charts: Professional visualizations and analysis charts
- Console: Detailed financial metrics and results
- Interactive App: Real-time assumption testing and live covenant tracking
- IRR: ~11β13% | MOIC: Γγ°γ€ | Hold: 5 years
- Leverage (lease-adjusted): ~60β65% of EV at entry
- Covenants: Net Debt/EBITDA β€ Γγ°γ€ (default), ICR β₯ Γγ°γ€ (default) β both configurable in
data/accor_assumptions.csv - IFRS-16: Lease-in-debt; lease interest included in ICR; lease liability included in net debt at exit
- Working capital: days-based (AR/AP/deferred revenue)
- Sensitivity Analysis: IRR vs Terminal EBITDA Margin (Β±400 bps) and Exit Multiple (Γγ°γ€)
- Monte Carlo: 400 scenarios (configurable), with printed priors and success rule: Ο(growth)=Β±150 bps, Ο(margin)=Β±200 bps, Ο(multiple)=Γγ°γ€; success = no covenant breach + positive exit equity + IRR β₯ 8%
- Deterministic Stress: Named downside with four outputs (IRR, trough ICR, max ND/EBITDA, Breach Y/N)
- Equity Cash-Flow Vector: IRR computed from the exact equity vector printed in the PDF
- Comprehensive PDF reports with executive summary
- Professional chart generation (covenant tracking, exit bridge, deleveraging path)
- Sources & Uses waterfall analysis
- Exit equity bridge visualization
- Interactive Streamlit app for real-time scenario analysis
lbo-stack/
βββ src/modules/
β βββ orchestrator_advanced.py # Main LBO model
β βββ lbo_model.py # Core financial modeling
β βββ fund_waterfall.py # Fund economics and waterfall
βββ data/
β βββ accor_assumptions.csv # Model assumptions
β βββ accor_historical_recreated.csv # Historical financial data
βββ output/ # Generated analysis outputs
β βββ accor_lbo_enhanced.pdf # Comprehensive analysis report
β βββ covenant_headroom.png # Covenant compliance tracking
β βββ deleveraging_path.png # Debt reduction visualization
β βββ exit_equity_bridge.png # Exit value waterfall chart
β βββ monte_carlo.png # Monte Carlo simulation results
β βββ sensitivity_heatmap.png # Sensitivity analysis heatmap
β βββ sources_uses.png # Sources & uses of funds
βββ streamlit_app.py # Interactive web application
βββ requirements.txt # Python dependencies
βββ README.md # This documentation
Comprehensive analysis document containing:
- Executive summary with key metrics
- Detailed equity cash flow vector analysis
- Embedded charts and visualizations
- Monte Carlo simulation summary
- Sensitivity analysis results table
Visual tracking of covenant compliance throughout the investment period:
- Net Debt/EBITDA ratio vs covenant threshold
- Interest Coverage Ratio (ICR) vs minimum requirement
- Color-coded compliance indicators
Debt reduction visualization showing:
- Total debt outstanding over time
- Annual debt paydown amounts
- EBITDA growth trajectory
- Net leverage ratio evolution
Exit value waterfall chart displaying:
- Enterprise value at exit
- Less: Outstanding debt
- Transaction costs and fees
- Net proceeds to equity investors
Monte Carlo simulation results featuring:
- IRR distribution histogram
- Success rate analysis
- P10/P50/P90 percentile markers
- Risk assessment metrics
Two-dimensional sensitivity analysis showing:
- IRR sensitivity to Terminal EBITDA Margin (Β±400 bps) and Exit Multiple (Γγ°γ€) assumptions
- Color-coded heat map for visual impact assessment
- Base case positioning within scenario range
Sources and uses of funds at transaction entry:
- Equity contribution breakdown
- Debt facilities sizing
- Transaction costs allocation
- Total use of funds summary
Professional Streamlit application featuring:
- Real-time assumption testing: Adjust entry/exit multiples, leverage, covenants
- Live covenant monitoring: Watch ICR and Net Debt/EBITDA move with assumptions
- Interactive Monte Carlo: Configure scenarios (100/200/400) with reproducible seeds
- One-click PDF generation: Produces the exact same report as CLI version
- Professional KPI dashboard: IRR, MOIC, covenant status with visual indicators
Edit data/accor_assumptions.csv to modify:
- Revenue growth assumptions
- EBITDA margin projections
- Entry/exit multiples
- Debt structure and pricing
- Covenant levels (defaults: Net Debt/EBITDA β€ Γγ°γ€, ICR β₯ Γγ°γ€)
Sample Results (from run: 2025εΉ΄08ζ13ζ₯, seed=42)
- Entry Multiple: Γγ°γ€ | Exit Multiple: Γγ°γ€
- Target Leverage (lease-adjusted): ~60β65% of EV
- Max Net Debt/EBITDA (observed): Γγ°γ€ vs covenant Γγ°γ€
- Min ICR (observed): Γγ°γ€ vs covenant Γγ°γ€
- Covenant Status: Compliant (no breaches)
Monte Carlo (N=400, seed=42)
- Success Rate: ~70β80%
- Median IRR: ~12β13%
- P10βP90: ~9β17%
- Success rule: no covenant breach + positive exit equity + IRR β₯ 8%
- Lease-adjusted leverage and explicit covenants with headroom charts
- Sources & Uses, Exit Equity Bridge, Deleveraging Walk embedded in the PDF
- Equity cash-flow vector printed and reconciled to IRR
- Reproducible: one command regenerates the exact PDF; RNG seed pinned
- Unit tests for IRR monotonicity and equity-vector reconciliation
- Interactive Streamlit app for live scenario testing and covenant monitoring
- Python 3.11+ compatible
- Pandas/NumPy for financial modeling
- Matplotlib for professional charts with Agg backend
- FPDF2 for PDF generation
- Organized output management with dedicated folder structure
MIT License - See LICENSE file for details