Market pillar · v0.8.1

icp Icp

Ideal Customer Profile.

$id · https://corpospec.com/schemas/v0.8.1/icp.schema.json

Fields

Field Type Required Description
as_of IsoDate yes ISO 8601 date (YYYY-MM-DD).
description string yes
id PathRef yes Path-based cross-reference relative to .corpospec/ root. Pattern: `^[a-z0-9_-]+(/[a-z0-9_.-]+)+$`
name string yes
priority IcpPriority yes ICP priority level.
status IcpStatus yes ICP lifecycle status.
anti_icp IcpAntiIcp?
bdr_reference PathRef?
buying_behavior IcpBuyingBehavior?
custom IcpCustom?
discovery_channels_additional string[]
geography IcpGeography?
inheritance_note string?
inherits_from PathRef?
market_sizing_note string? ICP-specific note about how this segment fits into TAM/SAM/SOM — segment share, expected ACV, conversion assumptions. Keeps the link between an ICP and the market-sizing model without duplicating the sizing numbers here.
notes string?
overrides IcpOverrides?
pain_point IcpPainPoint? Singular pain point (founder ICP shape). Legacy naming from single-pain ICP definitions. Prefer the plural `pain_points` form in new ICPs; both exist to accommodate the two historical shapes.
pain_points IcpPainPoint? Layered pain points (leadership ICP shape). Despite the plural name, the value is still an `IcpPainPoint` which already carries `primary` / `secondary` / `tertiary` slots.
rationale string? Rationale for why this ICP was chosen — typically references the strategic logic (market pull, founder fit, distribution advantage) and should pair with `bdr_reference` where a decision record exists.
references string[]
stage_range IcpStageRange?
sub_segments IcpSubSegment[]
value_progression object? Value progression — keys are stage names (e.g. pre_seed, adoption).
vertical IcpVertical?

Definitions

Shared types referenced within this schema.

IcpAdditionalNeed
Additional need entry for a derived ICP override.
type: object
IcpAntiIcp
Anti-ICP definition.
type: object
IcpBudget
ICP budget information.
type: object
IcpBuyingBehavior
ICP buying behavior.
type: object
IcpCustom
Typed custom extension data for `Icp`.
type: object
IcpDiscoveryChannels
ICP discovery channels configuration.
type: object
IcpExclusion
An exclusion entry in the anti-ICP definition.
type: object
IcpGeography
Geographic focus.
type: object
IcpMotivation
Motivation override for a derived ICP.
type: object
IcpNonExclusion
An explicit non-exclusion in the anti-ICP definition.
type: object
IcpOverrides
Override fields for a derived ICP.
type: object
IcpPainPoint
ICP pain point definition (superset for singular and layered variants).
type: object
IcpPartnershipChannel
Partnership channel within ICP discovery channels.
type: object
IcpPriorContext
Prior context for a derived ICP override.
type: object
IcpPriority
ICP priority level.
enum: "co-primary", "primary", "secondary", "tertiary"
IcpStageRange
Stage range for an ICP segment.
type: object
IcpStatus
ICP lifecycle status.
enum: "active", "inactive", "deprecated"
IcpSubSegment
ICP sub-segment definition.
type: object
IcpVertical
Vertical market focus phases.
type: object
IsoDate
ISO 8601 date (YYYY-MM-DD).
type: string
PathRef
Path-based cross-reference relative to .corpospec/ root. Pattern: `^[a-z0-9_-]+(/[a-z0-9_.-]+)+$`
pattern: ^[a-z0-9_-]+(/[a-z0-9_.-]+)+$
SubSegmentDemographics
Demographics for an ICP sub-segment.
type: object
SubSegmentPsychographics
Psychographics for an ICP sub-segment.
type: object
ValueProgressionStage
A stage in the ICP value progression.
type: object

Reference in your YAML

# yaml-language-server: $schema=https://corpospec.com/schemas/v0.8.1/icp.schema.json