{{ tipText }}
Churney Cohort pLTV approach picker
Get the Claude skill Copy a link to this scenario Edit answers Start again
Cohort pLTV, the budget allocation model

Cohort pLTV Chooser

Build up the right Cohort pLTV model!

Ends with a Claude skill that builds your model with you

First, how do people pay you?

This decides the maths. A business that watches every renewal and a business where nobody ever cancels need opposite models.

Pick a starting point

{{ presetLead }}

Start from scratch instead Every number has a sensible default already filled in.
Setting up your cohort model
{{ stepsLeftLine }}
Your numbers so far
{{ s.value }} {{ s.label }}
{{ stepKicker }} {{ progress }}% through

You are building a cohort pLTV model

{{ introLead }}

What it buys you
{{ j.t }}
How the next few minutes go
{{ s.n }} {{ s.t }}

{{ sellTitle }}

{{ sellLead }}

What kind of business?
{{ sellPillLabel }}
Pick at least one plan to carry on.
Free trial?

{{ plansTitle }}

{{ planLead }}

Fill these in one plan at a time. Your answers are kept as you switch.
{{ pLabel }}
{{ shareNote }}
How do people leave this plan?
Who comes back?
On these answers, {{ pPreview }}.

Conversion

Averaging this rate across the year is how January cohorts get written off and August cohorts get overpaid for.

Does it move with the season?
We will assume 70 per 100 in your best week and 40 in your worst, and label both as guesses wherever they show up.

How you buy media

The gap between the day you move budget and the day the money lands is the whole problem.

{{ promoTitle }}

{{ promoLead }}

{{ promoQuestion }}
{{ discountSummary }}
Moving off which plan?
Moving onto which plan?
{{ promoSummary }}

What you have to work with

Last question. A model you cannot feed is worse than no model, so we check this before recommending one.

{{ whyText }}

Back
Skip to the result {{ nextLabel }}
The answer

{{ rungTitle }}

{{ m.label }} {{ m.name }}
No model yet. A cohort table and a maturity curve answer this.

{{ verdictWhy }}

{{ dataLine }}

{{ s.label }} {{ s.value }}

The models to build

{{ stackCount }}

Two is the ceiling. Paste these names into your prompt verbatim, and hover for the detail.

No models yet, and that is the result rather than a failure to recommend one. A cohort table and a maturity curve answer your question today, which saves you a quarter of work.
{{ g.label }} {{ g.title }}

{{ g.note }}

{{ c.title }}
This component is a guess, not a measurement
Library why this one
{{ c.lib }} {{ c.entry }}
The trap that breaks this
Supporting kit tooling and plain numbers, not models

Nothing here gets fitted, backtested or argued about in a meeting.

{{ k.title }} the trap
{{ k.lib }} {{ k.entry }}
Not a model do this instead

Real, and cheaper as a slice, a number or a stated assumption. Hover for the instruction.

{{ n.t }}

What not to use

An assistant will suggest most of these. The code runs, the answer is wrong. Hover any line for why.

{{ x.t }}

Do it in this order

Each step ships on its own. The last one is not optional.

  1. {{ s.n }} {{ s.t }}

How you will know it works

{{ evalLead }}

{{ e.t }} detail
{{ e.d }}

Why we said that

The numbers behind the recommendation, all from your answers: per 100 trials, counted over {{ horizon }} months, decided on day {{ decisionDays }}.

{{ normNote }}

{{ assumedSeason }}

{{ h.label }} {{ h.value }} {{ h.note }}

Where the cash is against where the value is

{{ cashBarsLead }}

Share of cash visible by day {{ decisionDays }} Share of ultimate value
{{ p.label }} {{ p.verdict }}
{{ p.cashText }}
{{ p.valueText }}
Plan Payers per 100 trials Cash per payer at the window Ultimate per payer Cash Value Cash share Value share Multiple
{{ r.label }} {{ r.payers }} {{ r.cashPer }} {{ r.ult }} {{ r.cash }} {{ r.value }} {{ r.cashShare }} {{ r.valueShare }} {{ r.multiple }}
All plans {{ cashTotal }} {{ valueTotal }} 100.00% 100.00% {{ blendedText }}

How much of the value has arrived by the time you decide

{{ accrualNote }}

100%75%50%25%0%
{{ markerLabel }}
{{ t.label }}
months since signup
Month since signupShare of ultimate value arrived
{{ r.m }}{{ r.pct }}

What a flat conversion assumption does to your seasons

Error per cohort against the normal week rate a flat model settles on. Left of zero is undervalued, right of zero is overvalued.

{{ s.label }} {{ s.rate }}
{{ s.err }} {{ s.note }}

Peak and dead rates here are our stated assumption, not your measurement.

SeasonConversionError per cohortReading
{{ r.label }}{{ r.rate }}{{ r.err }}{{ r.note }}

Seasonality: skipped, and asserted rather than measured

{{ flatNote }}

{{ retentionTitle }}

Separate panels rather than overlaid lines, so no chart has to distinguish four plan identities at once. Each curve is the share still paying at each charge.

{{ r.label }} {{ r.meta }} Prior, not measured {{ r.axis }} {{ r.shapeWord }}
ChargeStill payingCumulative per payer
{{ row.t }}{{ row.s }}{{ row.cum }}

What is in your way

Ready means go, watch means keep an eye on it, blocker means fix it before you trust the output.

{{ c.statusWord }} {{ c.label }} {{ c.note }}
Recommended

Hand the build to Claude

{{ skillLead }}

{{ skillError }} We email you a download link and may follow up about Churney. Privacy policy.
Sent to {{ skillSentTo }} It comes from cohorts@notify.churney.io and the link works for 30 days. Nothing after a minute? Check your spam folder.
Downloading it here instead Our email is not going out right now, so the skill is downloading in this browser. We have your address and will follow up.
Add it to Claude
Claude on the web or desktop Customize, then Skills, then + and Upload a skill. Pick the zip as it is. Code execution needs to be on under Settings, Capabilities.
Claude Code Unzip it into your skills folder, or into .claude/skills in your repo so the whole team gets it. unzip ~/Downloads/{{ skillFile }} -d ~/.claude/skills/
Then just ask "Build our cohort pLTV model." Claude picks the skill up and starts by playing your numbers back to you.
What is inside
{{ s.f }} {{ s.d }}

Or paste the brief instead

Copy the brief

The same content as one prompt, for any chat tool. Your setup, your numbers, the model to build, the libraries to use, the ones to refuse, and the tests it has to pass before you believe it.

Copied. Paste it as your first prompt.

Scenario link copied.

{{ brief }}
One last thing, for later

When you come to feed the ad platforms, that is a second model

Everything above is your cohort model, for allocation and reporting. The signal you send to Meta, Google or AppLovin is user-level pLTV: per person, causal, and inside the platform's window. Build this one first, then that one, and keep them separate in both directions.