ICP scoring rates every account on how closely it matches the customers you already win, so your reps call the best fits first. Most guides build it as a points table: twenty points for headcount in range, fifteen for funding stage, ten for the right CRM in the stack, threshold at 70. It takes an afternoon and it beats working a TAM list alphabetically. Then a rep opens the result, finds an account at 71 sitting above an account at 68, and has no way to tell which of the two is worth the morning.
This guide builds the version that answers that. Derive the criteria from accounts you already closed, enrich the whole list from data sources and from your own billing and product systems, then have AI score every account against the same description with a written reason attached. Sort by the score, write each score with its reason back to the CRM, and put the top band into a sequence.
To score your own accounts as you read, bring them into a free workspace first.
ICP score meaning: fit, not interest
An ICP score rates how closely an account fits the customers you already win. It measures fit, not interest.
Say a company has never opened one of your emails. It can still score 88. The inbound lead who booked a demo yesterday can score 30, and both numbers are right.
Oneprofile's ICP scorer returns three things for each account:
A band. Strong at 70 or above, possible from 40 to 69, poor under 40.
A score from 0 to 100, calibrated to the band.
The two or three facts that drove it, each naming the field it came from.
Interest is the other half of prioritising, and how lead scoring models combine fit and intent is a subject of its own. This guide stays on fit.
Define your ICP scoring criteria from closed-won accounts
Criteria should come from outcomes you already know rather than from the personas doc. Pull every closed-won account from the last 12 to 18 months. Twenty accounts is enough to see a pattern. Fifty is better.
For each one, record:
Company domain. The identifier every later step matches on.
What they pay, and since when. Contract value or MRR plus start date. If the CRM does not hold it, your billing tool does, and it connects as a source rather than an export.
How fast they closed. Cycle length separates accounts that fit from accounts you dragged over the line.
Whether they stuck. A renewal or a seat expansion is the strongest fit evidence you own, and the field most ICP work leaves out because it arrives a year after the deal.
Who signed. Title and team. This is usually where a second segment shows up.
Then run the same pull on churned accounts and on deals that died at "no decision". If wins and losses look identical on headcount and industry, those were never really your criteria, whatever the scorecard template says.
Write what you find as a sentence, not a spreadsheet. Something like: "Seed to Series A B2B SaaS, 20 to 150 employees, sells to sales or marketing teams, already runs a CRM and a billing tool." Every clause traces back to a field you can enrich on a company you have never sold to, which is the test that matters. Contract value and renewals told you who belongs in the sentence; they cannot be in it, because a prospect has neither.
If you have no account list to score yet, building a B2B lead list from a CRM export is the step before this one.
Where a points-based account scoring model runs out
Weighted scorecards are not useless. A scorecard in a Google Sheet is usually right about the obvious accounts, which is most of them. An account scoring model built from weights hurts in three specific places.
The weights are guesses wearing a number. Nobody derived "funding stage = 15 points" from anything. It felt like about half of headcount, so it got half.
A missing field scores like a bad field. An account with no employee count on record loses the same twenty points as one with the wrong employee count, and 400-account lists always have holes.
The output cannot be argued with. A rep who thinks account 71 is wrong has nothing to push against. Ideal customer profile scoring only changes behaviour when the reason travels with the number.
There is a fourth thing, and it is the one that matters most. A ranking only means something if every account was judged by the same standard. Fixed weights are how a scorecard tries to get there, and the weights are exactly the part nobody trusts.
What to enrich before ICP scoring: firmographics and your own revenue data
A score is only as good as what it reads. Bring your account list in to enrich first: connect your CRM as a source or import a CSV, then click Filter, pick the company domain column in One row per, select all the rows, and click Delete duplicates, so a company that appears as three deals is one account before anything gets scored.
Enrich every account with the data the score needs before you run it, from data sources and from the systems you already run.
Source | What it adds | Why it matters for fit |
|---|---|---|
Waterfall of data sources | Industry, headcount, location, founded year | The baseline fit check every model starts from |
Technographics | Tools detected on the domain | Integration fit and switching friction |
Billing | Plan, MRR, renewal date | Turns "resembles a customer" into "pays like one" |
Support desk | Ticket volume, escalations | Fit that only showed up after the sale |
Product database | Seats in use, last active date | Whether the fit held once they were live |
The bottom three are the ones no data company can sell you, because that data only exists inside your own stack. Each one is a lookup from a tool you already connected: you pick the key to match on, such as an account ID or an email address, and the record comes back through your own connection.
The top two come from a waterfall of data sources ordered by accuracy, not price. You do not assemble the chain. The waterfall asks data sources one at a time, most accurate first, stops at the first one that returns an answer, and a lookup that finds nothing costs nothing.
Step | Up to, per account | Up to, per 400 accounts |
|---|---|---|
Company profile from a domain | 15.0 credits | 6,000 credits |
Technologies on a domain | 5.8 credits | 2,320 credits |
ICP scorer | 3.0 credits | 1,200 credits |
Each enrichment figure is the most a matched account can cost, and an account is charged the price of the data source that answered it. No list matches every account. Every enrichment shows its cost before you run it, so an expensive one can be dropped while dropping it is still free. Extra credits are $20 per 1,000 on every paid plan. The mechanics are on Oneprofile's data enrichment page.
Run ICP scoring across every account
Paste the description you wrote in the first section into Ideal customer profile in your business context. Then add the ICP scorer and point it at the company domain, plus whatever you enriched: description, industry, headcount, company type, who they sell to. That is the whole configuration, at 3 credits an account.
The built-in scorer reads those firmographic inputs. To weigh technologies, billing, support, or usage in the score too, apply the ICP scorer as a template under Agents and add those columns as inputs; otherwise they sit beside the score for the rep to read.
Score every account with AI from there. The scorer reads each account against your description on its own. Every account gets a band (strong, possible, or poor), a score from 0 to 100, and the facts that drove it. Sort by the score and the list is ranked.
One standard is what makes the ranking mean anything. Ask a chat window about one company and it can tell you the company has 90 employees and raised a Series A last spring. Ask it about 400 of them over a week and the bar moves every time you rephrase the prompt. The scorer holds every account to the same description and the same bands, so an 84 and a 71 were measured the same way.
Look at where the scores fall. Say your first run bunches between 40 and 65: that says the ICP is looser than the team believed, with a strong top band and a long tail of plausible companies.
Read the reasons behind each ICP scoring result
Every account comes back with a score and the two or three facts that drove it, each naming where it came from. The reasons read like notes from a junior analyst who went through the list overnight: this one matches on size and industry but sells to consumers, that one is the right kind of company at a quarter of the headcount. Add billing and usage as inputs and they go further: this one pays like a target account but has not logged in since June.
Reps skim scores and act on reasons, which is the same argument behind lead scoring that explains the score at contact level. The auditing argument is better:
Check the boundary. Read ten reasons either side of wherever you drew the tier line. That is where the model's judgment is weakest and where you find out whether your ICP sentence said what you meant.
Check the top. If the top twenty reasons all cite the same attribute, your description is leaning on one clause and the rest is decoration.
Check the empties. An account with too little to judge comes back with no band and no score, rather than a low score. Filter for those before cutting anything, fix the domains by hand, and re-run enrichment and scoring on just those.
That last one is the manual hour in this guide worth spending. It is also where you go back and rewrite the criteria sentence from earlier. Nobody gets the description right first time, and once the enrichment is done, a re-score is 3 credits an account.
Write ICP scores back to your CRM and build segments
A ranked list nobody opens is a nicer spreadsheet. Create the properties below in your CRM once, then map the output onto them. Run the export after each scoring pass. With Skip unchanged rows on, it leaves out accounts whose values are the same as last time. Turn on Schedule refreshes for the CRM import that brought the accounts in, so the next scoring pass reads the latest deals. To score leads rather than accounts, the HubSpot and Salesforce lead scoring guides apply the same idea inside each CRM.
CRM property | Type | Example value |
|---|---|---|
| Number | 84 |
| Single-line text | B2B SaaS (Company type), 90 employees (Employees), sells to businesses (Sells to) |
| Single-line text | strong |
| Number | 1450 |
Tier is worth writing separately from score. Views, list membership, and routing rules are all easier to build on three values than on a number with a threshold buried in the filter, and a tier survives a re-score that shifts every number by two points.
From there the top band has somewhere to go. Enrol it in an email and LinkedIn sequence built from the same enriched list, so the research that scored the account also writes the opening line of the message that reaches it. The poor band stays saved rather than deleted, because the next re-score will move some of it up.
Then set the cadence: monthly on the accounts you are actively working, quarterly on the rest. Companies raise rounds, buy tools, and lose the champion who would have taken the call. ICP scoring that ran once in March is describing a market that no longer exists.
Bring in your own account list and score it against the criteria your closed-won deals already prove. The Free plan gives you 200 credits a month, up to 3 integrations, and 3 tables of up to 100 rows. At 3 credits an account, that scores 66 accounts that already carry their firmographics, which is enough to see whether the reasons change who you call first. Start a free workspace and score your first accounts.

