Project
Valytics — Institutional Financial Analysis
Multi-stage DCF valuation with Monte Carlo simulation. Ratio analysis with DuPont decomposition. Comparable company analysis. Portfolio risk decomposition and efficient frontier optimization.
Problem
Most financial analysis tools are either expensive institutional platforms or simplistic calculators that lack depth. There is no accessible, production-grade platform that combines full financial statement analysis, multi-stage DCF with Monte Carlo simulation, comparable company analysis, and portfolio risk decomposition in a single interface.
Solution
A Rust-powered financial analysis engine that computes DuPont-ratio decomposition, multi-stage DCF with configurable assumptions and sensitivity tables, 10,000-iteration Monte Carlo simulations for fair value probability distributions, sector-based comparable company analysis, and portfolio risk metrics with factor decomposition and efficient frontier optimization — all exposed through a clean Next.js interface.
Architecture
Rust backend (Axum) performs all financial computation. Yahoo Finance, Financial Modeling Prep, and SEC EDGAR provide multi-source data with fallback. Monte Carlo runs in parallel via rayon. The Next.js frontend renders interactive Recharts visualizations. REST API enables third-party integration.
Implementation
// Multi-stage DCF with Monte Carlo simulation
pub fn compute_dcf(financials: &FinancialStatements, prices: &[f64], company: &Company) -> DCFValuation {
let assumptions = build_assumptions(financials, company);
let wacc = compute_wacc(&assumptions);
let projected_fcf = project_free_cash_flows(financials, &assumptions);
let terminal_value = compute_terminal_value(
projected_fcf.last().copied().unwrap_or(0.0),
wacc, assumptions.terminal_growth_rate
);
let enterprise_value = compute_enterprise_value(&projected_fcf, terminal_value, wacc);
let equity_value = enterprise_value - compute_net_debt(financials);
let fair_value_per_share = equity_value / assumptions.shares_outstanding;
let upside_pct = (fair_value_per_share / assumptions.current_price) - 1.0;
let monte_carlo_result = monte_carlo::run_dcf_simulation(&assumptions, financials);
DCFValuation { fair_value_per_share, current_price: assumptions.current_price, upside_pct, recommendation, projected_free_cash_flows, terminal_value, wacc, terminal_growth_rate, sensitivity_table, monte_carlo: Some(monte_carlo_result) }
}Vision
A financial analysis platform that gives individual investors, analysts, and founders the same analytical firepower as institutional desks — DCF, Monte Carlo, comparables, and portfolio risk — through a clean interface and a programmable API.