diff --git a/CHANGELOG.md b/CHANGELOG.md index 053cfd1..41324ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,6 +31,17 @@ All notable changes to Investo are documented here. The format follows `investo.export` (`save_html`, `save_pdf`, `find_browser`, `html_to_pdf`). ### Changed +- **Quality-aware scoring — cash-rich, fairly-priced compounders are no longer under-rated.** The + valuation bucket was a pure cheapness screen (P/E · P/B · EV/EBITDA scored strictly + lower-is-better with hard ceilings), so a high-quality company at a fair premium lost almost the + whole bucket and a large net-cash balance sheet earned nothing. Now the multiple ceilings widen + quadratically with a four-signal **quality factor** (ROE, ROCE, operating margin, revenue+EPS-CAGR + growth); **net cash** is surfaced on `Ratios` (FX-normalized against market cap) and rewarded both + by lowering the effective equity multiple and by a signed term in the renamed **Balance Sheet** + bucket (which now also penalizes net debt); DCF is a 30% cross-check recentred so fair value scores + neutral; and the weights lean toward durable quality (Valuation 15→10, Profitability 15→17, + Competitive Moat 10→12, Balance Sheet 10→11). Rank order is preserved (Spearman ≈ 0.99 on a + synthetic basket) — the shift is targeted, not blanket inflation. - **`investo analyze` output flags now compose.** `--json`, `--html` and `--pdf` each do one thing and can be combined; previously `--html` silently suppressed `--json`. Bare `--html`/`--pdf` write `investo--.`; parent directories are created; a PDF-engine failure exits diff --git a/README.md b/README.md index 2a63429..fec2808 100644 --- a/README.md +++ b/README.md @@ -59,12 +59,18 @@ document rather than a dashboard — are available too. ### Rating buckets (out of 100) -| Growth | Profitability | Cash Flow | Debt | Valuation | Moat | Management | Industry | Innovation | Risk | ESG* | +| Growth | Profitability | Cash Flow | Balance Sheet | Valuation | Moat | Management | Industry | Innovation | Risk | ESG* | |:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:| -| 15 | 15 | 10 | 10 | 15 | 10 | 10 | 5 | 5 | 5 | 5* | +| 15 | 17 | 10 | 11 | 10 | 12 | 10 | 5 | 5 | 5 | 5* | \*ESG is optional; when unavailable the remaining buckets renormalize to 100. +**Valuation is quality-aware.** A premium multiple isn't punished when the company's economics +justify it — the acceptable P/E · P/B · EV/EBITDA ceilings widen with ROE, margins and growth, so a +proven compounder isn't floored just for not being cheap (while a low-quality expensive name still +is). **Net cash** strengthens the score — it lifts the Balance Sheet bucket and lowers the effective +equity multiple — and **net debt** weakens both. + --- ## Install