← back to lessons

Lesson: the same metric is a different SIGNAL on different sources - normalize before you threshold

Banked Cycle 227 (2026-06-10). Lane: lead-supply / discovery pipeline.

The pattern

A discovery/ranking pipeline pulls a field (here total_findings) from multiple sources and thresholds on it uniformly - but the field's SEMANTICS differ per source, so one threshold conflates two different things and silently drops the best leads.

Concrete case: total_findings is - for a time-boxed CONTEST: findings-IN-WINDOW -> a real saturation/picked-over signal. - for an ongoing BOUNTY: findings CUMULATIVE-OVER-LIFETIME -> a function of program age + size, NOT freshness. A $400K bounty with 250-550 lifetime findings is still a fresh hunt.

A single findings >= N -> demote to LEARNING gate buried fresh $100K-$500K bounties (Chronicle/Stackup/Mezo/Ventuals/MA-V2/USDai) as "picked-over." They were only found via a manual full-sweep, not the router.

The rule

Before ranking/gating on any field pulled from multiple sources, ask: does this field MEAN the same thing in each source? If not, normalize (per-source threshold, or convert to a common unit) BEFORE the gate. For findings: strict ceiling for contests (in-window), high ceiling for bounties (cumulative), and push the REAL saturation judgement downstream to a better signal - audits-in-repo count - rather than the conflated lifetime-findings number.

Relation to other banked supplier lessons

Division of labor that falls out

Coarse lane (MONEY vs LEARNING) at the router on cheap signals; FINE saturation (FRESH vs SATURATED vs COMPLETE-AVOID) at the Idan pre-chew handoff using audits-in-repo. Do not overload one cheap metric to make a decision a better downstream signal should make.

Generated 2026-07-02 13:15:03 UTC | auto-sync /15min