Independent equity research
Fair-value models, quantitative scores, a volatility map of the whole market and an 89-filter screener across 9,618 US-listed stocks and ETFs.
Research and education — not investment advice. Scores and fair values are model output.
Every contour is interpolated from actual 30-day realised volatility, annualised — no synthetic noise, nothing smoothed for looks. Ridges are where the market is moving; basins are where it isn't.
Every filter maps to a stored column. Put a floor under return on equity and a ceiling on P/E and the result set actually changes — no chips that light up and do nothing. Valuation, growth, profitability, leverage, liquidity, technicals and fund attributes, sortable by any of them.
| Ticker | Score | Price | Chg | P/E | To fair value |
|---|---|---|---|---|---|
| NVDA | 225.73 | -2.01% | 28.4 | -36.6% | |
| MSFT | 493.95 | -1.15% | 27.4 | -19.2% | |
| GOOGL | 338.36 | -0.03% | 16.7 | -39.0% | |
| META | 613.48 | -0.53% | 22.8 | -51.2% | |
| AMZN | 256.97 | -0.60% | 20.4 | +42.2% | |
| AAPL | 316.22 | -1.17% | 36.1 | -12.8% |
A golden cross is an event — the 50-day average crossing above the 200-day within the last 15 sessions — not the standing state of one being above the other. That distinction is why this number is 244 and not eight thousand.
Six overlays the analyze view draws, on real tickers where they actually fire. These are not pictures of the charts — they are the charts: the same TradingView Lightweight Charts v5.0.7 the stock page runs, with the same options, the same candle and volume colours, and detection output from the app's own code on bars through 9 September 2026.
Overlays are computed on the bars in front of you when the page opens, so what you see matches the window you're looking at. Each panel names its parameters, and a level nobody can source doesn't get drawn.
Daily candles with the volume histogram on its own scale — the analyze view as it opens
Volume is a separate price scale pinned to the lower 18% of the pane, so a heavy session never rescales the price it belongs to.
SMA 20 / 50 / 200, computed over full history rather than the visible window
A 65-bar window cannot produce a 200-day average. These are computed on the full series and then clipped to the view, which is why the 200-day line reaches the left edge instead of starting two thirds of the way in.
20-period SMA with the 1σ, 2σ and 3σ envelopes filled and the mid dashed
Live signal: bollinger_w_bottom, forming — a lower low in price that held above the lower band. Forming, not fired; the app labels the difference.
Double bottom, 113-bar scope, 65% confidence — forming, not triggered
The raw measured move is the 171.26 pattern height on the 691.52 neckline — 862.78. The app publishes 820.96, that move cut to 80%. It discounts its own target and says by how much.
Decayed support and resistance bands, plus the point of control
Band opacity is the level’s strength, and the 275.62 band carries a flip marker because it used to be resistance. Long-horizon bands are drawn at half weight so a year-old level cannot shout as loudly as last month’s.
Separate panes, as the app stacks them — RSI(14) Wilder, MACD 12/26/9
Both are off by default. The RSI states its smoothing convention on the page, because a Wilder RSI and a simple-average RSI disagree by several points on the same bars.
Two tickers, because an overlay that isn't firing shouldn't be illustrated with one that is. Apple's pattern detector returns nothing nameable right now — no double bottom, no triangle — so the pattern panel is Meta. It does carry a forming channel up, which is what the report below builds on. These previews are static: on the stock page the crosshair reads out OHLC and every moving-average value under the cursor.
The overlays above are what the chart draws. This is what the engine writes underneath them — structure, pattern, indicators and trigger on one spine, the valuation beside it, and a confluence paragraph that names what argues against the move as readily as what argues for it.
Most tools draw a line where price bounced once. This is the whole field of where the market transacted, decayed in turnover time rather than calendar time.
Every band below names the layers that produced it, how many times price touched it, how long ago, and whether it used to be the other thing. Nothing is drawn that can't answer those questions.
The invalidation isn't a round number someone picked — it is the 300.86 support band above, the strongest short-horizon level in the field. Reward-to-risk on that pair is 2.81, and the tool prints the ratio rather than only the upside.
Two setups, and the tool publishes the bad one too. The anchored-VWAP entry sits 18 cents above its own stop, so its reward-to-risk is 0.09 — a ratio that says don't. Filtering it out would have made the screen look better and the research worse.
Research and education. Not investment advice, and not a recommendation to buy or sell anything.
| Level | Role | Touches | Last touch | Built from | History |
|---|---|---|---|---|---|
| $344.44 | ▼ resistance | 3 | 29 bars | pivots · extreme · round | resistance |
| $316.92 | ▼ resistance | 6 | 13 bars | pivots · volume · round | resistance |
| $300.86 | ▲ support | 8 | 19 bars | pivots · volume · round | mixed |
| $275.62 | ▲ support | 14 | 52 bars | pivots · volume | flipped from resistance |
| $225.92 | ▲ support | 14 | 250 bars | pivots · volume · extreme | mixed |
Method is published, not hand-waved: pivot clustering after Osler (2000, 2003) and Kavajecz & Odders-White (2004), decayed volume-at-price after Grinblatt & Han (2005), anchoring at the 52-week extremes after George & Hwang (2004) and at round numbers after Donaldson & Kim (1993).
Median one-month return by sector across all 5,885 covered stocks — the median, not a cap-weighted index, so one mega-cap can't carry a sector.
Apple scores 69 out of 100, the model puts fair value 13.9% below the price — and the verdict still reads fairly valued, because the band that separates "expensive" from "overvalued" widens with how much the models disagree.
The three panels below are the stock page's own, rendered from its own markup and its own output for AAPL on 10 September 2026.
Distress and quality screens with published thresholds — Altman Z above 2.99 is the safe zone, Piotroski counts nine binary tests and shows the count, not a grade. Where a component is missing the tile reads a dash rather than a number.
Two opinions, kept apart. The street's $339.35 is 8.5% above the price; our own model is 13.9% below it. Neither is blended into the other, and the $245-to-$400 spread is drawn so you can see how little agreement sits behind the average. Five models can apply — DCF, multi-stage DCF, earnings power, revenue multiple, EV/EBITDA, P/B, dividend discount — one is selected per company and the panel names which. When the applicable models disagree badly the uncertainty tier rises and the overvalued threshold moves with it, which is why 13.9% above fair value still reads fairly valued.
Revenue, margins, earnings, cash flow, dividends and share count — annual and quarterly, straight from the statements. All eight cards for Apple below, drawn by the stock page's own chart code on the stock page's own data.
Every card opens full-screen with the full history the plan allows, and the axis is left alone: the one red bar on Earnings surprise is a real 2.6% miss in February 2023, and Apple's June-2026 quarter is the last one that has reported — the unreported quarter after it is absent rather than drawn as a zero.
Twelve assets with the same chart engine, the same indicators and the same honesty about what a partial bar means — the 30-day change below is measured to the last complete daily bar, never a half-formed one.
| Asset | Last close | 30-day | Basis |
|---|---|---|---|
| BTC | $78,447.11 | ▲ +21.0% | Bitcoin · last complete daily bar |
| ETH | $2,485.02 | ▲ +30.2% | Ethereum · last complete daily bar |
| SOL | $103.37 | ▲ +35.6% | Solana · last complete daily bar |
| XRP | $1.42 | ▲ +37.7% | XRP · last complete daily bar |
| DOGE | $0.09 | ▲ +30.1% | Dogecoin · last complete daily bar |
Our universe is 13,452 securities. That number alone would mislead you, so here it is broken out.
| Instrument | Count | Quant score | Fair value | What you get |
|---|---|---|---|---|
| Stocks | 5,885 | All 5,885 | 2,794 | Score, sub-scores, fair value where a model qualifies, full technicals |
| ETFs | 3,733 | Not scored | Not valued | Holdings, expense ratio, AUM, sector mix, technicals. An equity score on a fund would be meaningless, so we don't publish one |
| Mutual funds | 3,834 | Not scored | Not valued | Quotes and profile only. These don't trade on an exchange, so we don't count them as listed securities |
Fair value covers 2,794 of 5,885 stocks because the rest don't clear the model's own sanity gate. Those pages read not valued — never a placeholder number.
Where a value is missing the page says "not reported" or "not valued" and never fills the gap with a default.
Scores, values, indicators and patterns are computed from stored market and filing data. Commentary, where it appears, is labelled as commentary.
Prices are stored daily closes refreshed each session, not a live feed, and the page tells you which session you're reading.
No buy or sell ratings, no targets of our own, no personalised guidance. The tool measures; what you do with it is yours.
A quant score on all 5,885 US-listed stocks, a fair value on 2,794 of them, and a methodology page that matches the code.
Free during beta. No card required.