GLOSSARY

What is an ICP?

An ICP (Ideal Customer Profile) is a weighted, evidence-based description of the account type that buys fastest, stays longest and expands most, used as the fit half of every qualification, routing and targeting decision.

Free forever plan · No credit card required · Cancel anytime

Quick definition

An ICP (Ideal Customer Profile) is a weighted, evidence-based description of the account type that buys fastest, stays longest and expands most, used as the fit half of every qualification, routing and targeting decision.

An ICP describes a company. A persona describes a person inside it. The two are not interchangeable.

What it means

An ICP is the answer to a resource-allocation question: given that you cannot pursue every company on earth, which ones should get your money and your reps' hours? A profile that cannot be used to say no to a company is not an ICP, it is a description of your market.

The word "ideal" misleads people into writing aspirational documents. The useful ICP is retrospective and unglamorous: it describes the accounts that already worked, measured by outcomes you can pull from your own billing and support data. Fast to close, cheap to support, slow to churn, likely to expand. Whatever those accounts have in common is the profile, whether or not it flatters the pitch deck.

Once written, the ICP is not a document that sits in a folder. It becomes the fit component of lead scoring, the firmographic half of the MQL threshold, the territory definition behind lead routing, the exclusion list on paid campaigns, and the first question on the SQL checklist. That is the test of whether an ICP exercise was real: how many systems changed afterwards.

The scoring formula, written out

An ICP that only exists as prose cannot be applied to fifty thousand records. Turn it into a weighted score:

ICPScore(A) = ( sum over i of w_i * s_i(A) ) / ( sum over i of w_i * s_max ) x 100

  • A: the account being scored.
  • i: each attribute in the model.
  • w_i: the weight of attribute i. Weights are relative, so making them sum to 100 is a convenience rather than a requirement.
  • s_i(A): the account's score on attribute i, on a fixed ordinal scale. A 0 to 4 scale works well: 4 for an exact match, 2 for adjacent, 0 for no match.
  • s_max: the top of that scale, 4 here. It appears in the denominator so the result lands on 0 to 100 regardless of the scale you chose.

Two rules keep this honest. First, every attribute needs a written anchor describing what a 4 and a 0 look like, otherwise two people score the same account differently. Second, an attribute that everybody scores the same is carrying no information and should be removed, however important it feels.

To decide which attributes belong in the model at all, compute the lift of each candidate:

Lift(attribute) = P(attribute | good customer) / P(attribute | all customers)

An attribute present in 61 of 96 good accounts (63.5%) but in only 88 of all 240 customers (36.7%) has a lift of 1.73. Anything close to 1.0 is decoration.

A worked example, end to end

Six attributes, weights summing to 100, a 0 to 4 scale, so the maximum possible weighted sum is 100 x 4 = 400.

Kavi Studio, a 140-person creative agency in Istanbul running client comms through WhatsApp and Instagram, no CRM in place, 3.2M in revenue:

(25x4) + (20x4) + (20x4) + (15x3) + (10x4) + (10x4) = 100 + 80 + 80 + 45 + 40 + 40 = 385

ICPScore = 385 / 400 x 100 = 96.3

Northvale Logistics, 3,400 employees, freight, an entrenched enterprise suite, contact happens by phone and on site, supported region, large revenue:

(25x1) + (20x1) + (20x2) + (15x1) + (10x4) + (10x4) = 25 + 20 + 40 + 15 + 40 + 40 = 180

ICPScore = 180 / 400 x 100 = 45.0

Northvale is a bigger company with more money, and it scores half as well. That is the entire point of the exercise: size is one attribute among six, and it carries a weight of ten.

Now the population view. Score all 240 paying customers with the same model and split at 70:

  • 96 accounts score 70 or higher. Combined ARR 1,152,000, an average of 12,000 each.
  • 144 accounts score below 70. Combined ARR 528,000, an average of 3,667 each.

ICP revenue concentration = 1,152,000 / 1,680,000 = 68.6% of revenue from 40.0% of accounts

The retention split is where the argument ends. Over the trailing twelve months the high-scoring cohort lost 4 of 96 logos (95.8% retention) and grew net revenue by 14%. The low-scoring cohort lost 28 of 144 (80.6% retention) and shrank net revenue by 12%. Same product, same team, same year. If the sales motion spends equally on both, roughly 60% of new-business effort is going into the cohort that produces less than a third of the revenue and returns it more slowly.

Three ways the profile goes wrong

Averaging the whole customer base. Take the mean headcount across all 240 customers and you get 310, because six enterprise logos drag it upward. Aim paid acquisition at 310-person companies and you are targeting a segment that contributed a small slice of ARR and the majority of the support load. The median headcount of the 96-account ICP cohort is 85. Use the cohort, and use medians rather than means whenever the distribution has a tail.

Survivorship bias. Building the profile only from current customers hides everything churn taught you. The 28 accounts that left the low-scoring cohort last year are the most informative records in the database, and they are exactly the ones a "score our customers" query excludes. Include churned accounts, tagged as churned, and let the model learn what a bad fit looked like on the day it signed.

Learning only from deals you won. Won deals encode the reach of your sales team as much as the shape of the market. If your reps only ever called agencies, the model will conclude that agencies are the ICP, which may be true or may just be where the phone calls went. Where you can, score the accounts you lost and the accounts you never contacted, so the profile is a statement about the market rather than about last year's territory assignments.

How the ICP is actually derived from CRM data

The scoring model reads from four places, and the joins between them are where implementations get interesting:

  • Account records for the firmographic attributes. Expect gaps: enrichment coverage on employee count and industry is routinely well under 100%, and a null is not a zero. Score missing attributes as "unknown" and exclude them from both the numerator and the denominator, otherwise poorly-enriched accounts score low purely for being poorly enriched.
  • Subscription and invoice records for the outcome variables: current ARR, ARR twelve months ago, plan changes and their effective dates.
  • Deal records for cycle length and discount depth, which are the two clearest early signals of a bad fit.
  • Support and conversation volume per seat, which is the cost side of the profile and the one most teams never measure.

Edge cases to settle before you trust the output:

  • Multi-entity accounts. Three subsidiaries with separate contracts are three rows and one buying relationship. Score at the level you sell at, and be consistent, because a parent counted once looks like a small account while its subsidiaries counted separately look like three.
  • Partner and reseller-sourced accounts. Their acquisition economics and their churn behaviour are both different. Tag them and either exclude them or model them apart.
  • Free-plan accounts. They belong in the product-usage analysis and not in the revenue cohorts. Including them silently deflates average ARR and pulls the profile toward whoever signs up most, which is rarely whoever pays most.
  • Mid-period plan changes. An account that upgraded in month nine has two ARR values in the same year. Fix a snapshot date for the cohort and use it everywhere, or the concentration number will not reconcile with finance.

Why it matters

An ICP is the highest-leverage document in a go-to-market system because everything downstream inherits it. Bad targeting produces bad leads, which produce a bad MQL threshold, which produces demoralised reps, which produces slow follow-up, which produces the conclusion that the market is hard. Almost every one of those symptoms is treated locally, and almost none of them can be fixed locally.

The other half of the value is subtraction. A written ICP gives everyone permission to decline: to skip a lead, to exclude a keyword, to lose a deal on purpose. Teams without one are unable to say no in a defensible way, so they say yes to everything and discover the cost eighteen months later in the churn report.

Common mistakes

  • Writing it as prose only. If it cannot be applied to a database column it cannot be applied to a database.
  • Too many attributes. Beyond about seven, the weights become arbitrary and the score stops moving in interpretable ways. Six is plenty.
  • Treating a null as a zero. Missing enrichment data punishes accounts for a vendor's coverage gap.
  • Never recomputing it. A profile derived from the 2024 customer base and used unchanged in 2026 encodes a product that no longer exists.
  • Confusing it with total addressable market. TAM is how big the market could be. The ICP is which slice of it you should attack this year.

Related concepts

  • Lead scoring: the ICP score is its fit half.
  • MQL: the threshold that combines ICP fit with behaviour.
  • SQL: where a rep tests the profile against a real conversation.
  • Churn rate: the outcome variable that proves or disproves the profile.
  • Lead routing: territories and segments are ICP slices given owners.
  • Conversion funnel: the ICP determines who enters at the top.

How Pinlyx handles it

Pinlyx stores firmographic attributes as structured fields rather than tags, so a weighted fit score can be computed across the whole base and refreshed when enrichment lands. Scores are visible on the account and on every contact under it, segments can be built directly from a score band, and the same fit model feeds lead scoring, routing rules and campaign audiences so that one profile change propagates instead of being reimplemented in four places.

Worked example · two accounts scored

The bigger company scores half as well.

Weights sum to 100 and the scale tops out at 4, so the maximum weighted sum is 400.

AttributeWeightKavi StudioNorthvale
Headcount 20 to 5004 = inside the band, 2 = within 2x of it, 0 = far outside254 /41 /4
Industry in the three proven verticals4 = exact match, 2 = adjacent, 0 = unrelated204 /41 /4
Process currently manual or spreadsheet based4 = no incumbent tool, 2 = light tool, 0 = entrenched suite204 /42 /4
Customer contact happens in messaging channels4 = messaging first, 2 = mixed, 0 = phone or field only153 /41 /4
Region inside a supported language and timezone4 = supported, 0 = unsupported104 /44 /4
Annual revenue above 1M4 = above, 2 = near the line, 0 = well below104 /44 /4
Weighted sum, then / 400 x 100400385 = 96.3180 = 45.0

Across the whole base: 96 accounts at 70 or above hold 68.6% of ARR and retained 95.8% of logos, against 80.6% for the rest.

In the database

A missing attribute is not a zero.

Enrichment coverage on headcount and industry is never complete, and the accounts with the worst coverage are usually the smallest and newest, which is to say the ones your ICP may be about. Scoring a null as 0 turns a data-quality problem into a targeting decision. Drop unknown attributes from both the numerator and the denominator so the score reflects what you actually know, and report enrichment coverage alongside the score so nobody mistakes a 40 built on two known fields for a 40 built on six.

Watch out for

The mean of your customer base describes nobody.

Mean headcount across the example base is 310. Median headcount inside the high-scoring cohort is 85. Those two numbers point paid spend at different companies, and only one of them was derived from accounts that stayed. Build the profile from a cohort selected on outcomes, use medians, and include the accounts that churned.

Ideal Customer Profile: FAQ

The questions that decide whether an ICP exercise changes any system afterwards.

An ICP describes an account, a persona describes a person inside it. The ICP decides which companies deserve pipeline investment; the persona decides how you talk to the operations manager versus the finance director inside those companies. Confusing them produces the most common targeting error in B2B: an ad campaign that speaks perfectly to a job title, aimed at companies that will never buy.
Enough for a difference to survive being looked at twice. Below roughly thirty closed-won accounts, most attribute differences are noise, and you are better off writing the ICP as an explicit hypothesis and marking it as such. From about a hundred paying accounts you can start comparing retention and expansion between cohorts rather than just counting who bought.
From customers who are still paying and expanding, not from deals you closed. Won-deal data encodes what your sales team could reach and persuade, which is a different question from what works. The strongest version scores accounts on a blended outcome: retained past twelve months, net revenue retention above 100%, and support cost per seat inside the normal band. Then look at what those accounts have in common.
Twice a year is a reasonable cadence for a stable business, and immediately after any of three events: a pricing change, a new product line, or entering a new region. The trap is revisiting it constantly, because an ICP that moves every quarter cannot be used for anything downstream. Routing rules, ad targeting and qualification checklists all inherit from it, and each one costs a rebuild.
Yes, and pretending otherwise is why some ICP documents read as vague. If a self-serve motion sells to ten-person teams and an enterprise motion sells to two-thousand-person ones, those are two profiles with different attributes, different weights and different thresholds. Give each one its own scoring model and its own pipeline. What you cannot do is average them, because the resulting profile describes an account that does not exist.
Set it from the distribution, not from a round number. Score your existing customers, plot the scores, and find the point above which retention and expansion visibly improve. In the worked example on this page that point sits near 70. If no such point exists, the attributes or the weights are wrong and picking a threshold anyway just formalises a guess.
Ready to ship

Score every account. Then let one profile drive everything.

Pinlyx stores firmographics as structured fields, so a single fit model feeds lead scoring, routing rules and campaign audiences at the same time.

Free forever plan · GDPR-ready · No credit card required

We value your privacy

We use cookies to improve our site, analyze traffic, and personalize ads. You can accept all, reject non-essential, or customize your choices. Read our Cookie Policy.