Short answer
An ICP fit score rates how closely an account matches your ideal customer profile, usually 0 to 100 or tiers A to D, from facts about the company rather than its engagement. Build it from disqualifiers, weighted criteria and a separate "insufficient data" status. Test it on past deals: win rates should fall tier by tier. For an AI fit score, also check agreement with a human grader beyond chance, consistency on a rerun and the evidence behind each reason.
- Fit is about the company, not its behavior: keep it separate from intent and engagement, even if you combine them later.
- Never let missing data score zero. PostHog's published fit score marks about 35% of profiles "insufficient data" instead.
- Win rates should fall tier by tier on past deals; in the worked example tier A wins 40% and tier D 4%.
- Judge an AI scorer on Cohen's kappa, not raw agreement: saying "not fit" to everything scored 71% agreement in our example.
- Rerun the AI on the same accounts a week later; any tier changes show where it's guessing.
On this page
This guide is for RevOps managers, sales leaders and founders who want every account in the CRM or a prospect list rated for fit, and are deciding whether to build the score themselves or let an AI tool do it. It covers what a fit score is, how to build one, the three ways AI tools score fit, and a test you can run on any AI fit score before you route accounts by it. If you haven't written your ICP yet, start with the ICP template. For scores that predict conversion from behavior, see AI lead scoring.
What an ICP fit score is, and isn't
| Score | The question it answers | Built from | Changes |
|---|---|---|---|
| ICP fit score | Should we want this account? | Industry, size, location, business model, services, technology, exclusions | Slowly, when the company changes |
| Intent or signal score | Is something happening there now? | Hiring, funding, leadership changes, research activity | Fast: a trigger is news for a quarter |
| Lead score | Will this lead convert? | Fit plus intent plus engagement | Constantly |
Vendors implement fit differently. On their own pages, checked 30 October 2026: HubSpot's default "Ideal Customer Profile Tier" property is "the categorization of how well a company matches your ideal customer profile, with Tier 1 being the closest". HubSpot's prospecting agent scores accounts against your ICP and shows a "Reason to Reach Out" for each recommendation. Lusha's ICP fit score runs from 0 to 1 against the account and persona criteria in your target profile, costs one credit per record even when the score is 0, and is combined with a signal score into one lead score. PostHog publishes its in-house fit score, which it describes as "definitional, not a revenue prediction".
That last point matters. A fit score says whether an account matches your definition. Whether it will buy this quarter is a different score, and blending the two too early hides a perfect-fit account that simply has no trigger yet.
How to build an ICP fit score
- Start with disqualifiers. Accounts you'd never sell to (wrong industry, too small, a competitor, an existing customer) get a status of disqualified with a reason, not a low number.
- Pick four to six criteria from your best and worst customers, each one something you can check from outside the company.
- Weight them to 100, heaviest where your won deals differ most from your lost ones. The lead scoring template shows how to turn lift into points.
- Add an "insufficient data" status. PostHog's published method gives no number to profiles with no usable data and warns: "Never read a missing score as 0." In its production data (18,396 organizations, measured 1 September 2026), about 35% were insufficient data. Scoring them as zero would have buried a third of its accounts.
- Set tiers by capacity. PostHog calls the threshold "a downstream-capacity decision, not an accuracy one": tier A should be roughly the number of accounts your team can work properly.
- Version it. Stamp each score with the version and date, so you can tell a changed account from a changed formula.
Version: [v1.0, date] Owner: [name] Scale: 0 to 100 DISQUALIFIED (no number, reason recorded): - [e.g. fewer than 10 employees] - [e.g. not in our industries] - [existing customer, open opportunity, competitor] INSUFFICIENT DATA (no number, retry in [30] days): - [e.g. size and services both unknown] WEIGHTED CRITERIA (total 100): - [criterion 1]: [points] Source: [where we check it] - [criterion 2]: [points] Source: - [criterion 3]: [points] Source: - [criterion 4]: [points] Source: TIERS: A [70+] B [45 to 69] C [20 to 44] D [below 20] Tier A target size: about [number] accounts, our capacity for [quarter]
Three ways AI tools score fit
| Approach | How it works | Needs | Watch for |
|---|---|---|---|
| Rules on enriched data | Your criteria applied to firmographic fields a data provider fills in | A data source and your written criteria | Wrong or stale fields, such as group headcount for one subsidiary |
| Lookalike model | A model trained on your customers scores accounts that resemble them | A few hundred customers with clean records | It finds more of your past and misses new segments |
| Language model reading each account | An AI reads the website and other sources against your written ICP and returns a score and a reason | A clear written ICP | Inconsistency between runs, and reasons that sound right but aren't sourced |
The third is the newest and the one most AI prospecting tools use, because it can judge criteria no database field holds, such as "offers outsourced accounting" or "sells to hospitals". It's also the one that most needs testing. Bebop also starts from a written description: you describe the companies you want in plain language, and it explains why each one it finds fits, so the same tests apply.
Worked example: building and testing a fit score
Illustrative example. The company, deals and test results are invented; the establishment counts are from the Census Bureau.
The seller: Ledgerline (ledgerline.example) sells workflow software to accounting firms. Its fit score v1.0: firms with 20 or more employees get 30 points (10 to 19 get 15); advisory or outsourced accounting services, 25; two or more offices, 15; a desktop practice-management tool named in job posts, 20; hiring accountants in the last six months, 10. Under 10 employees is disqualified; unknown size and services is insufficient data.
How big can each tier be? County Business Patterns counted 55,052 US establishments in NAICS 541211 (offices of certified public accountants) in 2023. The size gate alone removes the 45,984 with fewer than 10 employees, leaving 9,068: 5,089 with 10 to 19, 2,386 with 20 to 49, 807 with 50 to 99 and 786 with 100 or more. Establishments aren't companies (a multi-office firm counts once per office), so the number of firms is lower. Ledgerline's two reps can work about 400 accounts a quarter, so tier A is set at 70 points to land near that.
Backtest on past deals. Ledgerline scored its 178 closed opportunities from the last 18 months as each account looked when the deal opened, using only facts available then.
| Tier | Opportunities | Won | Win rate | Share of all wins |
|---|---|---|---|---|
| A (70+) | 40 | 16 | 40% | 44% |
| B (45 to 69) | 50 | 10 | 20% | 28% |
| C (20 to 44) | 45 | 5 | 11% | 14% |
| D (below 20) | 25 | 1 | 4% | 3% |
| Insufficient data | 18 | 4 | 22% | 11% |
Win rates fall tier by tier, so the score ranks the way it should. The insufficient-data row wins at about the average, which is exactly why it mustn't be scored as zero: those accounts need research, not a D.
Testing an AI fit score. Ledgerline then tried an AI tool that reads each firm's website against the written ICP and returns fit or not fit with a reason. The sales manager labeled 100 open accounts blind, and the two sets of labels were compared.
| Manager: fit | Manager: not fit | |
|---|---|---|
| AI: fit | 22 | 9 |
| AI: not fit | 7 | 62 |
They agree on 84 of 100. That sounds good until you notice a scorer that called every account "not fit" would have agreed on 71. Cohen's kappa corrects for this: expected chance agreement is 0.29 × 0.31 + 0.71 × 0.69 = 0.58, so kappa = (0.84 − 0.58) ÷ (1 − 0.58) = 0.62. That's well above chance, but 9 of the AI's 31 "fit" calls were accounts the manager rejected.
Two more checks found why:
- Consistency. Rerun a week later on 50 of the same accounts, the AI changed its answer on 6 (12%). Five were firms of 10 to 19 people, where it estimated headcount differently each time. Fix: pass in the headcount from Ledgerline's own data rather than letting the model estimate it.
- Evidence. Of the 31 "fit" reasons, 27 checked out against the firm's own site. Four cited advisory services the firm didn't offer, taken from articles about the profession. The account research accuracy check describes how to catch these.
The decision: Ledgerline uses the AI only for the two criteria that need reading (services and practice-management tool), feeds its answers into the points score, and has the manager review every tier A account. It reruns the backtest each quarter and records the change as v1.1.
A test you can run on any AI fit score
- Label 100 accounts yourself first, blind to the AI: fit or not fit, with a one-line reason.
- Include 10 accounts you lost for fit reasons. The AI should reject at least 8.
- Compare the labels in a two-by-two table and work out agreement and kappa as above. Aim for a kappa of about 0.6 or more before you route by the score.
- Rerun the same 50 accounts a week later. More than about 1 in 10 changing answer means a criterion is too vague or depends on an estimate.
- Check the reasons on every account the AI calls fit and you don't. Each reason should cite a page about this company.
- Backtest the tiers on closed deals, as in the worked example.
What to ask a vendor
- Is the score rules on data fields, a model trained on customers, or a language model reading each account?
- Which sources does it read for each account, and how fresh are they?
- Does each score come with a reason and a source we can open?
- How does it handle missing data: a low score, or a separate status?
- If we score the same account twice, do we get the same answer?
- What does it cost per record, and are records that score zero charged?
Common mistakes
- Blending fit and intent too early. A strong signal at a poor-fit company still isn't worth a sales cycle.
- Treating unknown as bad. Missing data needs research, not a D.
- Scoring with hindsight. Backtest on what you knew when the deal opened, not what you learned during it.
- Tiers sized by the formula, not the team. If tier A holds 3,000 accounts and you can work 400, it isn't a tier.
Next step: turn tier A into a list with how to build a prospect list.
Sources
- HubSpot's default company properties, HubSpot Knowledge Base, updated 7 August 2026, accessed 30 October 2026
- AI prospecting agent, HubSpot, accessed 30 October 2026
- Set up and use the prospecting agent, HubSpot Knowledge Base, updated 14 October 2026, accessed 30 October 2026
- Signal score and ICP fit score, Lusha, accessed 30 October 2026
- ICP fit score, PostHog Handbook, accessed 30 October 2026
- 2023 County Business Patterns datasets, US Census Bureau, 26 June 2025
Written by the Bebop team at Blackpearl Group. Published .
Questions people ask
What is an ICP fit score?
An ICP fit score rates how closely an account matches your ideal customer profile, usually on a 0 to 100 scale or as tiers such as A to D or Tier 1 to 3. It uses facts about the company, such as industry, size, location, services and technology, rather than engagement or intent. HubSpot, for example, has a default company property for ICP tier, with Tier 1 the closest match.
How do you calculate an ICP fit score?
Start with disqualifiers that give an account no score at all. Then pick four to six criteria you can check from outside the company, weight them to 100 based on how strongly each separates won from lost deals, and add the points for each account. Give accounts with too little data an 'insufficient data' status instead of zero, set tiers by how many accounts your team can work, and version the formula.
What is a good ICP fit score?
There's no universal number, because the scale is yours. What matters is that win rates fall tier by tier on past deals and that tier A holds about as many accounts as your team can work. In our illustrative backtest, tier A (70 or more out of 100) won 40% of opportunities and tier D (under 20) won 4%. Set thresholds by capacity, then check them against outcomes.
What is the difference between ICP fit and intent?
Fit asks whether you should want the account at all, from slow-changing facts such as industry and size. Intent asks whether something is happening there now, such as hiring, funding or a new leader, and goes stale within months. Keep them as separate scores even if you combine them later: a perfect-fit account with no current trigger needs outreach, not a low priority.
Can AI score ICP fit accurately?
It can, but test it first. Label 100 accounts yourself, compare them with the AI's labels using Cohen's kappa rather than raw agreement, rerun the AI on 50 of the same accounts a week later to check consistency, and check the reason behind every fit call you disagree with. In our illustrative test, an AI scorer agreed 84% of the time but had a kappa of 0.62.