01 / Families
Twenty-two signals. Six families. Not a flat list.
A bias reads as a pattern, not an isolated flag — signals that overlap or could double-count the same evidence are deliberately grouped, not left to pile up independently.
Disposition & loss framing
Disposition effect, split into post-loss and post-win behavior trees rather than one blended score. Loss aversion, de-duplicated from disposition so the two never double-count the same trade. Breakeven anchoring — holding a loser specifically until it crosses back to cost basis.
Overconfidence & activity
Overconfidence and overtrading. Real attention-event detection from actual OHLCV price and volume data, gated so only genuinely excess activity counts — not every trade. Rank effect.
Anchoring & recency
Recency bias. 52-week-high anchoring. Feedback trading — chasing whatever just won.
Selection preference
Lottery-stock preference. IPO first-day chasing. Repurchase reinforcement.
Diversification & habit
Underdiversification. Rebalancing inertia.
Experience & history
Personal-experience extrapolation — gated by a strict 270-day minimum ledger span, so it can never fire on a short, windowed data export. Only a genuinely long trading history earns this signal.
22 signals, six families
Every score groups into one of six construct families, so a review reads as a coherent pattern of behavior, not a list of unrelated flags.
Herding was retired
Herding was evaluated and deliberately removed from the signal set after review — evidence the library is curated and pruned, not just accumulated.
Built from real OHLCV
Attention-event detection reads actual price and volume history, with an excess gate, so ordinary trading never registers as a behavioral flag.
A bias isn't a single number. It's a pattern across a family of related signals — or it doesn't get reported.
02 / Evidence
We found a signal claiming 98.2% confidence on zero losing trades. That's why the floor exists.
An internal audit surfaced a disposition-effect score reporting near-certain confidence from a ledger with no losses to disposition-effect over. The floor-and-dampening system exists specifically to close that gap.
The finding, in one sentence: a client with zero losing trades in their ledger scored 98.2% confidence on disposition effect — the exact bias the signal exists to catch, asserted with near-total certainty on evidence that couldn't support it. The fix wasn't a patch on that one signal. It was a floor and a dampening curve applied across all twenty-two.
How the floor works
A minimum evidence floor, before anything fires
Every signal needs a minimum count of relevant trades before it's allowed to report at all — a bias is never called from one or two trades.
Dampened, not confident, near the floor
Between the floor and full confidence, a signal shows at a deliberately dampened strength — not the full-conviction number it would show on a longer history.
Short history caps every signal
On a client with a short overall trading history, every signal for that client is capped at its lowest confidence tier — the whole profile, not just one score.
Being honest about not knowing something yet is worth more than a confident-sounding number that isn't earned.
03 / Privacy
Advisors see the behavior. Not the exposed identity — unless the workflow needs it.
Customer Profiling runs on account and portfolio data the institution already holds, and masks customer names and identifiers by default everywhere its output surfaces.
Customer Profiling
The pattern, without the name attached.
Masking is the default posture, not an opt-in setting — every panel, export, and review surface shows the behavior pattern first. It's the same masking discipline the platform's Investor Insights feed uses, because both apps read the same underlying signal engine; they just surface it differently.
Masked by default, everywhere output surfaces
Built from data the institution already holds
Same signal engine as Investor Insights, different lens
Client reviewmasked · single client
1 Behavior pattern surfaces first family + signal, masked identity
2 Evidence floor applied per-signal confidence tier
3 Identity revealed only in-workflow advisor-initiated, logged
4 Export carries the same mask review-ready, compliance-ready
Masking isn't a redaction pass at export time. It's the default state the data starts in.