Applies before any list gets built or bought. Produces a scored, tiered matrix that turns targeting from an opinion into a filter.
Default-deny, not default-allow
Most ICP work starts from "who could buy this" and subtracts. That produces a large list with a fuzzy edge, and the fuzzy edge is where the budget dies.
Invert it: an account is out until it earns its way in. Every dimension is a gate that must pass, not a point that gets added to a total. A high score on four dimensions never rescues a fail on the fifth — a company with perfect firmographics and no budget is not a 4/5, it's a no.
Order the gates cheapest-first, so the expensive ones only ever run on survivors:
- Structural fit — size band, stage, model, geography. Free or near-free to check.
- Problem evidence — something observable says they have the problem you solve. Not "they could have it."
- Exclusions — competitors, current clients, prior contact, people who sell what you sell. Run this early; it's cheap and it prevents the most embarrassing sends.
- Reachability — can you actually get to the buyer? An unreachable perfect fit is worth zero.
- Deal size — can they pay your floor? Put this gate before enrichment spend, not after.
- Timing signal — is the buying window open, or is this a nurture entry?
Spend and send are the last gates, never the first.
Build the matrix
For each dimension, write the gate as a binary question with a stated source, then a tier rule on top of the survivors:
- Tier 1 — passes every gate plus an active timing signal. Worth manual research and a custom asset.
- Tier 2 — passes every gate, no timing signal. Worth a templated, segment-level motion.
- Tier 3 — passes structural fit only. Nurture. Never the target of paid enrichment.
Anything failing a gate is excluded with the reason recorded. The exclusion log is more useful than the include list — it's what stops the same bad accounts re-entering next quarter.
Anchor it to closed-won, then to closed-lost
Start from the accounts that actually paid, not from the deck. Look for the attribute that the winners share and the near-misses don't. Then check it against deals you lost late — a dimension that both winners and late losers share isn't a qualifier, it's table stakes, and scoring on it just inflates everyone equally.
What good looks like
The tell of a good operator: they can state the disqualifier before the qualifier. Anyone can describe a dream customer; knowing precisely who to throw away, and being willing to throw away most of the market, is the skill.
The mediocre version is a persona document — a paragraph about "innovative mid-market leaders who value efficiency" that no one can filter a list against. If two people can't independently score the same twenty accounts and land in the same tiers, it isn't a matrix, it's a mood.
Good output is falsifiable: every dimension names its data source, every gate is answerable yes or no by someone who has never met the customer, and the matrix predicts the last ten closed-won accounts as Tier 1 or 2. If it doesn't retro-predict your own wins, it won't predict the next ones.
Rules
- MUST make every dimension a gate with a named data source, not a subjective rating.
- MUST place deal-size and exclusion gates before any paid enrichment step.
- MUST record the reason for every exclusion.
- NEVER let a strong score on one dimension override a failed gate on another.
- NEVER ship a matrix that can't be applied identically by two different people.