A
AXIOM
Featured ProjectFeb 2026 → Present

Honest equity valuation, in your browser.

A 10-year DCF. Multiples shown as labelled context. A factor model in research mode. Built around one rule: the headline number has to mean what it says.

Data:Yahoo Finance · fundamentals · 10-yr forward projection
axiom.app/dashboard

Why I built this

I wanted a DCF tool where I could read every assumption, change one, and watch the headline move.

Most retail valuation tools either hide the math behind a single fair-value number, or bury it in a spreadsheet that nobody actually opens. AXIOM is my attempt at the version I wanted to use — a clean DCF, multiples shown as context, and every magic number in the codebase written down in one place.

Walkthrough

Three moments. Ninety seconds.

Each moment captures one slice of the workflow. Watch them in sequence and you’ve seen the whole product.

01  /  03

Type a ticker. Get a fair value.

Enter any US ticker. AXIOM pulls fundamentals from Yahoo Finance, routes the company through one of 9 archetype frameworks (banks get P/B, REITs get P/FFO, mature businesses get a clean DCF), and projects 10 years forward. First lookup takes a few seconds; cached after that.

axiom.app/dashboard

02  /  03

A clean 10-year DCF. Every cell auditable.

One formula. No blending. The CAPM-derived WACC pulls credit spreads from a Damodaran-style table; terminal growth is capped below WACC. The same math drives the headline and the sensitivity table — change an input, the output recalculates live.

axiom.app/dcf/aapl

03  /  03

Comparables sit beside it — never folded in.

EV/EBITDA and P/E live next to the DCF as labelled context. Peer tickers link to their Yahoo Finance pages so the comp set is verifiable. Drag a multiple slider to stress the comp — the DCF headline stays put. The two views never blend into one number.

axiom.app/comps/aapl

Architecture

How a ticker becomes a fair value.

Six stages. The DCF produces the headline. Comparables sit beside it as context. The factor model is in research mode — IC and t-stat are being measured walk-forward in monitor.py, not yet a user-facing signal.

Yahoo Finance

Fundamentals + price

Archetype Router

9 frameworks

Clean DCF

CAPM + credit spreads

Comp Multiples

54-tag table

Factor Model

Research mode

Fair Value

Bear / Base / Bull

Methodology

Five rules.

01

The headline number means what it says.

The fair value at the top of the page is a DCF output. Multiples are shown next to it as context, never blended in. No silent re-weighting.

02

Every assumption is written down.

A HARDCODED_VALUES.md file inventories every hand-set constant in the codebase, alongside a phased plan to migrate them to live peer-comp estimates. The known unknowns are documented.

03

Different businesses get different math.

A 9-archetype router (FINANCIAL, GROWTH, MATURE, CYCLICAL, HIGH_CAPEX, HYPER_GROWTH, TURNAROUND, DISTRESSED, STABLE_GROWTH) selects the formula. A 54-tag sub-sector table calibrates the multiples used for context.

04

The factor model is in research mode.

A V/M/Q (value/momentum/quality) Z-scoring layer exists, but it isn't the headline. Its skill is being measured via Information Coefficient + quintile hit rates over walk-forward horizons in monitor.py — not yet shipped as a user-facing signal.

05

Built and shipped by one person.

Flask + PostgreSQL + Python on the back end, vanilla JS on the front. yfinance for data. Limitations come with the territory — see "what this isn't" below.

Stack

PythonFlaskPostgreSQLyfinanceCAPM + credit-spread WACC9-archetype router54-tag multiplier tableV/M/Q factor model (research)IC · walk-forward monitor

What this isn’t (yet)

Honest limits.

01 · Data

Fundamentals come from yfinance — free, but rate-limited and occasionally stale. Some balance-sheet ratios returned by yfinance have unit inconsistencies; ratios known to be unreliable (ROE, ROIC, D/E, Altman Z) are currently hidden from the UI rather than shown wrong.

02 · Hardcoded constants

Sub-sector multiples and a few WACC inputs are still hand-set. Every one of them lives in HARDCODED_VALUES.md with a phased plan to replace them with live peer-comp computation.

03 · Factor model

The V/M/Q factor signal is in research mode. IC and t-stat tracking are wired up in ml/monitor.py, but the model isn’t shown to end users as a recommendation yet.

04 · Coverage

US-listed equities only. International tickers, ADRs without US listings, and derivatives are out of scope. Banks and REITs use simpler P/B and P/FFO models — no full DCF for those archetypes.

05 · Not investment advice

The fair value depends on the assumptions. Change one input and the headline changes. AXIOM is a tool for thinking through valuation, not a recommendation engine.

06 · Built solo

One person, learning in public. There are bugs. There are rough edges. The point is the methodology and the willingness to write down what’s actually under the hood.

The math is in the repo. So are the limitations.

Every assumption is logged. Every formula is in Python you can read. The magic numbers have a file with their names on it.