Keep and grow
After the first 10 pay, keep them: define activation, act on every churn signal, upgrade at the limit, and ask for referrals once results land.
- Costs
- A few hours a month
- Fits when
- You have 10 or more paying customers, or monthly logo churn above 5% read on 20 or more customers, or 3 or more cancellations in 60 days.
- First customer
- Referred customers around day 120, once your customers reach their first result
- Month one
- Calls $0.27 · Media none · Your hours 1.5
- Number to watch
- Logo churn a month.
Keep our first 20 customers: find who is going quiet, draft the saves, and ask the happy ones for intros.
Spend up to $5 this month, and show me the plan first.
| Said | Means | Hard |
|---|---|---|
| going quiet | no login in 14 days, usage down 50% in a month, a ticket open 48 hours, or a failed payment | No |
| happy ones | customers who reached their first result: a renewal notice sent | Yes |
| Way | Time to first customer | Cash per customer | At scale, customers a month | Your hours a week | Loaded CAC |
|---|---|---|---|---|---|
| Referrals | 120 days (60 to 270) | $5 ($1 to $150) | 1 (0.5 to 4) | 0.5 (0.25 to 1) | $222 |
Days are to the first paying customer; cash leaves out your hours, and loaded CAC adds them at $100 an hour. Planning estimate unless a source is named: how each was set.
The decision
Move here once 10 customers pay from Hands-on, Paid or Launch and search. Read churn as a rate only from 20 customers; below that, 3 or more cancellations in 60 days is the signal. First, define activation: the event every kept customer hit in week 1 and the churned ones missed.
Nudge every signup that has not activated at hour 24 and day 3. Open a save move on each churn signal: no login in 14 days, usage down 50% in a month, a ticket open 48 hours, a failed payment. Silence watch reads them daily.
Prompt an upgrade at 80% of a plan limit with Upgrade note. Read net revenue retention over the trailing 12 months: what the customers paying a year ago pay now. At 4% monthly churn, upgrades alone hold it near 69%; passing 100% takes expansion that grows with use, seats or usage, of about 4.2% a surviving account a month. Ask for referrals by hand under 50 customers, and switch on a program only past 50 (Customer referrals).
The math
kept after a year = (1 − churn)^12;
| Input | Value | Basis |
|---|---|---|
| Monthly logo churn | 5%, 4% and 3% | Monthly plans to small businesses, read from 20 customers |
| Monthly margin at $49 | $39 | 80% gross margin |
| Value to CAC | 3:1 | The cost rule’s lifetime cap |
| Customers who reach 80% of a plan limit | 20% a quarter; 1 in 4 moves up a tier | A usage limit set near the median account |
| Customers who refer | 10% a quarter | Asked at the first result |
| Invites each, and invite to customer | 2, and 20% | A two-sided reward in account credit |
Planning estimate unless a source is named: how each was set.
At 5% churn, 0.95^12 = 54% stay a year. At 3%, 69% stay (the numbers).
A $49 customer at 5% churn is worth $39 ÷ 5% = $784. At 3:1, CAC stays under about $261 (your price).
Net revenue retention, trailing 12 months: at 4% churn 0.96^12 = 61% of customers remain, and upgrades from 5% of the base a quarter at +67% add the rest: about 69%. At 3% churn it is 78%. Above 100% needs surviving accounts to grow 4.2% a month at 4% churn: price on seats or usage, not on a tier the account reaches once.
Referral ask: 50 × 10% × 2 × 20% = 2 customers a quarter. At 10 customers it is 0.4, so the founder asks in person. At scale referrals reach about 1 customer a month at scale.
Playbook
| Step | Move on when |
|---|---|
| 1. Define activation from your first 10 customers | The event every kept customer hit in week 1 |
| 2. Watch every signup, and nudge at hour 24 and day 3 if not activated | Activation at 70% or more by week 4 |
| 3. Open a save move on each churn signal within a day | No login in 14 days, usage down 50%, a ticket open 48 hours, a failed payment |
| 4. Prompt an upgrade at 80% of a plan limit, and offer annual at month 2 or 3 after activation | 1 in 4 prompted customers moves up a tier |
| 5. Ask each customer for an intro within a week of their first result | 1 intro for every 3 asks |
| 6. Switch on a two-sided program past 50 customers, paid in account credit after the refund window | 5% or more of customers refer each quarter |
| 7. Read activation, logo churn and net revenue retention monthly | Churn under 5% a month by week 12 |
Worked example
Leaseline has 20 customers at $149 and loses 2 a month. 10% churn keeps 28% after a year, and no acquisition rescues that.
Activation becomes “first renewal notice sent in week 1”, because no churned customer sent one. Silence watch sends nudges on day 3, and activation rises from 55% to 80%.
Churn falls to 4%, so a year keeps 61%. Upgrade note at 80% of the plan limit moves 1 in 4 to the next tier. Save and win back drafts each save note. To pass 100%, the founder tests a per-property price on the largest 5 accounts.
Churn falls from 10% to 4% a month, and trailing-12-month net revenue retention rises from 32% to 69%; seat pricing is the lever that would carry it past 100%.
When it breaks
| Symptom | Cause | Fix | Fix with |
|---|---|---|---|
| Signups that activate (under 40%, at 25 signups) | Onboarding loses people before the first result. | Nudge at hour 24 and day 3, and cut one setup step. | Message.schedule |
| Logo churn (over 5%, a month, read on 20 or more customers, or 3 or more cancellations in 60 days) | The wrong activation event, or saves that fire too late. | Read activation again from month-3 survivors, and open saves within a day. | Metric.define |
| Upgrade prompts taken (under 10%, at 20 prompts) | The prompt fires before the value is felt. | Fire it at 80% of the limit, after the third result. | Subscription.resize |
| Customers who refer (under 3%, a quarter) | The ask comes before the result, or the reward does not matter. | Ask at the first result, and reward in account credit. | Referral.invite |
| Annual plans that churn at renewal (over 20%, at renewal) | The annual offer went to customers who were about to leave. | Offer annual only 30 days or more after activation. | Offer.publish |
How your agents run it
| Week | Play and move | Goal | Your time | Calls |
|---|---|---|---|---|
| Week 1 | Next order due: Silence watch (Workflow) | Score every customer daily, and flag no login in 14 days or usage down 50%. | 20 min | Free |
| Week 1 | Next order due: Weekly readout (Workflow) | Read activation, logo churn and net revenue retention for the last 30 days. | 10 min | Free |
| Week 2 | Next order due: Save and win back (agent task) | Draft a save note for each customer the watch flags. | 20 min | About 1.4¢ |
| Week 2 | Usage upsell: Upgrade note at the limit (agent task) | Send an upgrade note to each customer past 80% of a plan limit. | 5 min | About 1.3¢ |
| Week 4 | Review requests: Review requests (Workflow) | Ask each activated customer for a review the week their result lands. | 5 min | About 0.25¢ |
| Week 4 | Customer referrals: Referral ask (agent task) | Ask each customer past their first result who else has the problem. | 20 min | About 24¢ |
| Week 8 | Customer referrals: Champion moved (Workflow) | Follow champions who change jobs, and write in their first week. | 5 min | About 42¢ |
| Week 12 | Usage upsell: Weekly readout (Workflow) | Read churn, net revenue retention and referrals, and set next quarter’s goal. | 15 min | Free |
Each call is priced from its composition. Week 1: about 30 minutes of yours and nothing in calls. Week 2: about 25 minutes of yours and 3¢ in calls. Week 4: about 25 minutes of yours and 25¢ in calls. Week 8: about 5 minutes of yours and 42¢ in calls. Week 12: about 15 minutes of yours and nothing in calls.
The month runs as a Play Mix: PlayMix.compile plans it from your hours and budget, Play.apply runs each Play, and each Play runs the compositions in its rows above. Goal.pursue is the shortcut that takes the month as one goal and records which Play each step served.
import { $ } from 'startup-builder'
const mix = await $.PlayMix.compile({ strategy: 'keep-and-grow', hours: 1 })
for (const play of mix.plays) await $.Play.apply({ play: play.id, hours: play.hours })
// Each Play runs its compositions in weeks 1 to 4:
// next-outcome silence-watch, weekly-readout, save-and-win-back
// usage-upsell upgrade-note
// review-requests review-requests
// customer-referrals referral-askYou see the plan and its price before anything runs. Sends and posts go out within the limits you set; one approval rule on a class such as send makes every action in it wait for you, and going over a limit always asks. How your agents act names every class.
Good looks like
| When | The number | Target | Below this, do |
|---|---|---|---|
| Week 1 | Signups watched, with the activation event defined | 100% | No event yet: talk to 3 kept and 3 churned customers this week. |
| Week 4 | Signups that activate | 70% | Under 70%: nudge at hour 24 and day 3, then cut a setup step. |
| Week 12 | Logo churn a month, at most, on 20 or more customers, with trailing-12-month net revenue retention read monthly | 5% | Over 5%, or 3 cancellations in 60 days: read activation again from month-3 survivors. |
Connect these first
| Account | What your agents do there | Connect |
|---|---|---|
| Stripe | Your agents put a checkout on every Offer, take a pilot’s first payment and refund when asked; each payment credits the Play that earned it. | Nothing to connect: your Startup’s own Stripe connected account opens with your first paid Offer (hub Stripe). |
| The CRM you already use | Keep the CRM you know: your agents keep its contacts, companies and deals in step with your records, in the direction you choose. | Call Integration.connect with system: and the mode you want, then open the connectUrl it returns and sign in to your CRM as an admin. |
| Gmail | Your agents send from your own Gmail address, read every reply, and stop on any unsubscribe, with each thread filed to its Lead. | Call Integration.connect with system: and venue:, then open the connectUrl it returns and sign in as the Google account you send from. |
| Google Analytics | Your agents read where visitors came from and what they did, count each Play’s visitors next to its signups, and build audiences to retarget. | Call Integration.connect with system:, then open the connectUrl it returns and sign in as a Google account with access to your property. |
Plays it runs
| Play | Your time | What it costs | What it does |
|---|---|---|---|
| Next order due | 29 minutes in week 1, then 57 more minutes by week 4 | Calls about 5¢ a month | Tells a customer the day their last order makes the next one due, with the live price and a one-click order. |
| Usage upsell | 7 minutes in week 1, then 6 more minutes by week 4 | Calls about 3¢ a month | Offers the next offer when a customer’s use paces past its limit, with today’s prorated charge; the customer upgrades in one press. |
| Review requests | 8 minutes in week 1, then 8 more minutes by week 4 | Calls about 1¢ a month | Asks every customer for an honest review when their result lands, on the one site you need most, and answers every review within a day. |
| Customer referrals | 16 minutes in week 1, then 12 more minutes by week 4 | Calls about 5¢ a month | Asks customers to invite a peer right after they get the result they came for, and rewards both once the peer’s first payment clears refunds. |
| Annual prepay | 27 minutes in week 1, then 51 more minutes by week 4 | Calls about 3¢ a month | Offers a steady monthly customer a year up front, at a discount their own churn pays for, and answers an annual cancel with one save. |
Reference
| Call | What it does | Path | Price |
|---|---|---|---|
Event.capture | Capture records an Event from a Site, App or API call that no Verb emits, such as a page view or a click. | POST / | Free |
Metric.define | Define compiles a Metric’s query against the startup’s Events and Entries and lists every Event it reads. | POST / | Free |
Metric.watch | Opens a Task the day a number crosses your line. | POST / | Free |
Subscription.resize | Resize changes how many units a Subscription holds and prorates the current period. | POST / | Free |
Referral.invite | POST / | Free | |
PlayMix.compile | Plans next week’s Plays from your budget and what worked last week. | POST / | Free |
See your plan
Free to plan. You see the plan and its price before anything runs.