Pattern clusters — when the portfolio is telling you something.
Most signals fire on a single ticker. The pattern-cluster banner does the opposite: it stays silent until multiple tickers in your portfolio show the same micro-signal simultaneously. Two tickers with news bullish but institutional flow neutral. Three tickers in framework EXIT state at once. OBV rising on three positions with volume confirmed. Individual signals are noise; coincident signals across the portfolio are a story. This lesson covers the five cluster types, why each threshold is what it is, and when to act vs ignore.
The five clusters
| Cluster | Threshold | What it signals |
|---|---|---|
| News-tape divergence | ≥ 2 tickers | News sentiment bullish (Point 5 ≥ 7), live whale module reads neutral. Common during retail-driven rallies — institutional positioning hasn't confirmed |
| OBV-rising + vol-confirmed | ≥ 2 tickers | OBV rising AND volume ratio > 1.2× on 2+ names at once. Price-and-volume agreement at the math layer (not direct institutional flow evidence) |
| OBV-falling + vol-confirmed | ≥ 2 tickers | Mirror of above. Coordinated price-and-volume signal pointing down. Portfolio-wide risk-off rotation |
| Framework state EXIT | ≥ 3 tickers | Multiple positions in EXIT state simultaneously. Either a gap-down event hit several at once, or the framework's calling a regime shift |
| Framework state TIGHTEN | ≥ 3 tickers | Multiple positions in TIGHTEN at once. Usually rising broader-market volatility OR the framework correctly calling caution across correlated names |
Why the thresholds split 2 vs 3
News + OBV clusters threshold at 2. Framework-state clusters threshold at 3. The asymmetry is deliberate:
- News and OBV signals are per-ticker context. 2 simultaneously is a low-bar coincidence worth surfacing — it might just be one sector moving, but that's still worth knowing about. The user can decide if 2-name coincidence reads as signal or just sector hum.
- Framework state EXIT or TIGHTEN is already action-triggering on a single ticker. If one ticker fires EXIT, the user is already looking at it individually. The banner exists to surface portfolio-wide signals — escalation to "this isn't just one name; the framework is calling caution across the portfolio." 3 simultaneous EXIT/TIGHTEN is meaningfully different from 1-or-2.
Both thresholds are tunable constants at the top of v5DetectPatternClusters() — PATTERN_CLUSTER_THRESHOLD and STATE_CLUSTER_THRESHOLD. A small portfolio of 10 names can drop the state threshold to 2 if the default ≥3 rarely fires.
When a cluster means something vs when it doesn't
The banner is information, not instruction. A few patterns worth recognizing:
- Acccumulation cluster (OBV-rising + vol) hitting on names in the same sector — that's the sector rotating in, not your portfolio individually getting a buy signal. Useful context for adds in that sector, less useful for the names already held.
- Distribution cluster (OBV-falling + vol) hitting alongside a VIX spike — the broader market is selling, your names are confirming. Stops + sleeve-cap review is the right move; trying to "buy the dip" on multiple names at once during portfolio-wide distribution rarely works out.
- News-flow divergence on a single sector — that's the press getting ahead of the institutional positioning, common during earnings season. Confirm via per-ticker Whale Confirmation Coach before sizing up on the names that look "obvious."
- EXIT cluster spanning multiple sectors — strongly suggests a macro event hit the whole portfolio (gap-down day, FOMC surprise, geopolitical shock). Read each ticker's Pillar Coach + Exit Coach before mass-acting; the cluster signal alone isn't a sell-everything verdict.
- TIGHTEN cluster on quiet days — usually just rising broader volatility (VIX up but no obvious news). The framework's caution is structural; nothing required of you beyond noticing.
What the banner is NOT
One disambiguation worth holding: the banner is not the same thing as the per-card comparable_setups chip. Both exist; both are useful; they answer opposite questions:
| Surface | Axis | Question |
|---|---|---|
| Per-card comparable_setups chip | One ticker × historical | "When this ticker was last in similar state, what was the dominant outcome?" |
| Top-level pattern-cluster banner | Many tickers × current | "Right now, do multiple tickers show the same micro-signal simultaneously?" |
Pre-v7.8.76 both shared the name "comparable setups," which made them genuinely confusing. The v7.8.76 cleanup renamed the banner to "pattern cluster" — same data, clearer naming. The per-card chip kept the original name (it's a server-emitted contract consumed by multiple readers; renaming would have rippled too far).
The real lesson
Individual signals lie all the time. Coincident signals across the portfolio are harder to dismiss. The pattern-cluster banner exists because a discipline product needs at least one signal whose evidence threshold is "multiple names agree" — that's what makes a portfolio-wide read different from a per-name read. Use it as a sanity check on per-ticker decisions: if you're about to add to a position and the distribution cluster just fired, the framework is asking you to slow down before sizing up. The banner doesn't refuse the trade; it surfaces the contradiction loudly enough that ignoring it requires a deliberate choice.
Related: L14 — sector rotation · L17 — hidden tape · name-collision cleanup post