Back to the growth library
PLGGrowth Operations

ICP Scoring: A Practical Model for PLG SaaS Teams

How to turn a vague ideal customer profile into a scoring model that actually predicts who converts and expands, with the attributes, weighting, and thresholds that make it usable.

Growth team reviewing an ICP scoring dashboard with company and account data

Ask five people on a growth team to describe the company's ICP and you'll usually get five different answers. "Mid-market SaaS." "Companies that move fast." "Teams that get it." None of that tells a rep whether the account that signed up ten minutes ago is worth a call, and none of it can be checked against a database.

An ICP scoring model fixes that by turning "companies like our best customers" into a number you can calculate for every signup, every account, every day. Not a personality description. A rubric.

What ICP scoring is actually for

ICP scoring answers one question: how closely does this company resemble the customers who already succeed with your product? It's a company-level judgment, separate from whether an individual user is active or engaged. A junior employee at a perfect-fit company can be a low-signal user. A founder at a company two sizes too small can be a high-signal user at a company you'll never expand.

Keeping those two things separate matters. Fit tells you whether to invest at all. Behavior and role tell you who to talk to and when. Groful's account scoring post covers the second half of that split — this one is about getting the fit number right in the first place.

Start from customers, not intuition

The biggest mistake teams make is writing an ICP from a whiteboard session instead of from data. Someone lists "series B, 50-200 employees, uses Salesforce" because it sounds right, and the model ships without ever being checked against who actually pays.

Pull your last 50-100 closed-won accounts and your last 50-100 accounts that churned or never converted. Compare them on:

  • Company size (employee count, not revenue band guesses)
  • Industry and vertical
  • Tech stack, where you can detect it
  • Funding stage or growth rate
  • Which plan or tier they landed on
  • Time to first value and expansion within 90 days

You're looking for attributes that separate the two groups, not attributes that describe your average customer. "Most of our customers are in the US" isn't useful if churned accounts are just as likely to be in the US. An attribute only earns a place in the model if it actually splits good from bad.

Building the scoring model

Step 1: pick a small set of predictive attributes

Five to eight attributes beats twenty. A long list of inputs feels rigorous but usually means half of them are noise, and nobody can explain why a given account scored the way it did. Keep firmographic signals (size, industry, funding) separate from behavioral ones (usage, invites, integrations). You'll want to test them independently later.

Step 2: weight by how much each attribute actually predicts outcomes

Not every attribute deserves equal weight. If company size correlates strongly with expansion revenue and industry barely correlates at all, size should carry more of the score. A simple weighted average works fine to start:

AttributeWeightWhy
Company size in target range30%Strongest correlation with plan tier and expansion
Industry match20%Predicts use case fit, not deal size
Funding stage or growth signal15%Correlates with budget authority
Tech stack compatibility15%Predicts integration friction, adoption speed
Existing tool overlap10%Weak but real signal for switching cost
Geography or timezone fit10%Matters mainly for support and sales coverage

Revisit these weights quarterly against real conversion data. A weight that made sense at your last funding round often doesn't hold once your customer base shifts.

Step 3: set score tiers, not just a single number

A raw 0-100 score is hard to act on. Translate it into three or four tiers with clear rules attached:

  • Tier A (80+): Auto-flag for sales-assist, priority in onboarding sequences, eligible for expansion outreach.
  • Tier B (55-79): Self-serve by default, revisit if usage signals improve.
  • Tier C (30-54): Standard nurture, no manual rep time.
  • Tier D (below 30): Deprioritize; don't spend enrichment or rep budget here.

Tiers are what make the score usable across the team. "72 out of 100" means nothing to a rep. "Tier A, auto-routed" does.

Step 4: score at the account level, and score teammates separately

A company-level ICP score should apply to the account as a whole, not just the person who happened to sign up first. When you find other people at that company through teammate discovery, score each of them against the same rubric for role and seniority, but keep the underlying account fit score shared across everyone at that domain. Otherwise you end up with five different "ICP scores" for one company depending on who logged in that day, which defeats the point.

Watch for drift

An ICP that was accurate a year ago can quietly stop matching reality. Your product moves upmarket, a new use case takes off, or a segment that used to convert well starts churning. If nobody rechecks the model, the score keeps outputting confident numbers that no longer mean anything.

Run a quarterly check: pull the last quarter's closed-won and lost accounts, score them against the current model, and see if the tiers still separate winners from losers. If Tier A accounts are converting at the same rate as Tier C, the model has drifted and needs new weights, not just a shrug. ICP drift covers the feedback loop for catching this before it costs a quarter of wasted rep time.

Common mistakes

Scoring on firmographics alone. Company size and industry are a starting point, not the whole picture. Two companies of identical size can have completely different buying behavior. Blend in behavioral signals once you have enough usage data to make them reliable.

Building the model once and never touching it. Treat it like a living rubric, not a one-time project. Set a recurring calendar reminder to review it, because nobody does this voluntarily once the initial project is "done."

Making the score a black box. If a rep can't see why an account scored the way it did, they'll ignore the score entirely and go back to gut feel. Show the underlying attributes alongside the tier, not just the final number.

Confusing ICP fit with intent. A Tier A account that hasn't done anything in the product yet isn't ready for outreach — it's just a good candidate for one, once intent signals show up. Combining fit and intent into a single "lead score" tends to bury both signals. Groful's lead scoring model breaks down how to keep them separate without losing either one.

Checklist before you ship a scoring model

  • Attributes were tested against real closed-won and lost accounts, not guessed
  • Five to eight attributes, weighted by actual correlation with outcomes
  • Score converted into tiers with specific actions attached to each
  • Account-level score shared across all users at that company
  • Quarterly review scheduled, with an owner named
  • Reps and CS can see the attributes behind the score, not just the number
  • Fit score kept separate from intent or activity signals

Where Groful fits

Groful enriches every signup with the company and role data an ICP model needs, then scores users, teammates, and companies against your ICP automatically as accounts change. No manual CSV exports, no stale spreadsheet that someone updates twice a year.

If you're building this out, see how it plays for growth managers and RevOps specifically, check the PLG signup enrichment solution, or get in touch to walk through your current ICP definition. Pricing is on the pricing page if you're ready to see it against your own signup data.

Turn this playbook into workflow

Enrich signups, score ICP fit, and surface expansion opportunities with Groful.