Illustrative mock data. Set WORKER_URL in the script to your deployed Cloudflare Worker to pull live end-of-day figures. Nothing here is financial advice.
Factor weights
Buffett preset
Reset to balanced
How the score works: each share is percentile-ranked 0–100 against the others on every metric (P/E, volatility and D/E inverted, since lower is better). The four factor scores are then blended using your weights — Quality now combines ROE, gearing (D/E) and earnings consistency (Cons , 0–100: reliably profitable and smooth). Missing metrics (shown as —) are skipped, so a factor scores on whatever data it has. A score of 100 = best-in-list on your priorities — relative to this set only.
The Signal column is a research shortlist, not advice — and not a prediction of returns. A name is flagged Candidate only if it clears every gate: composite ≥ 70, earnings consistency ≥ 0.5, P/E ≤ 22, and 3-month return ≥ 0 — and isn't tripping the dividend-trap guard (yield > 7% while the 12-month return is negative). Watch = top-ranked but failing a gate or carrying that caution. Hover a badge for the per-check breakdown. It only narrows where to look; it doesn't replace your own judgement on the business and valuation, and it's only as reliable as the data and thresholds behind it (which haven't been backtested). Edit the SIGNAL values in the script to tune.