---
# === IDENTITY ===
id: business/customer-research/ideal-customer-profile-framework/2026
canonical_question: "How do I build an ICP — firmographic (B2B) or demographic (B2C) criteria, behavioral signals, disqualification criteria?"
aliases:
  - "ideal customer profile template B2B B2C"
  - "ICP framework with qualification and disqualification criteria"
  - "how to define your ideal customer profile"
entity_type: execution_recipe
domain: business > customer-research > ideal customer profile framework
region: global
jurisdiction: global
temporal_scope: 2024-2026

# === VERIFICATION ===
last_verified: 2026-03-11
confidence: 0.89
version: 1.0
first_published: 2026-03-11

# === TEMPORAL VALIDITY ===
temporal_validity:
  status: evolving
  last_breaking_change: null
  next_review: 2026-09-07
  change_sensitivity: medium

# === CONSTRAINTS ===
constraints:
  - "ICP must be built from actual customer data, not aspirational targets — analyze your best 10-20 customers first"
  - "B2B ICPs require firmographic + technographic + behavioral criteria; demographic alone is insufficient"
  - "Disqualification criteria are as important as qualification — without them, sales wastes 30-40% of time on bad-fit prospects"
  - "ICP should be reviewed quarterly against win/loss data — market shifts can invalidate criteria within 6 months"

# === SKIP CONDITIONS ===
skip_this_unit_if:
  - condition: "User needs individual buyer profiles with psychographics and buying behavior"
    use_instead: "business/customer-research/buyer-persona-development-methodology/2026"
  - condition: "User is pre-revenue with no customers to analyze"
    use_instead: "business/customer-research/buyer-persona-development-methodology/2026"

# === AGENT HINTS ===
inputs_needed:
  - key: business_model
    question: "Is this B2B, B2C, or B2B2C?"
    type: choice
    options: ["B2B", "B2C", "B2B2C"]
  - key: customer_count
    question: "How many existing customers do you have?"
    type: choice
    options: ["0 (pre-launch)", "1-10", "11-50", "51-200", "200+"]
  - key: crm_data
    question: "Do you have CRM data with deal history?"
    type: choice
    options: ["Yes, with revenue data", "Yes, basic records only", "No CRM"]

# === EXECUTION METADATA ===
execution:
  required_inputs:
    - name: "Customer list with revenue data"
      source: "CRM or billing system"
      format: "Spreadsheet with company name, revenue, deal size, churn status, acquisition date"
    - name: "Buyer persona profiles"
      source: "business/customer-research/buyer-persona-development-methodology/2026"
      format: "JSON persona profiles"
  outputs:
    - name: "ICP Document"
      format: "JSON + narrative"
      description: "Structured ICP with qualification criteria, disqualification criteria, scoring model, and targeting filters"
    - name: "ICP Scoring Rubric"
      format: "Spreadsheet"
      description: "Weighted scoring model for evaluating prospects against ICP criteria"
  tools_required:
    - name: "CRM (HubSpot/Salesforce/Pipedrive)"
      purpose: "Customer data analysis and segmentation"
      tier: free
      cost: "$0 (HubSpot free) to $75/mo (Salesforce Essentials)"
      alternatives: ["Google Sheets with manual data"]
    - name: "Clearbit / ZoomInfo"
      purpose: "Firmographic and technographic enrichment"
      tier: paid
      cost: "$99-499/mo"
      alternatives: ["LinkedIn Sales Navigator ($99/mo)", "Manual research ($0)"]
    - name: "Google Sheets / Excel"
      purpose: "ICP scoring model and analysis"
      tier: free
      cost: "$0"
      alternatives: ["Airtable"]
  credentials_needed:
    - service: "CRM system"
      type: "Account login"
      where_to_get: "Depends on CRM provider"
      free_tier_limits: "HubSpot free: unlimited contacts, limited reporting"
  estimated_duration: "1-2 weeks (data collection + analysis + validation)"
  estimated_cost: "$0 (manual analysis) to $500/mo (enrichment tools)"

# === DISTRIBUTION ===
canonical_source: "https://knowledgelib.io/business/customer-research/ideal-customer-profile-framework/2026"
suggested_citation: "Source: knowledgelib.io — AI Knowledge Library (verified 2026-03-11)"

# === RELATED UNITS ===
related_kos:
  depends_on:
    - id: business/customer-research/buyer-persona-development-methodology/2026
      label: "Buyer persona profiles that inform ICP individual-level criteria"
  feeds_into:
    - id: business/customer-research/buyer-journey-mapping/2026
      label: "Journey mapping for ICP-matched prospects"
  related_to:
    - id: business/customer-research/customer-interview-guide-template/2026
      label: "Interview guide for validating ICP criteria"
  alternative_to: []

# === SOURCES ===
sources:
  - id: src1
    title: "How to Define Your Ideal Customer Profile (ICP) for Precision Targeting"
    author: Gartner Digital Markets
    url: https://www.gartner.com/en/digital-markets/insights/b2b-ideal-customer-profile
    type: industry_report
    published: 2025-01-20
    reliability: authoritative
  - id: src2
    title: "How to Identify Your Ideal Customer Profile (ICP)"
    author: Lenny Rachitsky
    url: https://www.lennysnewsletter.com/p/how-to-identify-your-ideal-customer
    type: technical_blog
    published: 2024-08-15
    reliability: high
  - id: src3
    title: "Ideal Customer Profile (ICP): Complete B2B Guide & Template"
    author: Via Marketing
    url: https://viamrkting.com/ideal-customer-profile-icp-for-b2b-marketing/
    type: technical_blog
    published: 2024-10-01
    reliability: high
  - id: src4
    title: "What's an Ideal Customer Profile? A Way to Find Your Best Prospects"
    author: Salesforce
    url: https://www.salesforce.com/blog/ideal-customer-profile/
    type: official_docs
    published: 2024-11-15
    reliability: authoritative
  - id: src5
    title: "7-Step Ideal Customer Profile Guide"
    author: FullFunnel.io
    url: https://fullfunnel.io/ideal-customer-profile/
    type: technical_blog
    published: 2025-02-01
    reliability: high
  - id: src6
    title: "How to Build Your B2B Ideal Customer Profile With Our Free Template"
    author: Kalungi
    url: https://www.kalungi.com/blog/how-to-define-b2b-ideal-customer-profile-template-icp
    type: technical_blog
    published: 2024-12-10
    reliability: high
---

# Ideal Customer Profile Framework

## Purpose

This recipe produces a scored Ideal Customer Profile (ICP) document with explicit qualification criteria, disqualification criteria, and a weighted scoring rubric that sales and marketing teams can apply to every prospect. For B2B, the ICP defines the company-level attributes (firmographic, technographic, behavioral) of your best customers. For B2C, it defines the individual-level demographic, psychographic, and behavioral attributes. The output enables precision targeting — focusing 80%+ of go-to-market effort on the 20% of prospects most likely to convert and retain.

## Prerequisites

- [ ] **Customer data with revenue metrics** — minimum 10 customers with deal size, lifetime value, and churn status
- [ ] **Buyer persona profiles** — from [Buyer Persona Development Methodology](/business/customer-research/buyer-persona-development-methodology/2026)
- [ ] **CRM access** — or spreadsheet export of customer records
- [ ] **Win/loss data** — at least 10 wins and 5 losses for pattern analysis
- [ ] **Spreadsheet tool** — Google Sheets or Excel for scoring model

## Constraints

- ICP must be built from actual customer data, not aspirational targets — analyze your best 10-20 customers first [src1]
- B2B ICPs require firmographic + technographic + behavioral criteria; demographic alone is insufficient [src3]
- Disqualification criteria are as important as qualification — without them, sales wastes 30-40% of time on bad-fit prospects [src5]
- ICP should be reviewed quarterly against win/loss data [src4]

## Tool Selection Decision

```
Which path?
├── Pre-revenue (0 customers)
│   └── PATH A: Hypothesis ICP — competitor customer analysis + market research
├── Early-stage (1-50 customers) AND no CRM
│   └── PATH B: Manual Analysis — spreadsheet-based pattern matching
├── Growth-stage (50+ customers) AND CRM data
│   └── PATH C: Data-Driven — CRM analysis + enrichment tools
└── Scale (200+ customers) AND full tech stack
    └── PATH D: Predictive — AI scoring models + enrichment + intent data
```

| Path | Tools | Cost | Time | ICP Precision |
|------|-------|------|------|--------------|
| A: Hypothesis | LinkedIn, competitor case studies | $0 | 3-5 days | Low (needs validation) |
| B: Manual Analysis | Spreadsheet, manual research | $0 | 1-2 weeks | Moderate |
| C: Data-Driven | CRM + Clearbit/ZoomInfo | $99-499/mo | 1-2 weeks | High |
| D: Predictive | CRM + enrichment + ML scoring | $500+/mo | 2-4 weeks | Very High |

## Execution Flow

### Step 1: Analyze Best Customers

**Duration**: 2-4 hours
**Tool**: CRM + spreadsheet

Export your customer list and identify your top 20% by value (revenue, lifetime value, expansion, referrals). These are the customers your ICP should describe.

```markdown
## Best Customer Analysis Template

For each of your top 20% customers, collect:

### B2B Firmographic Criteria
- Company name
- Industry / vertical
- Employee count (range)
- Annual revenue (range)
- Geographic HQ location
- Funding stage (bootstrapped, seed, Series A-D, public)
- Years in operation

### B2B Technographic Criteria
- Tech stack (CRM, marketing tools, dev tools, cloud provider)
- Current solutions in your category
- Integration requirements
- IT team size / sophistication

### Behavioral Criteria (B2B and B2C)
- How they found you (channel)
- Sales cycle length
- Champion title/role
- Decision-maker title/role
- Expansion history (upsells, cross-sells)
- Support ticket volume
- NPS score / satisfaction

### B2C Demographic Criteria
- Age range
- Income range
- Education level
- Location (urban/suburban/rural)
- Household composition
- Device usage patterns
```

**Verify**: Top-20% list contains at least 5 customers with complete attribute data.
**If failed**: If fewer than 5, include top 30% or supplement with qualitative analysis of your "dream" customers.

### Step 2: Identify Common Patterns

**Duration**: 2-4 hours
**Tool**: Spreadsheet

Aggregate the top-customer data and find the statistical clusters — the attributes your best customers share.

```markdown
## Pattern Analysis Method

1. For each attribute, calculate the mode (most common value) across top customers
2. Calculate the concentration ratio: what % of top customers share the same attribute value?
3. Mark attributes with > 60% concentration as "strong ICP signals"
4. Mark attributes with 40-60% concentration as "moderate signals"
5. Mark attributes with < 40% concentration as "weak signals — do not include in ICP"

Example output:
| Attribute | Mode Value | Concentration | Signal Strength |
|-----------|-----------|---------------|----------------|
| Industry | SaaS / Tech | 75% | Strong |
| Employee count | 50-200 | 65% | Strong |
| Revenue | $5M-$50M | 55% | Moderate |
| Funding stage | Series A-B | 70% | Strong |
| Champion role | VP Marketing | 60% | Strong |
| HQ location | US West Coast | 40% | Weak |
```

**Verify**: At least 4 attributes show "strong" signal strength (> 60% concentration).
**If failed**: Your customer base may be too diverse for a single ICP. Consider creating 2 distinct ICPs for different segments.

### Step 3: Define Disqualification Criteria

**Duration**: 1-2 hours
**Tool**: Spreadsheet + CRM

Analyze your worst customers (churned, low NPS, unprofitable, long sales cycles) and identify anti-patterns.

```markdown
## Disqualification Analysis

Review your bottom 20% customers (highest churn, lowest LTV, most support-intensive):

### Hard Disqualifiers (never pursue)
- [Attribute]: [Value] — Reason: [why these always fail]
  Example: "Company size < 10 employees — churn rate 85%, support cost exceeds revenue"
- [Attribute]: [Value] — Reason: [why]
  Example: "No existing CRM — implementation fails 90% of time, 6-month sales cycle"

### Soft Disqualifiers (proceed with caution)
- [Attribute]: [Value] — Risk: [what to watch for]
  Example: "Government sector — 12-month sales cycle vs. 6-week average, procurement complexity"
- [Attribute]: [Value] — Risk: [what to watch for]

### Lost Deal Patterns
Analyze last 10-20 lost deals:
- Most common reason for loss: [e.g., "Price", "Feature gap", "Status quo"]
- Attributes shared by lost deals: [e.g., "60% were enterprises > 5000 employees"]
- Attributes shared by won deals: [e.g., "80% had a technical champion"]
```

**Verify**: At least 3 hard disqualifiers and 2 soft disqualifiers identified with data backing.
**If failed**: If churn data is insufficient, interview your customer success team for qualitative disqualification patterns.

### Step 4: Build the ICP Scoring Model

**Duration**: 2-3 hours
**Tool**: Spreadsheet

Create a weighted scoring model that quantifies how well any prospect matches the ICP.

```json
{
  "icp_scoring_model": {
    "qualification_criteria": [
      {"attribute": "industry", "ideal_values": ["SaaS", "Tech", "FinTech"], "weight": 20, "scoring": {"exact_match": 20, "adjacent": 10, "no_match": 0}},
      {"attribute": "employee_count", "ideal_range": [50, 500], "weight": 15, "scoring": {"in_range": 15, "within_2x": 8, "out_of_range": 0}},
      {"attribute": "annual_revenue", "ideal_range": [5000000, 100000000], "weight": 15, "scoring": {"in_range": 15, "within_2x": 8, "out_of_range": 0}},
      {"attribute": "tech_stack_fit", "required_tools": ["CRM", "marketing_automation"], "weight": 15, "scoring": {"all_present": 15, "partial": 8, "none": 0}},
      {"attribute": "champion_present", "required": true, "weight": 20, "scoring": {"yes": 20, "maybe": 10, "no": 0}},
      {"attribute": "budget_authority", "required": true, "weight": 15, "scoring": {"confirmed": 15, "likely": 8, "unknown": 3}}
    ],
    "disqualification_criteria": [
      {"attribute": "company_size", "disqualify_if": "< 10 employees", "reason": "85% churn rate"},
      {"attribute": "no_existing_crm", "disqualify_if": true, "reason": "Implementation failure 90%"},
      {"attribute": "government_sector", "flag_as": "high_risk", "reason": "12-month sales cycles"}
    ],
    "scoring_tiers": {
      "tier_1_ideal": {"min_score": 80, "action": "Prioritize — assign senior AE, fast-track"},
      "tier_2_good": {"min_score": 60, "action": "Pursue — standard sales process"},
      "tier_3_marginal": {"min_score": 40, "action": "Qualify further before investing time"},
      "tier_4_poor": {"min_score": 0, "action": "Do not pursue — refer or decline"}
    }
  }
}
```

**Verify**: Total weights sum to 100. Each criterion has clear scoring rules.
**If failed**: Simplify to a 3-criterion model (industry, size, champion) and add complexity as you collect more data.

### Step 5: Validate and Document the ICP

**Duration**: 2-4 hours
**Tool**: Document editor

Test the scoring model against 20 known outcomes (10 best customers, 10 worst/churned). The model should correctly classify 80%+ of known outcomes.

```markdown
## ICP Validation Test

| Company | Actual Outcome | ICP Score | Tier | Correct? |
|---------|---------------|-----------|------|----------|
| Customer A | Top 20% | 92 | Tier 1 | Yes |
| Customer B | Churned | 35 | Tier 4 | Yes |
| Customer C | Top 20% | 78 | Tier 2 | Close |
| ...20 total rows... |

Accuracy: [X]% (target > 80%)
False positives (scored high, bad outcome): [count]
False negatives (scored low, good outcome): [count]
```

**Output files**:
- `icp-profile.json` — Structured ICP with all criteria and scoring model
- `icp-scoring-rubric.csv` — Spreadsheet scoring template for sales team
- `icp-narrative.md` — Human-readable ICP document for team alignment

## Output Schema

```json
{
  "output_type": "ideal_customer_profile",
  "format": "JSON",
  "columns": [
    {"name": "icp_name", "type": "string", "description": "Name of the ICP (e.g., 'Mid-Market SaaS Company')", "required": true},
    {"name": "business_model", "type": "string", "description": "B2B, B2C, or B2B2C", "required": true},
    {"name": "firmographic_criteria", "type": "object", "description": "Industry, size, revenue, location, funding stage", "required": true},
    {"name": "technographic_criteria", "type": "object", "description": "Tech stack requirements and integration needs", "required": false},
    {"name": "behavioral_criteria", "type": "object", "description": "Buying signals, engagement patterns, channel preferences", "required": true},
    {"name": "qualification_criteria", "type": "array", "description": "Weighted scoring attributes with ideal values", "required": true},
    {"name": "disqualification_criteria", "type": "array", "description": "Hard and soft disqualifiers with reasons", "required": true},
    {"name": "scoring_model", "type": "object", "description": "Tier definitions with score ranges and actions", "required": true},
    {"name": "validation_accuracy", "type": "number", "description": "Percentage of known outcomes correctly classified", "required": true}
  ],
  "expected_row_count": "1-3",
  "sort_order": "priority (primary ICP first)",
  "deduplication_key": "icp_name"
}
```

## Quality Benchmarks

| Quality Metric | Minimum Acceptable | Good | Excellent |
|---------------|-------------------|------|-----------|
| Customers analyzed | >= 10 | >= 25 | >= 50 |
| Qualification criteria defined | >= 4 | >= 6 | >= 8 |
| Disqualification criteria defined | >= 2 | >= 4 | >= 6 |
| Validation accuracy (known outcomes) | > 70% | > 80% | > 90% |
| Sales team adoption (using the scoring) | > 50% | > 75% | > 90% |

**If below minimum**: Gather more customer data. If data is truly limited, use a simplified 3-attribute ICP and iterate quarterly.

## Error Handling

| Error | Likely Cause | Recovery Action |
|-------|-------------|----------------|
| All customers look the same on firmographics | Firmographics are not the differentiator | Pivot to behavioral or technographic criteria |
| Scoring model gives high scores to churned customers | Wrong attributes weighted or missing disqualifiers | Add churn predictors as negative scoring factors |
| Sales team ignores the ICP | Model too complex or not integrated into workflow | Simplify to 3 must-have criteria, embed in CRM lead scoring |
| ICP too narrow (excludes good prospects) | Over-fitted to current customer base | Widen criteria ranges by 1.5x, add "adjacent" scoring |
| ICP too broad (no filtering power) | Criteria not specific enough | Add at least 2 more hard disqualifiers from lost-deal analysis |

## Cost Breakdown

| Component | Free Tier | Paid Tier | At Scale |
|-----------|-----------|-----------|----------|
| CRM data export | HubSpot Free ($0) | Salesforce ($75/mo) | Enterprise CRM ($150+/mo) |
| Firmographic enrichment | LinkedIn manual ($0) | Clearbit ($99/mo) | ZoomInfo ($500+/mo) |
| Technographic data | BuiltWith free tier ($0) | Clearbit Reveal ($99/mo) | 6sense ($1000+/mo) |
| Scoring automation | Manual spreadsheet ($0) | HubSpot lead scoring ($45/mo) | Madkudu ($500+/mo) |
| **Total** | **$0** | **$200-400/mo** | **$2000+/mo** |

## Anti-Patterns

### Wrong: Building ICP from Aspirational Targets
Defining your ICP as "Fortune 500 enterprises" when your largest customer has 200 employees. Aspirational ICPs waste sales cycles and create unrealistic pipeline forecasts. [src1]

### Correct: Build from Best-Customer Analysis
Start with who actually buys, retains, and expands. The ICP describes your best customers, not your dream customers.

### Wrong: ICP Without Disqualification Criteria
Defining who you want to sell to without defining who you should not. Without disqualifiers, sales pursues every inbound lead equally, wasting 30-40% of capacity on doomed deals. [src5]

### Correct: Equal Weight to Disqualification
For every qualification criterion, define at least one corresponding disqualifier. Make disqualification criteria visible in CRM so reps can quickly dismiss bad-fit leads.

### Wrong: Static ICP Never Updated
Creating the ICP once and using it unchanged for 2+ years. Market conditions, product capabilities, and competitive dynamics shift — your best customer profile shifts with them. [src4]

### Correct: Quarterly ICP Review Cadence
Every quarter, test 10 recent wins and 5 recent losses against the ICP scoring model. If accuracy drops below 75%, update criteria.

## When This Matters

Use this recipe when you need to focus go-to-market resources on the highest-probability prospects. Critical for scaling beyond founder-led sales, where the founder's intuition about good customers must be codified into a repeatable model.

## Related Units

- [Buyer Persona Development Methodology](/business/customer-research/buyer-persona-development-methodology/2026)
- [Customer Interview Guide Template](/business/customer-research/customer-interview-guide-template/2026)
- [Buyer Journey Mapping](/business/customer-research/buyer-journey-mapping/2026)
- [Market Timing Assessment](/business/market-research/market-timing-assessment/2026)
