// design
Lifecycle & Retention
Use when the user wants to reduce churn, improve retention, or grow net revenue retention (NRR) through onboarding, lifecycle communication, and account expansion. Also use when the user mentions churn, retention, NRR/GRR, net dollar retention, activation, onboarding, customer lifecycle, upsell/expansion, or "why are customers leaving / how do we keep them." Produces churn, NRR, GRR, quick-ratio and lifetime math plus a diagnosis and a prioritized retention plan across onboarding, churn drivers, and expansion.
npx skills add sarojkjha/aaj-marketing-skills --skill lifecycle-and-retentionClaude Code
/plugin marketplace add sarojkjha/aaj-marketing-skills/plugin install aaj-marketing-skills@aajOpenAI Codex
codex plugin marketplace add sarojkjha/aaj-marketing-skillscodex plugin add aaj-marketing-skills@aajClaude or ChatGPT — no install
Add this as a custom connector:
https://aaj-engines-mcp.sarojkjha10.workers.dev/mcp// when to use it
Use when the user wants to reduce churn, improve retention, or grow net revenue retention (NRR) through onboarding, lifecycle communication, and account expansion. Also use when the user mentions churn, retention, NRR/GRR, net dollar retention, activation, onboarding, customer lifecycle, upsell/expansion, or "why are customers leaving / how do we keep them." Produces churn, NRR, GRR, quick-ratio and lifetime math plus a diagnosis and a prioritized retention plan across onboarding, churn drivers, and expansion.
// what you give
One period of revenue movement (starting recurring revenue, new, expansion, contraction, churned), customer counts, and where available the top churn reasons, the activation milestone, and the current onboarding steps
// what you get
NRR, GRR, revenue & logo churn, quick ratio, average lifetime, the LTV impact of a churn change, and a prioritized retention plan across onboarding, churn drivers, and expansion
Engine spec
// decision it supports
How fast is our existing customer base leaking or growing, and which retention move should we fund first?
// inputs
One period of revenue movement (starting recurring revenue, new, expansion, contraction, churned), customer counts, and where available the top churn reasons, the activation milestone, and the current onboarding steps
// output
NRR, GRR, revenue & logo churn, quick ratio, average lifetime, the LTV impact of a churn change, and a prioritized retention plan across onboarding, churn drivers, and expansion
// acts or analyzes
Analyzes onlyMakes no network calls, writes no files and changes nothing in your tools.
// where your information goes
| How you run it | Where your inputs go |
|---|---|
| Skill installed in your agent, or the local MCP server | The engine runs on your machine and AAJ receives nothing. Your AI agent still sends what you give it to its model provider (Anthropic, OpenAI and so on), under your own account's terms. |
| Hosted MCP server | Your agent's model provider, as above, plus AAJ's server on Cloudflare, which receives the engine inputs over HTTPS, runs them in memory and keeps no copy. Cloudflare keeps error logs (no inputs) for up to 7 days. |
No engine needs customer names, emails or other personal data; leave them out.
// limitations
- It reads one period at a time. A single month is not a trend; read the numbers against your own segment and your own history.
- NRR and GRR are compared with reference points only for annual input. Those points were set for Series B/C enterprise software and bootstrapped $3M-$20M ARR SaaS.
- High NRR can hide heavy logo churn behind a few large expansions. Read GRR and logo churn alongside it; logo churn needs customer counts.
- An unrecognised field, or an amount that isn't a number, stops the run with an error naming it. It can't tell whether the amounts match the period you chose, so confirm monthly or annual.
// review before acting
// setup
npx skills add sarojkjha/aaj-marketing-skills --skill lifecycle-and-retentionhttps://aaj-engines-mcp.sarojkjha10.workers.dev/mcpAgents listed: Claude Code, Cursor, OpenAI Codex, Windsurf, Cline. Tested and recorded: Claude Code.
Lifecycle & Retention
Keep and grow the customers you already have. Because lifetime value is proportional to 1 / churn, every cut in churn lengthens the life of every customer you already have. Measure NRR, GRR, churn and the quick ratio, diagnose where the base leaks, then design the onboarding, lifecycle, and expansion motions that make the base compound.
When to use
The user needs to cut churn, lift net revenue retention, design onboarding/activation, build an expansion (upsell) motion, or answer "why are customers leaving and how do we keep them?" Run this after unit-economics — retention is the churn term inside that LTV.
Before you start
- Read the brand/product context first (
.agents/product-marketing.md/.agents/aaj-brand.md) for model, pricing, and ICP, if present. - Gather inputs:
- Movement for one period (monthly for month-to-month or usage products; annual for annual contracts): starting recurring revenue, and the period's new, expansion, contraction, and churned revenue.
- Customer counts at start and lost in the period (for logo churn and lifetime).
- Where available: the top churn reasons, the product's activation milestone ("aha" / first value), and the current onboarding steps. These turn the numbers into a plan.
The math
Gross revenue churn = (contraction + churned) / startingRevenue
Net revenue churn = (contraction + churned − expansion) / startingRevenue
GRR = 1 − gross revenue churn (never exceeds 100%)
NRR = 1 − net revenue churn (exceeds 100% when expansion > churn)
Logo churn = customers lost / customers at start
Quick ratio = (new + expansion) / (contraction + churned)
Avg lifetime (periods) = 1 / churn → LTV is proportional to 1 / churn
Measure NRR and GRR on the existing base only — exclude new business (it belongs to acquisition, and only inflates the quick ratio). Use logo churn for customer lifetime; use revenue churn for revenue retention.
Run the engine
Paths assume you installed with
npx skills add. From a clone of this repo, useskills/lifecycle-and-retention/resources/…instead.
node .agents/skills/lifecycle-and-retention/resources/retention.js # demo
node .agents/skills/lifecycle-and-retention/resources/retention.js '{"period":"monthly","startMRR":100000,"newMRR":12000,"expansionMRR":8000,"contractionMRR":3000,"churnedMRR":6000,"startCustomers":200,"churnedCustomers":9}'
node .agents/skills/lifecycle-and-retention/resources/retention.js '{"period":"annual","startMRR":1000000,"expansionMRR":50000,"contractionMRR":120000,"churnedMRR":180000}'
node .agents/skills/lifecycle-and-retention/resources/retention.js --help
It prints NRR, GRR, revenue & logo churn, quick ratio, average lifetime, and the LTV impact of a churn change, plus a JSON block.
Interpret the result
Read every number against your own segment and your own trend. The reference points below are annual, and each names its source and the group it was set for:
- NRR above 100% grows the base without a single new logo; below 100%, new sales run just to stand still. Bessemer's State of the Cloud 2023 sets 100% good, 110% better and 120%+ best — for Series B/C enterprise software, so expect lower earlier and in SMB.
- GRR can never exceed 100%. SaaS Capital's 2026 survey puts the median at 91% for bootstrapped B2B SaaS companies between $3M and $20M ARR.
- Quick ratio is dollars added per dollar lost. Above 1, adds outpace losses; the engine applies no threshold beyond that.
- Retention is a direct LTV lever. Since
LTV ∝ 1/churn, halving churn roughly doubles lifetime and LTV.
The engine compares NRR and GRR with these reference points only when period is "annual". For monthly inputs it annualizes GRR for you and leaves the comparison to the annual figure.
Watch a trap: high NRR can hide heavy logo churn masked by a few big expansions. Always read GRR and logo churn alongside NRR.
Sources: Bessemer Venture Partners, State of the Cloud 2023; SaaS Capital, Benchmarking Metrics for Bootstrapped SaaS Companies (2026). Cite the current year's figures when presenting to a client.
Design the fixes
Turn the diagnosis into a prioritized plan across three levers:
- Onboarding & activation. Define first value and the activation milestone, then remove time-to-value friction. Poor activation is the root of most early churn — customers who never reach value never stay.
- Churn drivers. Split voluntary (value/fit/price) from involuntary (failed payments — often 20–40% of churn and the cheapest to fix with dunning and card-update flows). Use exit surveys to rank reasons (
customer-survey-designhelps design them). - Lifecycle communication. Map the sequence — welcome → activation nudge → habit/value reinforcement → renewal → win-back — and trigger on behavior, not just time.
- Expansion. Build the motion that pushes NRR above 100%: usage-based upgrades, seat expansion, cross-sell, and packaging that leaves room to grow (
pricing-and-packaging).
Present the result
Lead with the three numbers (NRR, GRR, quick ratio) and the verdict, then the one or two highest-leverage retention moves — usually activation or involuntary-churn first, expansion second. Show the LTV impact of the churn improvement so the prize is sized before any investment.
Guardrails & common mistakes
- Measure on the existing base. Excluding new business is what makes NRR/GRR meaningful.
- Don't confuse revenue and logo churn. A product can retain dollars (via expansion) while bleeding logos — read both.
- High NRR ≠ healthy if GRR is weak. Expansion can paper over a leaky base.
- Fix involuntary churn first. Failed payments are often the largest, cheapest win.
- Retention before acquisition when the base leaks — pouring traffic into a leaky funnel just raises CAC.
Related AAJ resources
- Interactive tool: https://aajconsult.com/tools/churn-nrr-calculator
Related skills
unit-economics (the LTV this retention drives) · pricing-and-packaging (expansion and packaging for NRR) · customer-survey-design (churn-reason and activation research).
// faq
// install
npx skills add sarojkjha/aaj-marketing-skills --skill lifecycle-and-retention// run it
node .agents/skills/lifecycle-and-retention/resources/retention.js --demo// worked example
Get the worked example for Lifecycle & Retention
One email. The filled-in config, the output, and how to read it.
// sprint
Unit Economics & Retention Sprint — $3,500, 10 business days
This skill is one of the engines behind the Unit Economics & Retention Sprint — $3,500, ten business days.
LTV, CAC, payback and churn on your actual numbers — with a verdict, not a dashboard.
// human in the loop
Need a human in the loop?
AAJ builds the strategies, tools, and playbooks these skills are made of — with engagements for growth-stage and enterprise teams.
