Churn signals are scattered
Usage decay lives in product telemetry, payment friction in billing, sentiment in support tickets and NPS, relationship health in CRM activity. Each team holds a piece; no one sees the account whole.
Project · AI-assisted churn operations system
ChurnAgent is an AI-assisted churn risk operations system for B2B SaaS teams. It converts CRM, product usage, support, billing, and customer-success signals into account-level risk scores, intervention playbooks, portfolio summaries, and escalation decisions.
40
accounts scored
$4.22M
ARR analyzed
31
intervention playbooks generated
~2 sec
deterministic demo run
The validated demo uses synthetic data and deterministic local playbooks.
The operating problem
The signals that predict churn already exist inside most B2B SaaS companies. They just live in five different systems, owned by five different teams, with no governed path from signal to action.
Usage decay lives in product telemetry, payment friction in billing, sentiment in support tickets and NPS, relationship health in CRM activity. Each team holds a piece; no one sees the account whole.
Even teams with a churn model hand CSMs a number, not an action. A risk score without a specific, signal-grounded playbook changes nothing about the next customer conversation.
When too much revenue concentrates in the critical tier, leadership needs to know before outreach starts. That requires thresholds, escalation, and an audit trail — not a dashboard alone.
What ChurnAgent does
Every account gets a 90-day churn probability and a risk tier, computed from engineered signals rather than a single metric.
AI-assisted, per-account plans grounded only in that account's signals: diagnosis, recommended outreach, talking points, and disposition criteria.
Each run produces an executive summary: risk distribution by tier, ARR at risk, drift status, and the top exposures.
When portfolio thresholds are breached, delivery pauses and leadership is notified — a governance decision, not just an alert.
Nine derived risk signals per account, including usage slope, login decay, payment risk, support burden, CSM dark days, and NPS risk.
Every externally visible action writes a tenant-keyed audit record with sensitive payload redaction.
Validated demo workflow
The full pipeline has been validated end-to-end on a synthetic 40-account portfolio: every run moves each account through six steps, with a tenant-scoped audit record at every externally visible action.
01
CRM, billing, product telemetry, and support data, normalized per tenant into one account-level picture.
02
Raw signals become nine derived risk features: usage slope, login decay, payment risk, CSM dark days, and more.
03
A per-tenant model assigns a 90-day churn probability and risk tier to every account.
04
AI-assisted intervention plans for every Critical and High account, grounded only in that account's own signals.
05
An executive summary aggregates risk distribution, ARR at risk, drift status, and top exposures for the run.
06
If Critical-tier ARR exceeds the portfolio threshold, delivery pauses and leadership is notified with the reasons.
Dashboard evidence
A read-only dashboard sits on top of the pipeline so an evaluator can click through the loop instead of reading about it. Demo video walkthrough coming soon.
Tenant-scoped record of every demo run: status, trigger, timing, playbook count, and escalation reasons.
Accounts and ARR per Critical, High, Medium, and Low tier for the latest run.
Churn probability × annual contract value, ranked, with customer tier and risk tier per account.
Per-account diagnosis, risk drivers, outreach plan, talking points, and disposition criteria.
Fires when Critical-tier ARR exceeds the portfolio threshold — the governance loop, visible.
The dashboard exposes one safe, hard-coded demo trigger. Nothing else is writable from the surface.
Example output
Account sits in the Critical tier. Leading indicators: login decay 0.41, WAU 4-week slope −0.12, 63 days since last CSM touch.
csm_dark_days +63.0 · login_decay +0.410 · wau_slope_4w −0.120
Within 48 hours: executive sponsor call, with the CSM briefing the sponsor beforehand. Within 5 business days: a working session with the account's power users to rebuild an adoption plan.
Anchor the conversation in the account's own usage numbers. Acknowledge the 63-day relationship gap and commit to a fixed cadence.
Move out of Critical when WAU slope turns non-negative for 2 consecutive weeks, a CSM touchpoint lands within the last 14 days, and no new P1 tickets are open.
Synthetic demo output — generated locally by demo mode, deterministic template, no LLM call was made.
Architecture
Tenant identity is threaded through every model, query, ML artifact, and external action. Data plane and control plane are separate services.
Tenant-scoped database access is enforced with Postgres row-level security, covered by automated cross-tenant isolation tests.
Each tenant's integration credentials are stored under per-tenant envelope encryption, with ciphertext cryptographically bound to its tenant.
Every customer gets a model trained only on its own history; blended cross-tenant training sets are rejected at the pipeline level.
Every CRM write, message, and prediction emits a tenant-keyed audit row with sensitive payload redaction.
By default the demo makes no CRM and no live LLM calls: synthetic data in, deterministic playbooks out, fully reproducible.
Production readiness
Continue exploring
A demo video walkthrough of the full loop is coming soon. In the meantime, the consulting practice and writing show how the same structured-decision approach applies beyond churn.