The lenses
- Quality (price-agnostic) — is this a durable, well-run business? The share price is deliberately withheld from this lens, so a high score means “great business,” not “buy.” Its main job is to flag value traps.
- Value (price-conditional) — is the stock mispriced versus what the business deserves? A wonderful business at a full price scores low here. This is the lens that leads — mispricing is the edge.
- Sentiment (the tape / timing) — the non-fundamental pressure on the name. Not part of the score (see below) and no longer gates selection — it only informs timing and sizing.
Quality and Value each run −100 to +100 on their own.
The weights are assigned per stock
There’s no single weighting. Each company is classified into an archetype, and the archetype sets the Quality/Value split. Value leads wherever value is estimable; where value is speculative (a pre-profit or pure-narrative name with no earnings to anchor a fair value), the two sit at parity rather than burying quality — because there, quality is really balance-sheet survival. Quality never drops below 40% — it’s the value-trap filter.
| Archetype |
Quality |
Value |
Why |
| Mature earner |
45% |
55% |
Established earner — value is estimable and leads; quality guards against value traps. |
| Dividend / income |
45% |
55% |
Income payer — value leads; quality protects the payout’s durability. |
| High-growth (profitable) |
45% |
55% |
Profitable growth — value leads, but quality (is the growth durable?) keeps real weight. |
| Deep value / turnaround |
40% |
60% |
Cheapness is the thesis — value leads hardest; quality stays up as the trap filter. |
| Narrative / platform |
50% |
50% |
Story stock with no earnings to anchor value — quality (survival) and value sit at parity. |
| Pre-profit growth |
50% |
50% |
No profit yet — value is speculative, so quality (runway, dilution) holds parity. |
| Default (unclassified) |
45% |
55% |
Unclassified — value-led balanced split. |
Why sentiment isn’t in the score (yet)
A single point-in-time sentiment reading is genuinely ambiguous: a deeply negative tape on a good, cheap business could be a falling knife (keeps dropping) or the bottom (about to turn) — and the snapshot can’t tell which. Weighting that level would inject a number whose sign isn’t reliable, and (as of July 2026) using it as a veto was double-counting the price drop the Value lens already captures. What actually matters is the trajectory — sentiment turning from negative to positive on a name where Quality and Value are already there. We don’t track that history yet, so sentiment now stays out of selection entirely and acts only as timing (when to act) and sizing. The “is it actually cheap?” job that the veto used to approximate is now done directly by the Value floor below. A dedicated sentiment-trajectory engine is planned.
How the score is calculated
Each selection lens is multiplied by its weight, summed, and clamped to −100…+100. A worked example for a Mature earner (45% Quality / 55% Value):
Quality+81 × 45%+36.5
Value+75 × 55%+41.3
Compositeclamped −100…+100+78/100
Sentiment on this name is -40 (a headwind) — it doesn’t change the +78 and no longer holds the name back; it would only matter for timing and sizing.
From score to designation
- GemScore ≥ +35, quality intact, and genuinely cheap (Value ≥ +15) — a good entry for the next ~4 weeks.
- BounceMid-range, cheap but weak quality (Value > 0, Quality ≤ 0) — trade the rebound, don’t hold.
- WatchGreat business, but not cheap enough (Value below the +15 floor), or simply mid-range — wait for a better entry.
- LowScore ≤ -15 — weak composite, nothing aligned.
The Gem gates: a cheapness floor and a quality veto
Two hard gates sit on top of the score. First, the Value floor: to be a Gem a name must be genuinely mispriced — Value ≥ +15 — so a wonderful business trading near fair value is a Watch, not a Gem. Second, the quality veto: if Quality ≤ -40 (a broken business) the name is capped at Watch however strong the blend. Sentiment is no longer a gate (that veto was retired in July 2026) — it’s timing and sizing only.
What the board looks like right now
The two lenses sort our 100 analyzed names into four corners — live, so it shifts as the market and our reads move:
Gem16
Quality + · Value + — good business, cheap
Watch69
Quality + · Value − — good business, not cheap
Bounce1
Quality − · Value + — weak business, cheap
Low14
Quality − · Value − — weak business, not cheap
Live designations:
Gem 7
Bounce 1
Watch 61
Low 31
Those corners are by sign; the final tier also needs the score to clear its band, so not every name in the Gem corner is a Gem (the rest are mid-band Watch). Right now only 17 of 100 names screen as cheap (Value above 0) — a richly-valued market — so Gems and Bounces are both scarce. Bounce (cheap and a weak business) is the rarest corner: in a quality-screened universe the few cheap names are usually cheap-and-decent, so they land in the Gem corner instead.