Case Study·B2B Professional Services (PE-backed)·LLM·Churn Intelligence
6 weeksproof of concept delivered
<24 hrsfrom first demo to client action on at-risk account
~350 daysmedian early warning lead time on confirmed churned accounts
01

The Trigger

Leadership at a PE-backed automotive marketing agency was constantly blindsided by client cancellations. By the time churn surfaced, the client had already decided to leave. The COO and PE ownership group found themselves regularly pulled into emergency retention calls, burning senior leadership time on reactive firefighting rather than proactive account management. The executive team estimated that 50 to 70 percent of their 1,000+ active dealer accounts were at risk at any given time. The frustrating part: most of that churn was mitigatable. When someone intervened early and got time with the account, they could usually save it. The problem was never the ability to retain. It was visibility. No one could see the risk before a cancellation request arrived.

02

The Constraint

The agency recorded everything in Gong: client performance reviews, sales calls, internal discussions. Over 30,000 calls sat in Snowflake. But no connection existed between what clients said on calls and how accounts were managed in Salesforce. Account executives often reported everything was fine, and leadership took those assessments at face value. A prior attempt at keyword-based matching had already failed. It surfaced too many false positives, created more noise than signal, and was abandoned. The team needed something that could distinguish genuine frustration from a client joking about a tough quarter, understand context around complaints, and separate signals attributable to the agency from general market conditions outside anyone's control. There was no systematic way to do that across thousands of calls, and no framework for what a meaningful churn signal even looked like at scale.

03

The Approach

Mammoth Growth built a churn signal detection system entirely within the client's Snowflake environment that listens to every client call and extracts specific evidence of client dissatisfaction: exact quotes, severity ratings, and attribution flags indicating whether the issue was within the agency's control or driven by external market conditions. Evidence is aggregated at the account level to detect patterns over time: Is dissatisfaction escalating, or was it a single bad call that had been resolved? The LLM handles extraction and judgment. dbt handles all scoring math, risk binning, and aggregation, making the entire methodology auditable, adjustable, and rerunnable without pushing every call back through the model. The system surfaces actionable risk tiers through a live Streamlit dashboard and automatically creates Salesforce case tickets when new churn risk is detected, assigning them directly to the responsible account manager with specific evidence and a link to the dashboard. The problems now come to them, with context, before a cancellation request ever lands.

04

The Outcome

When Mammoth ran the model against accounts that had already churned, the system detected risk signals in 100% of accounts with sufficient call data, with a median lead time of approximately 350 days from first detected signal to actual churn event. A year of warning had been sitting in those transcripts, invisible at scale. Within the first live dashboard review, the system flagged a critical-risk account that the VP of Client Operations had no prior visibility into. The executive on the call stopped the demo walkthrough mid-sentence to dig into the account details. Immediately after the session, the team escalated to the CX director and began intervention. It stopped being a concept and became operational in a single moment. That account was not an outlier. Of the thirteen accounts the system flagged as at-risk, seven were previously unknown to the account manager. The model was not just confirming existing concerns. It was surfacing risk the team had no visibility into.

What This Unlocked

Every new call is scored automatically. No manual review required. New calls processed daily on an incremental basis, keeping cost controlled at roughly 17 cents per call.

Early warning, not surprise churn. At-risk accounts will now be flagged weeks or months before a cancellation request, replacing reactive scrambles with structured escalation workflows.

Quoted evidence, not vague sentiment. Account executives and managers receive specific, sourced proof of client frustration tied directly to call transcripts.

Leadership time recovered. Senior leaders previously pulled into emergency interventions are freed to focus on strategic priorities.

One foundation, multiple applications. The same data powering churn detection now supports expansion signals, campaign impact measurement, and conversational analytics across the entire account base.

Services

AI/MLData EngineeringAnalytics

Tech Stack

SnowflakeSnowflake CortexdbtStreamlitGong APISalesforce

Results

Eligible calls scored

2,546

Validation alignment (human vs. LLM)

100%

Incremental cost per call

~$0.17

Unknown vs. known at-risk accounts

7:6

These numbers don't happen by accident.

Let's Talk