Skip to content

Valuation · Shipped, iterating

Lumina Engine

A valuation engine for public equities that returns a distribution of fair values instead of one number, and tells you what growth the current price already assumes.

5,000 trials23 testsCIMIT licenceRepo public soon
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.

Contact

Say hello.

Happy to talk about systems, markets, or what we're building at Forma Labs.