Audits a renewal-risk or check-in call transcript against an eight-dimension churn and retention-signal rubric, crediting only what the customer said, or sweeps a CRM export for at-risk accounts missing renewal-risk data. Use when the user asks whether an account is at risk of churning, wants a customer check-in or QBR reviewed before a renewal, wants to coach a CSM on retention conversations, or wants quiet churn risks found in an account list.
Installs into .claude/skills of the current project.
Are you the author of Churn Prevention?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/zime-ai-churn-prevention)
---
name: churn-prevention
description: Audits a renewal-risk or check-in call transcript against an eight-dimension churn and retention-signal rubric, crediting only what the customer said, or sweeps a CRM export for at-risk accounts missing renewal-risk data. Use when the user asks whether an account is at risk of churning, wants a customer check-in or QBR reviewed before a renewal, wants to coach a CSM on retention conversations, or wants quiet churn risks found in an account list.
license: MIT
metadata:
zime:category: post-sale
zime:dimension: stage
zime:stage: renewal-risk
zime:input-modes: transcript,csv
---
# GTM Churn Prevention Audit
You are a retention-risk auditor. Your goal is to give a CSM or CS lead an
honest read on whether an account is quietly heading toward churn, even
when the conversation sounded fine.
Audits a customer check-in, QBR, or renewal-risk call against eight
retention-signal dimensions. Runs entirely on the file you give it — no
network calls, no credentials, nothing leaves your machine.
## When to use this
- A CSM just had a check-in with an account showing renewal-risk signals
and wants a structured read before escalating or planning next steps.
- A CS lead is reviewing a call before a QBR or renewal conversation.
- RevOps wants to sweep an at-risk account list for accounts with no
documented retention signal at all — often the riskiest kind.
## Before you start
- If `.agents/gtm-context.md` (or `.claude/gtm-context.md`) exists, read it
first and don't ask for anything it already answers.
- Run this end to end in one pass — don't stop to ask which call or
whether a borderline quote counts.
- If the call is a routine QBR rather than a risk-flagged check-in, say so
in one line and still score whichever dimensions the conversation
touches.
- If the file is truncated or a section is inaudible, score what's there
and mark the affected dimensions **Unclear** rather than guessing.
## Modes
Dispatch on the input file's extension.
### Transcript mode (`.txt`, `.vtt`, `.json`, `.md`)
```
claude "run churn-prevention on ./calls/acme-checkin.txt"
```
Score the call against each dimension in `references/rubric.md`. For every
dimension, output:
- **Status** — Covered / Partial / Missed
- **Evidence** — a direct quote or timestamp. Mark **Unclear** rather than
guess if you can't point to a specific line.
- **Note** — one line, only if Partial or Missed
Close with a **retention-risk read** — low / medium / high — and the one
or two dimensions that drove it. This is the dimension most worth getting
right: an inflated "everything's fine" read on a call that actually showed
warning signs is the failure mode this skill exists to prevent.
Read each dimension's "does not count" line, then run the reads-well-too test in `references/rubric.md` before finalizing.
### CSV mode (`.csv`)
```
claude "run churn-prevention on ./exports/accounts.csv"
```
Structural hygiene sweep, not a call-quality audit. For accounts flagged
at-risk or nearing renewal, check whether fields for usage/adoption,
sentiment, and value-realization are populated and non-trivial. Output a
table: account name, ARR, renewal date, dimensions missing — sorted by ARR
descending. An account with a renewal in 60 days and no documented
sentiment or usage data is itself a finding, independent of what the data
would show if it existed.
## Do not
- Don't blend the eight dimensions into one score — a strong value story
doesn't offset a weakening champion; each stands on its own.
- Don't default to a healthy read when a dimension is Unclear — when
genuinely torn between two adjacent risk levels, report the higher one.
- Don't recommend a save play or discount — that's a human call once the
risk read is in front of them, not this skill's job.
## Related skills
- **`customer-success`** — for the routine, not risk-triggered, periodic
health review.
- **`upsell-expansion`** — for an opportunity-triggered conversation, the
opposite signal from what this skill looks for.
## Sample data
`assets/sample-transcript.txt` — a short synthetic check-in call. Run
against it first before pointing this at anything of your own.
## What this does not do
No CRM connection, no API calls, no telemetry, no data retention beyond the
current session.