Playbooks

ICP Modeling Playbook

How to turn sales history into a targeting model the team can actually use

Juzefin Gjecaj

Co-Founder | Head of GTM

Professionals working together

What this playbook is for

Most ICPs are built from opinion. Someone describes the companies they believe are a good fit, the team turns that description into filters, and outbound starts. When the results are weak, nobody can tell whether the problem is the market, the message, the list, or the sales process.

This playbook takes a more reliable route. It starts with accounts that already went through your sales process and compares the ones you won with the ones you lost. You then enrich those accounts, look for patterns, turn the patterns into three tiers, and test the model against historical and fresh data before putting it into production.

The goal is not to create a perfect description of your market. The goal is to create a repeatable targeting model that tells the team which accounts deserve the most attention, which accounts can be handled through automation, and which accounts should be excluded.

The output you should expect

At the end of the process, you should have four things:

Output

What it contains

Tier 1 definition

The narrow profile of accounts most likely to become valuable customers.

Tier 2 definition

A broader profile that is still worth pursuing but does not justify the same level of manual effort.

Tier 3 definition

The minimum qualification boundary for accounts that are not an obvious mismatch.

Backtest and operating rules

Evidence that the model behaves sensibly on historical data, plus a clear routing rule for each tier.

The model should be written as explicit criteria, not as a paragraph such as “fast-growing B2B SaaS companies.” A useful criterion says what counts: industry, headcount, location, funding, technology, revenue, hiring activity, or another observable attribute.

Step 1: Build the historical dataset

Export both closed-won and closed-lost accounts from the CRM. The source playbook names HubSpot, Salesforce, and Attio, but the principle applies to any CRM that contains reliable account and deal history.

Use the last 12–18 months as the starting window. Older deals can be included when the sales motion and product have remained stable, but older data should not automatically be mixed with current data. A company that was a good fit two years ago may no longer resemble the market you sell to today.

At a minimum, include the following fields:

Field

Why it matters

Account name and domain

Provides the identity key for enrichment and deduplication.

Deal status

Supplies the win/loss outcome the model is trying to explain.

Deal value or ACV

Helps distinguish commercially valuable wins from low-value wins.

Sales cycle

Shows whether certain account types move efficiently through the process.

Close date

Allows the analysis to be limited to a relevant period.

Owner and segment

Helps identify territory or rep effects that may distort the pattern.

Clean the export before analysis. Remove duplicate accounts, standardize domains, separate genuinely lost deals from no-decision or unqualified records where possible, and flag records with missing outcome data. A model built on inconsistent labels will produce confident but unreliable conclusions.

Step 2: Enrich every account

Historical CRM data usually tells you what happened, not why. Enrichment adds the variables needed to compare accounts properly. Run the account set through Clay and collect three categories of information.

Firmographics describe the company: industry, headcount, funding, location, and revenue. Technographics describe the technology environment, including relevant tools and infrastructure identified through BuiltWith. Account-fit signals describe what the company is doing now, such as hiring activity, job postings, web traffic, or signs of growth.

Do not enrich only the closed-won accounts. Every closed-lost account needs the same treatment. If the wins receive more complete data than the losses, the analysis will mistake data availability for a commercial pattern.

The purpose of enrichment is not to collect every possible field. Collect fields that could plausibly affect purchase need, ability to pay, urgency, implementation fit, or access to the buying team. Record the source and date of important enrichment values so the team knows how current they are.

Step 3: Analyze the dataset

Feed the enriched dataset into Claude Code using the Freckle Claude Code skill referenced by the original playbook. Ask the analysis to compare wins and losses rather than simply describe the average customer.

The analysis should answer three questions:

1.Which traits appear repeatedly among accounts that became customers?

2.Which traits appear repeatedly among accounts that did not become customers?

3.Which negative indicators should disqualify an account or reduce its priority?

Treat the output as a set of hypotheses, not as the final ICP. A pattern is useful only when it makes commercial sense and survives testing. For example, a technology may appear frequently among wins because it is common in the entire market, not because it creates a better fit. Likewise, a location may look negative because a particular rep did not work that region effectively.

Separate fit variables from process variables. Industry, headcount, and technology are fit variables. Rep, territory, response speed, and campaign source may affect the sales outcome without describing the customer itself. Both matter, but they should not be confused..

Step 4: Define Tier 3 first

Tier 3 is the broadest acceptable segment. It is not your ideal target list. It is the baseline answer to the question: “Is this account worth any outreach at all?”

The source playbook gives an example of a Tier 3 boundary that includes B2B SaaS or adjacent businesses, any VC-backed round, selected English-speaking or Western markets, and particular headcount bands. Your own criteria should come from your analysis rather than copying those examples.

Keep Tier 3 broad enough to avoid excluding plausible opportunities, but clear enough to remove obvious mismatches. If everything qualifies for Tier 3, the boundary is not doing useful work.

Step 5: Define Tier 1 from the best wins

Select the 150 best closed-won accounts. The source recommends looking at highest ACV, fastest close, and strongest product fit. Add any metric that matters to your business, such as retention, expansion, referenceability, or implementation success.

Review what those accounts share. Tier 1 might be defined by a combination of industry, funding stage, geography, headcount, technology, and an account-fit signal such as a sales team of a certain size. The important point is that Tier 1 should represent a real concentration of commercial value, not a wish list of attractive characteristics.

Do not make Tier 1 so narrow that the team can find only a handful of accounts. The model needs to create a usable market, not just describe your top ten logos.

Step 6: Design Tier 2 as the bridge

Tier 2 fills the space between the high-confidence Tier 1 profile and the broad Tier 3 boundary. It should be broader on variables such as location, funding, and headcount, while still preserving enough evidence of fit to justify outreach.

The routing rule is simple: Tier 1 receives manual outreach; Tier 2 goes into automated sequences. If your team has more capacity, you can add a review queue for Tier 2 accounts showing strong intent. Keep the tier definition separate from the execution rule so it is easy to change one without rewriting the other.

Step 7: Backtest before rollout

Run the scoring model across the closed-won and closed-lost data in Clay. You are looking for a sensible distribution: wins should be concentrated toward Tier 1, while losses should be more common toward Tier 3. The model does not need to classify every record correctly, but it should improve prioritization compared with a random list or a broad industry filter.

Then test the model on fresh account samples from Apollo, AI Ark, Ocean.io, Discolike, and Clay. Check whether the resulting accounts look like the segments the model claims to represent. If the sample produces obviously poor accounts, revise the criteria before launch.

Operating rules and ownership

Decision

Recommended owner

Standard

Historical data quality

RevOps

Outcome labels, domains, dates, and deal values are usable.

Pattern review

RevOps and Sales leadership

Patterns make commercial and operational sense.

ICP approval

GTM leadership

Tiers match capacity and revenue priorities.

Model implementation

RevOps

Criteria are encoded consistently in Clay or the CRM.

Backtest review

RevOps and sales managers

Historical and fresh samples support the model.

Ongoing maintenance

RevOps

Criteria are reviewed when the market or product changes.

Common mistakes to avoid

Do not build the model from wins alone. Do not treat a correlation as a reason without checking whether the field is common across the wider market. Do not change the criteria every time one rep has a poor week. And do not launch the scoring model without defining what each tier does next.

A useful ICP model is not a static document. It is a working decision system that improves as new wins, losses, sales cycles, and expansion outcomes are added.

Create a free website with Framer, the website builder loved by startups, designers and agencies.