TL;DR: Filter = hard gate. Score = weighted contribution. Exclude = hard removal. Pick wrong and your ICP either qualifies nothing or qualifies everything.
Filter (hard gate)
A parameter in Filter mode is a must-have. Records that fail the filter are not in this ICP / Persona, period. The score doesn't matter — they're not scored at all if they fail a filter.
Use Filter when:
- The criterion is non-negotiable (e.g. "must be HQ'd in the US")
- The criterion is unambiguous (e.g. "employee count must be 50–500")
- You'd genuinely never sell to companies outside this range
Don't use Filter when:
- The criterion is fuzzy (e.g. "should be growth-stage" — what's the cutoff?)
- The criterion is preferred but not required (e.g. "ideally on Snowflake")
- The data is sparse (Filter on a field where 60% of records have null = you exclude 60% of records)
Score (weighted contribution)
A parameter in Score mode adds points when matched. Records still qualify if they don't match — they just score lower. Multiple Score parameters combine into the total ICP / Persona score.
Each Score parameter has a weight (1–10 typically). The contribution to the score is weight × match_strength. For boolean parameters (uses Snowflake yes/no), match_strength is 0 or 1. For range parameters (employee count 100–500), match_strength is a falloff curve — perfectly in range = 1, near the edges = 0.7, outside = 0.
Use Score when:
- The criterion is preferred but not required
- You want to RANK records, not just include/exclude them
- The criterion is fuzzy or aspirational
The total score across all Score parameters is normalized to 0–100. A perfect score = 100; matching all the highest-weighted parameters is the ceiling.
Exclude (hard removal)
A parameter in Exclude mode is a never-touch list. Records that trip an Exclude rule are removed from this ICP / Persona even if they pass all Filters and score 100 on everything else.
Use Exclude for:
- Competitors (don't qualify a competitor's company even if it fits)
- Existing customers (in some motions, exclude from net-new outbound)
- Churned customers (when you've made the call not to re-engage)
- Industries you actively avoid (regulated, ethics, conflict-of-interest)
How they compose
For a record to qualify against an ICP:
- Pass ALL Filter parameters. Any single Filter failure = not qualified.
- Fail ALL Exclude parameters. Any single Exclude match = not qualified.
- Score against the Score parameters. Compute weighted score 0–100.
The final icp_score is the weighted Score result, provided steps 1 and 2 pass. If a record passes Filters and Excludes but has zero Score parameter matches, it qualifies with icp_score = 0 — still in the ICP, just at the bottom of the ranking.
Worked example
ICP: "Mid-market SaaS Security-First"
Parameter | Mode | Value | Weight
Industry | Filter | software OR SaaS | —
Employee count | Filter | 51–500 | —
HQ country | Filter | US OR Canada OR UK OR Germany OR France OR Netherlands | —
Uses Snowflake | Score | yes | 5
Uses Okta | Score | yes | 3
Funding stage | Score | Series B+ | 4
Hired a CISO in last 12mo | Score | yes | 8
Is competitor | Exclude | (yes) | —
Is current customer | Exclude | (yes) | —
A record will qualify if it's a software/SaaS company with 51–500 employees in one of the 6 listed countries, AND is not a competitor AND not a current customer. Its score will be highest if it uses Snowflake (+5), uses Okta (+3), is Series B+ (+4), and hired a CISO recently (+8). Max possible = 20 raw, normalized to 100.
Common misconfigurations
- Filtering on data you don't have. If
tech_stackis null for 70% of records, filtering on "uses Snowflake" excludes 70% of records — even ones that DO use Snowflake but aren't yet enriched. Almost always use Score for tech-stack parameters. - Using Score for non-negotiables. "Must be in NA" should be a Filter. Using Score means a great fit in EMEA still scores high and lands in the ICP — which means your audiences will too.
- Forgetting Exclude. Most workspaces should have at least 2 Excludes — competitors and current customers. Without them, your outbound will target both.