An interactive, browser-only equity valuation dashboard for any ticker — dark, finance-terminal aesthetic, built with vanilla HTML/CSS/JS and Chart.js. No backend, no build step. Companion project to risk-command-center.
Live demo: https://nnd1106.github.io/valuation-command-center/
A two-stage discounted cash flow: revenue growth fades linearly from your Year-1 growth rate down to terminal growth over a 5-year explicit forecast, at a constant operating margin, with a simplified NOPAT→FCF conversion assumption (in place of a full capex/D&A/working-capital build the free data tier doesn't provide). Gordon-growth terminal value, WACC-discounted. Every input — growth, margin, tax rate, FCF conversion, WACC, terminal growth — is a slider; a "Suggest WACC from beta" button offers a CAPM cost-of-equity starting point. Includes a WACC × terminal-growth sensitivity heatmap and Bear/Base/Bull scenario presets.
The analyzed company's own P/E, P/B, and EV/EBITDA (derived from its price, EPS, book value/share, and EBITDA) against a manually-entered peer set you build yourself. A P/E-vs-EV/EBITDA scatter chart, and implied per-share values from applying peer median multiples to the company's own metrics.
The classic sell-side summary chart: a low-high range per valuation method (DCF spans the Bear-to-Bull scenario range; each relative-valuation method spans the 25th-75th percentile of the peer set), with the current trading price marked as a reference line.
Optional live data via Alpha Vantage's free tier — see below.
There's no hardcoded company. Type any ticker (AAPL, RELIANCE.BSE, INFY.NS, TCS.BSE, ...) and the dashboard displays in the right currency automatically — guessed from the ticker's exchange suffix, and overridden by the live-fetched currency when available (en-IN/en-US/en-GB/etc. locale formatting, so INR groups as lakh/crore and others group normally).
Auto-fills price, shares outstanding, and available financials via Alpha Vantage's free tier — free email signup, no credit card, no billing anywhere in this flow. Paste a key into the "Live Data Settings" tab and it activates.
Why opt-in rather than automatic, and why not more automatic:
- Yahoo Finance's public (no-signup) endpoint has no CORS headers (browsers block it) and is already rate-limited for shared IPs — confirmed directly before building anything.
- Public CORS-proxy workarounds are not dependable (tested at build time; not something to depend on).
- Alpha Vantage's free tier is the one option that supports being called directly from a browser (confirmed
Access-Control-Allow-Origin: *) with no card required — but like any real API, it needs a free account. - That free tier is strict: roughly 25 requests/day. Every field independently falls back to manual entry if unavailable — there is no all-or-nothing failure — and every ticker's result is cached for 24h, so re-loading the same ticker costs nothing. Fetching only ever happens on an explicit "Load ticker" / "Refresh" click, never on a timer.
- Alpha Vantage documents Indian-exchange coverage via a
.BSEsuffix, not the more common Yahoo-style.NS/.BO— this app auto-normalizesINFY.NS→ queriesINFY.BSE, and the live-status line always shows the exact symbol that was actually queried. Whether Alpha Vantage's free tier fully covers Indian large-cap fundamentals hasn't been confirmed end-to-end (only verifiable with a real key, which requires your own free signup) — if it doesn't, every field just falls back to manual entry, exactly as the app would for a ticker of no known currency at all.
No build step:
python -m http.server 8080
# then open http://localhost:8080Pure HTML/CSS/JS + Chart.js (via CDN). No frameworks, no bundler, no backend. Nothing here is investment advice.