Skip to main content
Cs promptsChurn promptsRetentionChatgpt

Write a Renewal Risk Prompt That Catches Churn 90 Days Early

Build a renewal risk prompt that reads usage, support, and engagement signals, flags at-risk accounts by tier, and returns a save play. Copy the prompt.

PPromptsCart Team·October 17, 2026·Updated October 17, 2026·8 min read

Most churn is visible months before the renewal call. Usage slid in March, the champion stopped replying in April, support tickets turned sour in May, and the CSM found out in July when the customer asked about their data export. The signals were all there. Nobody read them together.

A renewal risk prompt fixes the reading problem. It takes the signals you already have for an account (usage trend, support load, stakeholder activity) and returns a risk tier, the specific signals dragging the account down, and a save play with an owner and a date. Not a score. An instruction for what to do next, in a locked output contract you can run across a whole segment.

This post shows how to build that prompt, why chaining detection to a save play beats a standalone risk flag, and how to keep the output honest instead of a confident guess.

Why the churn blogs won't hand you the working prompt

Search for a renewal risk prompt and you'll hit three kinds of pages, none of which finish the job. The prompt listicles give you fragments. The signal explainers give you theory. The vendor blogs give you a demo button.

AIUnpacker's churn prevention playbook for CSMs is the strongest of the bunch, with seven structured prompts across signal synthesis, save planning, and effectiveness measurement. It's genuinely useful, and it still stops short: no worked example showing a filled prompt producing a real output, no locked contract with named risk flags, and seven separate prompts rather than one you run repeatedly. Vitally's 23 AI prompts for customer success includes a churn prompt, but it's a single line ("summarize findings in a table with Customer Name, Risk Factor, Notes") wrapped in demo CTAs for their platform. Mosaic's eight B2B churn warning signals names the signals well (rising ticket volume, stalled adoption, champion disengagement, data export inquiries) and then pitches its own intelligence product instead of shipping a prompt.

So the concept is covered to death. The copyable artifact isn't. And the artifact is the whole point.

A risk flag without a next action dies in a spreadsheet

Flagging an account as at-risk feels like progress. It isn't, on its own. The flag only matters if it names who acts and by when. That's why this prompt chains detection straight into a save play instead of stopping at a colored tier.

What you can do with a renewal risk prompt

  • Triage a full segment into Red, Amber, and Green tiers in one pass
  • Surface the two or three signals actually driving each account's risk
  • Turn a flagged account into a save play with an owner, an action, and a target date
  • Catch a quiet-churn account whose usage slid but whose tickets look fine
  • Prep a renewal call knowing exactly which risk to address first
  • Hand leadership a ranked risk view without a manual CRM pull

Detection and the save play are one job, not two

Here's the take most churn content misses: detecting risk and planning the save are the same job, and splitting them is where accounts fall through. A prompt that returns "Acme is Amber" hands the CSM a second task, which is to decide what to do. That second task is where the follow-through leaks. Bundle them, and the output is already actionable.

The signal families matter, but their combination matters more. One dropped usage week is noise. Usage down 30% and a champion who's gone quiet and a support ticket about pricing is a story. The prompt's job is to read the stack, not any single line.

Signal families a renewal risk prompt reads:

  Product usage    → active seats, feature breadth, 90-day trend
  Support load     → ticket volume, severity, sentiment shift
  Relationship     → champion activity, exec sponsor, renewal date

Risk flags it can raise:
  USAGE_DECLINE · SUPPORT_SPIKE · CHAMPION_LOST
  NO_EXEC_SPONSOR · SLOW_TIME_TO_VALUE · PRICING_FRICTION

Anatomy of the renewal risk prompt

The structure that holds up: a tight role, the signals fenced as discrete inputs, and the output contract stated last. Models weight the most recent tokens, so a contract that sits at the bottom of the prompt survives a long pasted signal dump better than one buried up top.

Role: You are a customer success risk analyst.

Inputs:
  Account: {{account_name}}   Renewal date: {{renewal_date}}   ARR: {{contract_value}}
  Usage signals:      {{usage_signals}}
  Support history:    {{support_history}}
  Engagement signals: {{engagement_signals}}

## Output format (return exactly this)
  Risk tier: RED | AMBER | GREEN
  Top risk signals: up to 3, each a named flag + one-line evidence
  Primary driver: the single signal to address first
  Save play: owner · action · target date
  Confidence: high | medium | low  (low if signals conflict or are thin)
  If a signal is missing, write "Not provided" — never infer it.

That last line does real work. Without it, a model fills gaps with plausible fiction, and a fabricated "champion is engaged" is worse than a blank. The {{usage_signals}} and {{support_history}} variables stay as raw pasted data, so you're never asking the model to invent numbers it wasn't given.

Pin the model when the output feeds a workflow

A renewal risk prompt that worked on one model version can drift after an update. If the tier feeds a Slack alert or a save-play tracker, pin the model version you validated against, and spot-check the flags weekly. The prompt surfaces risk; it doesn't get to be wrong quietly.

Prompt-craft patterns that make the output trustworthy

Name the flags as an enum, not free text

Let the model write "seems disengaged" and every account reads differently. Give it a closed set (CHAMPION_LOST, USAGE_DECLINE, SUPPORT_SPIKE) and the output becomes filterable, sortable, and comparable across a segment. An enum is what turns 40 account outputs into a ranked worklist instead of 40 paragraphs.

Use only these flags: USAGE_DECLINE, SUPPORT_SPIKE, CHAMPION_LOST,
NO_EXEC_SPONSOR, SLOW_TIME_TO_VALUE, PRICING_FRICTION.
Each flag needs one line of evidence drawn from the inputs.

Force a confidence rating on thin data

CSMs distrust a tool that's confident about an account it barely knows. A required Confidence: low when signals are sparse or contradictory keeps the prompt honest and tells the reader when to go look at the account themselves.

Restate the format on the last line for GPT-4o

Model behavior isn't uniform here. Claude tends to honor a ## Output format heading through a long input, while GPT-4o is more likely to drift on lengthy signal dumps unless the contract is restated on the final line of the prompt. If you run the same renewal risk prompt across models, add that closing restatement so the shape holds either way.

Variables you'll set

VariableRequiredWhat it is
{{account_name}}YesThe account being assessed
{{renewal_date}}YesContract renewal date, so the prompt weighs proximity
{{contract_value}}NoARR, used to prioritize save effort
{{usage_signals}}YesPasted usage data: active seats, feature breadth, 90-day trend
{{support_history}}YesTicket volume, severity, and sentiment over the recent window
{{engagement_signals}}NoChampion activity, exec sponsor, QBR attendance

Getting started

  1. Pull one account's data: 90-day usage, recent tickets, last contact with the champion.
  2. Drop each into {{usage_signals}}, {{support_history}}, and {{engagement_signals}}.
  3. Run the prompt and read the tier plus the primary driver first.
  4. Sanity-check the flags against what you already know about the account.
  5. Assign the save play to a real owner with a real date, not "the team."
  6. Batch it: run the same prompt across a segment and sort by tier.
  7. Re-run before every renewal cycle so risk stays current, not quarterly-stale.

Once this runs cleanly on one account, the reusable version is a pack, not a copy-paste habit. The Customer Health Monitor Agent Pack runs this end-to-end: it reads engagement and usage signals from HubSpot and Google Sheets, classifies every account Red, Amber, or Green with the evidence trail behind each rating, and builds the intervention plan with owner and target date.

See the Customer Health Monitor Agent Pack →

If the risk you find is already loud (an escalation in flight, a churn threat on the table), that's a different motion, and the Customer Escalation Agent Pack handles the de-escalation and response side.

Skip the setup

The Customer Health Monitor Agent Pack does this whole loop without the copy-paste: it pulls signals from HubSpot and Google Sheets into a health snapshot, runs the Risk Classification prompt to tier every account with its evidence, and turns the result into a save play carrying an owner, an action type, and a target date, then pushes the summary to Slack. It's part of The Complete AI Prompts Bundle, a one-time lifetime license to the whole catalog plus every pack added later, worth it if renewal risk isn't the only CS job you're running.

Get the Customer Health Monitor Agent Pack →

If you'd rather rank the whole book by a single number first, the customer health score prompt covers the scoring-contract approach, and this renewal risk prompt picks up where that leaves off by turning the top of the list into action. To feed better relationship signals into either one, the customer feedback synthesis prompt pulls sentiment and themes out of raw customer notes so your engagement inputs aren't guesswork.

Browse the customer success prompt packs →
FAQ

Common questions

What is a renewal risk prompt?
A renewal risk prompt is a reusable instruction that takes an account's usage, support, and engagement signals and returns a risk tier, the two or three signals driving the risk, and a save play with an owner and a date. It's built to run per account or across a whole segment, so a CSM triages the book instead of guessing which account is quietly slipping.
Can ChatGPT flag at-risk accounts before renewal?
It can, if you feed it real signals and lock the output. Paste 90-day usage trend, support volume and sentiment, and stakeholder activity, then require a tier plus named risk flags. ChatGPT won't predict churn from thin air, so the quality tracks your inputs. Keep a human on the save play, since the model surfaces risk but doesn't own the relationship.
How is a renewal risk prompt different from a health score?
A health score returns a number, like 62 out of 100. A renewal risk prompt returns an action: this account is Amber because usage dropped and the champion went quiet, so here's who reaches out and by when. Scoring ranks the portfolio; the risk prompt tells you what to do about the accounts near the top of that list.
What signals should a renewal risk prompt read?
Three families do most of the work: product usage (active seats, feature breadth, 90-day trend), support load (ticket volume, severity, sentiment shift), and relationship health (champion activity, exec sponsor, open renewal date). The prompt weighs them together, because one weak signal rarely means churn but two or three stacked usually does.
Stop reading. Start shipping.

Get the prompt packs this guide is built on

Ready-to-paste prompts with documented variables and usage guides for ChatGPT, Claude, and Gemini. One-time payment, own it forever.