Every B2B founder I work with has an ICP document. Most of them are wrong.
Not wrong in a small way. Wrong in the way that quietly burns six figures of pipeline budget per quarter. The written ICP describes the customer the company wants. The closed-won data describes the customer the company actually has. The gap between those two is where marketing spend goes to die.
I saw this last month with a Series A team in Berlin. Their deck said the ICP was "Series B to Series C SaaS companies, 100 to 500 employees, in fintech or logistics." Sounded clean. Then I pulled their closed-won data from HubSpot. Twenty-three deals over the last 18 months. Of those, exactly three matched the written ICP. The other twenty were SMBs between 25 and 80 employees, none of them in fintech, and almost half were professional services firms running internal ops on SaaS tools.
The SDR team had been booking meetings against the written ICP. Win rate: 11%. Sales cycle: 178 days. Meanwhile the deals that closed easy were coming inbound from a segment nobody was targeting.
This post is about how to fix that. Not with a new framework. With an afternoon in your CRM.
What an ICP actually is
An ideal customer profile describes the type of company most likely to buy from you, get value fast, stay long, and refer others. It is a company-level definition. Not a persona. Not a buyer profile. ICP answers "what kind of company should we go after." Persona answers "who inside that company makes the call."
The two get conflated all the time, which is part of the problem. A clean ICP has four layers:
- Firmographic: industry, employee count, revenue band, geography, business model
- Technographic: what tools are in their stack, what they recently bought
- Operational: how they sell, how big the buying group is, what triggered the search
- Outcome: what win they got from your product, how long it took
Most B2B teams stop at the first layer. That's where the trouble starts.
Why your written ICP is wrong
I have a working theory after running ICP audits for about 30 teams. The written ICP is almost always shaped by three forces that have nothing to do with actual product-market fit.
The first is fundraising. The deck ICP gets written for investors who want to hear "we sell to mid-market." So mid-market ends up on paper. The deals that close are mostly small business. Nobody updates the document.
The second is founder bias. The founders came from one specific industry, so the ICP gets framed around that industry. The product itself is more general, but the messaging stays narrow. Adjacent buyers exist but never get targeted.
The third is competitive copying. Someone looked at how Gong defines its ICP and pasted a similar shape into the doc. Different product, same words. Nobody noticed.
None of this gets caught because the company is also closing deals, just slowly and in segments the leadership team doesn't watch. The pipeline that comes in via inbound looks "off-ICP" so nobody chases it harder. The outbound team keeps grinding on the aspirational segment. Win rates stay low. Quotas get missed. Someone eventually blames the SDRs.
The real problem is the ICP document.
The audit: how to extract your real ICP from CRM data
This takes one afternoon if your CRM is reasonably clean. Two days if it's a mess. Here's the order I run it in.
Step 1: Pull all closed-won deals from the last 18 to 24 months
Eighteen months minimum. If you go shorter you miss seasonal patterns and segments that only buy in Q4. If you go longer than 24, you start mixing in old positioning that no longer applies.
Pull these fields per deal:
- Account name, industry, employee count, country
- Deal source (inbound, outbound, referral, partner, event)
- Days from first touch to close
- ACV
- What product or plan they bought
- The contact who signed (title, department)
- Renewal status if applicable
If your industry and employee count fields are sparse, this is where you enrich. Clay is the fastest path. Run the account list through a waterfall (Clearbit, LinkedIn, Apollo) and pull firmographics into a Google Sheet.
Step 2: Tag deals by health, not just won/lost
Closed-won is not the same as a good fit. Some of your wins are accounts that paid for six months and churned. Those should not shape your ICP.
I tag every won deal as one of:
- Healthy: still a customer after 12 months, expanded, or referred
- Surviving: still a customer, no expansion, no advocacy
- Churned: cancelled within 12 months
- Discount-distorted: closed at >25% off list, so the unit economics are bad
Build your ICP from the healthy bucket only. Surviving customers are fine but they shouldn't define what you go after. Churned and discount-distorted accounts are signals about what to avoid.
Step 3: Find the clusters
Open the healthy deal list and look at the firmographic mix. You are looking for the boring, repeatable patterns that you might have dismissed.
When I did this with the Berlin client, the cluster jumped out immediately: 25 to 80 person professional services firms, founder-led, on HubSpot Starter, with a head of operations who had been in role 12 to 24 months. That was 14 of their 20 healthy wins. They had been ignoring this entire shape because it didn't match the deck.
Look for tight clusters in:
- Employee count band (the actual band, not a wide one)
- Industry (be specific, not "B2B SaaS")
- Tools they were already using when they bought
- Trigger event (new hire, funding round, audit, compliance change)
- Job title of the champion
If two or three clusters appear, that's fine. You may have a primary ICP and a strong secondary. What you don't want is a definition so broad it covers half the internet.
Your real ICP is hiding in the deals that closed without anyone trying very hard.
The wins that came easy, closed fast, and stayed long are the signal. The wins that took 200 days and a discount are noise.
Step 4: Compare to lost deals
Pull the closed-lost data from the same period. Compare the firmographic shape of healthy wins against losses.
Two patterns usually show up. The first: lost deals have a different employee count distribution. You think you sell to 200-person companies, but you keep losing those and winning 60-person ones. The second: lost deals have a missing trigger. Your healthy wins all had something happening (a new hire, a funding event, a compliance deadline). The losses didn't.
This is where you stop guessing and start writing a real ICP document.
Step 5: Write the new ICP
The new document should be specific enough that an SDR could disqualify an account in 30 seconds. If it's vague enough to need a sales call, it's not done.
A good ICP statement reads like this:
"Professional services firms, 25 to 80 employees, headquartered in the EU or UK, running HubSpot, with a head of operations or ops manager hired in the last 24 months, who recently took on accounting or compliance responsibilities. Sweet spot: 40 to 60 people, second-time founder, post-product-market-fit but pre-Series A."
Notice what's not in there: industry verticals listed for the deck. Founder stage as a vanity badge. "Innovative" or "forward-thinking" as adjectives. None of that helps anyone do their job.
The two-list test
Here's the test I run on every new ICP definition before signing off on it.
Build two lists in your CRM:
- ICP-match: accounts that fit the new definition exactly
- ICP-near-miss: accounts that match three out of five criteria but miss on one
Pull the win rate, cycle length, ACV, and net retention for each list over the last 12 months. If the ICP-match list doesn't outperform the near-miss list by at least 2x on win rate or 30% on cycle length, your definition is too loose. Tighten it.
If the numbers do separate cleanly, you have a working ICP.
What changes once the ICP is real
A real ICP makes a lot of other decisions easier. That's how you know it's working.
Outbound lists get smaller. We typically cut the total account universe by 60 to 80% after an ICP rebuild. That sounds bad to a VP of Sales who wants volume. It is in fact the point. Fewer accounts, hit harder, with messaging that maps to actual triggers.
Lead routing gets cleaner. The marketing team can score leads by ICP fit and route the top 20% to AEs and the rest to nurture. We covered the mechanics in our piece on lead routing rules, but the upstream input is the ICP definition.
Sales playbooks get tighter. Discovery questions are written for the specific buyer in the specific stage, not a generic enterprise customer. The MEDDIC and discovery work we wrote about (discovery questions, MEDDIC breakdown) depends on knowing who you're qualifying.
Attribution gets honest. You stop counting random inbound leads as "marketing wins" when they were never going to be ICP fit. The pipeline coverage math gets real.
Compensation gets fair. AEs stop getting punished for closing accidental small deals when the quota is set against an aspirational segment.
Common mistakes I see
The audit isn't complicated. The mistakes happen at the edges. A few that come up often.
Defining ICP at industry level only. "B2B SaaS" is not an ICP. There are 30,000 B2B SaaS companies. You don't sell to all of them. Get to a specific employee band, a specific buyer title, and a specific trigger.
Ignoring the buying trigger. The shape of the account matters less than what just changed inside it. The same 60-person professional services firm is a great prospect three months after hiring a new head of ops and a bad prospect one month after laying off half the team. Trigger data sits in tools like LinkedIn Sales Navigator, Common Room, or Clay enrichment workflows. Build the pipeline to surface it. We cover the mechanics in our buyer intent data piece.
Writing the ICP once and never updating it. Markets move. Your product moves. The ICP that worked at $1M ARR will not be the same one at $5M. Re-run the audit every two quarters at minimum. Once a quarter if you're growing fast.
Letting the loudest customer skew the definition. Every B2B company has one customer who pays a lot, demands a lot, and has the founder's ear. That customer is rarely a good template. Pull them out of the analysis and look at the rest.
Confusing the ICP with positioning. The ICP defines who you sell to. The positioning defines what you sell them. The two are linked but separate. A bad ICP can produce good positioning by accident, and vice versa. The audit fixes the ICP. The positioning is a different conversation.
The HubSpot setup that makes this easier next time
If you run this audit once and then watch your CRM rot back into chaos, you'll be doing it again in six months. A bit of plumbing makes the next audit a few hours instead of two days.
In HubSpot, I set up:
- Required fields on the company object: industry, employee count, country, business model
- A custom property called "ICP fit score" with values 1 to 5, calculated by a workflow based on the firmographic match
- A property called "deal health" set on the deal object, populated 12 months after close based on retention status
- A required property on closed-won deals: "trigger event" with a defined picklist (new hire, funding, compliance change, tool switch, competitor churn, other)
- A monthly workflow that flags closed-won accounts where firmographics are missing and assigns the AE to fill them in
This isn't fancy. It's the kind of CRM hygiene that pays for itself in the first audit cycle. We wrote about the broader principle in our piece on CRM data decay. The same logic applies here.
If you're running this audit on a non-HubSpot CRM, the same fields apply. The tooling just changes. Salesforce, Attio, and Pipedrive all support the structure.
Want help running this on your CRM?
We do this audit for B2B teams between $500K and $20M ARR. Book a 30-minute call and we'll show you the three changes we would make to your ICP based on a quick data pull.
Book an ICP audit →FAQ
How often should I update my ICP?
Every two quarters at minimum. If you're growing fast or just changed your pricing, every quarter. The ICP that fits at $1M ARR is rarely the same shape at $5M.
What if I don't have enough closed-won data to find a pattern?
If you have fewer than 10 healthy closed-won deals, the audit is premature. Spend that time talking to your existing customers instead. Ten 30-minute calls will tell you more than a thin dataset. Once you cross 15 to 20 healthy wins, the patterns get statistically interesting.
Should I include closed-lost in my ICP definition?
Not in the definition itself. But absolutely in the validation step. Lost deals tell you where the boundary of your ICP sits. If you keep losing to one specific shape of account, that shape is outside your real ICP, even if your deck says it's inside.
How do I get my sales team to actually use the new ICP?
Two things. First, build qualification fields into the CRM that force AEs to score ICP fit on every opportunity, ideally in stage 1 or 2. Second, report on win rate split by ICP fit score in weekly forecast calls. Once reps see their own win rate doubles on ICP-fit deals, the behavior change is fast.
Does ICP matter for product-led growth companies?
Yes, just differently. In PLG you're not deciding who to outbound to, you're deciding which signups get prioritized for human touch. The ICP definition feeds the scoring model that decides who gets a sales motion versus self-serve.
If you're rebuilding your ICP and want a second pair of eyes, we run this audit for B2B teams at Ziel Lab. The work sits at the intersection of CRM and RevOps and go-to-market strategy. Most audits take 5 to 7 days end to end.