- Stack
- Python · FastAPI · Next.js · TypeScript
Problem
A single-point DCF hides how sensitive a valuation is to its inputs. Small changes in growth or discount rate move the answer a lot, and bad source data can silently produce a confident wrong number.
Approach
- Pulls a company's historical financials from SEC EDGAR, with Alpha Vantage and FRED for market and macro inputs.
- Projects revenue with a cohort-decay engine anchored to the company's own growth history.
- Discounts cash flows at a CAPM-derived cost of capital.
- Runs 5,000 Monte Carlo trials to produce a valuation distribution rather than a single figure.
- Reverse-DCF solves for the perpetual growth rate implied by the current market price.
Key decisions
- Validation runs before any calculation, so data inconsistencies are caught and flagged instead of flowing into the valuation.
- Edge cases are surfaced to the user rather than smoothed over, to prevent silent valuation errors.
- A FastAPI backend keeps the numerical work in Python; the Next.js front end only presents results.
Evidence
- 23 passing tests, run in CI on every push.
- MIT licence.
Status
Shipped and still being iterated on. The repository goes public shortly after this site launches.