River
Y CombinatorBacked by Y Combinator
FREE TEMPLATE

Ideal Customer Profile Template

Five documents and three sheets that join your closed deals to your billing history, then rank segments on what an account is worth over two years.

Free download  ·  No account needed

Segment Performance

The same three segments, ranked twice

Bramwell Analytics, reporting software  ·  640 closed opportunities, 187 won, 142 old enough to measure at 24 months

SegmentWin rateCohortRetainedLogo ret.Per accountPer opportunity
Agencies41.6%712129.6%$18,245$7,588
In-house, multi-site24.0%383386.8%$47,376$11,361
Everything else22.2%331442.4%$24,855$5,511

The ranking flips on the same data

Agencies close 17.6 points better and are worth a third less per opportunity worked. Value per opportunity is win rate multiplied by what an account returns over the horizon, and the two factors pull in opposite directions here.

Two rules that make the numbers honest

Only accounts old enough to answer are counted. Forty-five of the 187 won accounts started less than 24 months ago. They are excluded, not counted as retained. A rate quoted against the full won set flatters by construction.

Value per account divides by the cohort, not the survivors. Dividing by survivors is the most common way this measurement gets ruined, and it always produces a better number than the truth.

Net revenue retention over the same window: 107.8% in-house, 26.7% agencies, 58.6% across the cohort.

A closed-won export contains exactly one outcome. On the Salesforce Opportunity object, `IsWon` and `IsClosed` are booleans driven entirely by `StageName`, and no standard field records whether the account renewed. The HubSpot deal object is the same shape: `dealstage`, `closedate`, `amount`, nothing about year two. Renewal is an account fact that happens long after the deal closes, so it sits in the billing system instead. Joining the two is a spreadsheet operation somebody has to sit down and perform.

Which is why almost every ideal customer profile is derived from win rate. Not because win rate is the right measure, but because it is the column already in the file. Join the two systems and the ranking often reverses. Bramwell's agency segment closes at 41.6 percent and returns $7,588 per opportunity worked. Its in-house segment closes at 24.0 percent and returns $11,361, because 86.8 percent of those accounts were still paying at two years against 29.6 percent of the agencies.

Then the sharper finding, which sits inside the best-looking segment rather than outside it. One discovery question splits those 71 agency accounts into 37 that retained at 48.6 percent and 34 that retained at 8.8 percent, and the second group came in $58,800 below the company's own payback threshold. That is a disqualifier a rep can use. The fit score built on the same cohort gets tested on a holdout period. It installs into the marketing workspace beside the positioning canvas and the rest of the template library.

The cohort account by account, the criteria with their arithmetic, and a score tested out of sample

Cohort Retention and Expansion, the Disqualification Criteria with payback arithmetic, and the Fit Scoring Model with its holdout.

Cohort Retention and Expansion

One row per account, 142 of them, with starting and current recurring amounts. Segment rollups below.

GroupAccountsRetainedExpandedStartingAt 24 monthsNet rev. ret.
Agencies712112$1,022,400$273,00026.7%
  single client engagement3431$476,800$39,0008.2%
  ongoing operating need371811$545,600$234,00042.9%
In-house, multi-site383324$866,400$933,900107.8%
Everything else33148$580,800$239,40041.2%
Measurable cohort1426844$2,469,600$1,446,30058.6%

The only segment above 100 percent net revenue retention is the one that closes worst. Twenty-four of its 33 survivors increased their recurring amount, which is a second signal agreeing with the first and the reason a cohort of 38 is usable rather than reckless.

Forty-five won accounts are missing from this table on purpose. They started inside the horizon and cannot yet answer the question. Counting them would move logo retention from 47.9 percent to 36.4 percent of the won set and mean nothing at all.

Measure the horizon from the billing start rather than the signature. An account that signed in March and went live in July has four months of contract and no exposure.

Disqualification Criteria

Every criterion observable before the sale, tested against retention, priced against a $16,900 payback threshold.

CriterionKindAccountsRetainedRateReturned per accountAgainst threshold
Buying for a single client engagementhard3438.8%$15,171short by $1,729
Buying for an ongoing operating needpursue371848.6%$21,070clears by $4,170
No named weekly owner at signaturehard23417.4%binary, no version of the sale works
Fewer than six physical locationssoftroute to self serve, do not decline
Industry classificationnot a criterionno separation once locations are held constant
Estimated annual revenuenot a criteriondocumented as an estimate, 41% populated
Deal size at signaturenot a criterionsmall deals retained as well as large

The first two rows are the same segment. Both sit inside the highest win rate in the business, so a win-rate profile recommends both, and one of them loses money on the company's own threshold. The criterion is a line drawn through the middle of the best segment rather than a fence around it.

What is not a criterion is written down too. Industry and deal size get proposed every quarter, so the test that cleared them is recorded rather than re-argued.

Enforcement is three changes: the hard questions become required discovery fields, failing an opportunity needs a written exception, and the exceptions get counted against how those accounts performed.

Fit Scoring Model

Six attributes, small integer weights, fitted on the earlier accounts and tested on the later ones.

AttributeSource fieldWeightFill rateSeparates alone
Six or more physical locationsenrichment, verified on their site2594%yes
Marketing owned in-housediscovery, verified on careers page2571%yes
Between 40 and 400 employeesNumberOfEmployees1588%no, only in combination
Reports assembled by hand each monthdiscovery1566%yes
Named weekly owner at signaturediscovery1088%yes
Ongoing need, not one engagementdiscovery1062%yes
Quartile by scoreBuild set, 98 accountsHoldout, 44 accounts
Top quartile22 of 25   88.0%8 of 11   72.7%
Second15 of 24   62.5%5 of 11   45.5%
Third9 of 25   36.0%3 of 11   27.3%
Bottom quartile4 of 24   16.7%2 of 11   18.2%
Spread, top minus bottom71.3 points54.5 points

The split is by billing start date, never at random. A random split lets the score borrow from the future, and the question it has to answer is about accounts that have not arrived yet. The shrinkage from 71.3 points to 54.5 is the honest measure of what the score is worth.

Then score the losses. High-scoring closed-lost deals are a sales or product problem rather than a targeting one. Low-scoring wins are the accounts the criteria would have declined, and counting them quarterly is what keeps the criteria enforceable.

Weights stay small integers so a representative can look at a score of 65 and name the three attributes that produced it.

What's in the pack

01

Cohort Retention and Expansion

One row per measurable account with its starting and current recurring amount, so every rate in the pack is derivable from the rows rather than asserted above them.

02

Segment Performance

Win rate, logo retention, net revenue retention, value per account and value per opportunity worked, with the counts beside every rate.

03

Fit Scoring Model

Six weighted attributes, all observable before a sale, with quartile separation reported for both the build set and a holdout period.

04

Disqualification Criteria

Who to decline, split into hard, soft and deliberately-not-a-criterion, each with its counts and its arithmetic against the payback threshold.

05

ICP Definition

The measurement set first, then the attributes with their source fields and fill rates, then what the profile gives up and the number that would change it.

06

Persona Briefs

Three briefs inside the primary segment plus an anti-persona, separating the weekly owner from the signer and the person who appears late and stops the deal.

07

Cohort Method

How the join works, the two date traps in the export, and how to grade firmographic fields that are not equally trustworthy.

08

Fit Score Validation

Why the split is by date rather than at random, what shrinkage between the two spreads means, and when to re-fit.

How to use it

  1. 1

    Open in River, or take it blank

    Open the pack in River and send both exports, or download the Word documents and CSV sheets and do the join yourself in a spreadsheet.

  2. 2

    Send two files, not one

    Closed opportunities with firmographics, and billing history keyed on the account. The second file is the one that makes this different from every other ICP exercise.

  3. 3

    Cut the cohort honestly

    Only accounts old enough to have reached the horizon can be measured. State how many won accounts that excludes, and never count the young ones as retained.

  4. 4

    Split your best segment

    Run retention against what buyers said at discovery. The strongest disqualifier is usually hiding inside the segment with the best win rate, not outside it.

Frequently asked questions

Is this template free?

Yes, with no account, no card and no email gate on the download. Edit with AI is the optional half: River does the join, cuts the cohort, ranks the segments and drafts the criteria. Every pack sits in the template library.

What if I have no billing export?

Anything account-keyed with a status and a date works. An invoice list, a subscription report, even a renewals tab somebody maintains by hand. What will not work is a closed-won list on its own, because it cannot tell you which of those accounts is still paying.

How many accounts do I need?

Enough to have reached the horizon and still split. The worked example rests on 38 measurable accounts in its primary segment and says so explicitly, along with the cohort size that would trigger a re-measurement. Small samples are usable. They are not usable silently.

Why two years rather than one?

A twelve-month horizon on an annual contract measures onboarding, because the renewal has not happened yet. Twenty-four months captures one real renewal event. Shorter windows are worth running when that is all the data allows, labelled as what they actually measure.

Is this different from a positioning statement?

Yes, and they answer to different evidence. The positioning canvas tests the segment against win rate and contract value at close. This tests the same attributes against whether the account was still paying two years later, which frequently reorders them.

Why does the ICP need disqualifiers?

Because a profile naming only who to pursue leaves a rep with a bad deal in front of them nothing to point at. A criterion with counts, a retention rate and a shortfall against the payback threshold survives that conversation. A preference does not.

What does Edit with AI actually do?

It signs you up, installs this pack as a private workspace, and starts with the join. Send both exports and the segment table comes back ranked on value per opportunity worked, with the accounts too young to measure named and set aside.

Find out which segment is still paying

Take the Word documents and CSV sheets blank, or open this exact pack in River and send it your closed deals and your billing history.

Edit with AI