Field NoteAI & Capacity

Your customers are telling you they're about to leave — you're just not listening.

A gym. Quiet, steady churn. The marketing team found out when members had already been gone for weeks. What the data had been saying all along — and the weekly ritual that made it audible.

By Founding Partner, Nitro Advisory
6 min read
Exhibit · Issue #08

A gym owner came to us with a revenue problem. Members were churning — quietly, steadily, and with no warning. By the time the marketing team noticed a member had left, they'd already been gone for weeks. Follow-ups felt like chasing ghosts.

The data to prevent this existed. It just lived in three different systems that nobody was connecting.

The Fragmented Data Problem

This is one of the most common and most underestimated issues in recurring-revenue businesses. Revenue transactions sit in Stripe. Walk-in purchases go through the POS. The membership management system has its own reporting layer. And because nobody has stitched these datasets together, nobody has a unified view of customer behaviour.

Each system tells a partial truth. Stripe says a customer's card was charged. The POS says they bought a protein shake last Tuesday. The management system says their membership is active. But none of them can answer the question that actually matters: is this customer showing early signs of leaving?

The signals are there — declining visit frequency, downgraded membership tier, lapsed add-on purchases, reduced engagement with classes or promotions. But these signals are invisible when the data lives in silos.

Building the Early Warning System

For the gym client, we started by extracting transaction data from Stripe and the POS system, then standardised and merged the two datasets into a single customer-level view. From there, we could see the complete picture: when each member joined, how their spending pattern evolved over time, what their visit frequency looked like, and — critically — how current behaviour compared to their historical baseline.

With that foundation, we built an early warning layer. Customers were flagged when their engagement metrics dropped below thresholds calibrated to the gym's average retention curve. The flags were segmented by membership tier — because a platinum member showing early churn signals has a different revenue impact than a basic member, and warrants a different intervention.

The marketing team went from reactive ("this member cancelled — should we call them?") to proactive ("these twelve members are at risk this month — here's the priority list").

The Structural Fix

Detection is only half the equation. The other half is preventing churn at the structural level.

We reviewed the gym's membership terms and identified an opportunity to restructure tiers and perks in a way that incentivised longer commitment periods. The redesign wasn't about locking customers in — it was about delivering more value at each tier, so that upgrading or extending felt like a win for the customer while simultaneously improving revenue predictability for the business.

The best retention strategies don't feel like retention strategies. They feel like better service.

This Isn't Just a Gym Problem

If your business runs on recurring revenue — subscriptions, retainers, memberships, term contracts, tuition fees — the same principles apply. The specifics of the data sources change, but the pattern is universal:

Revenue data is fragmented across systems. Nobody has a unified customer-level view. Churn signals exist but aren't being captured. And by the time someone notices a customer has left, the window for intervention has closed.

Three Questions to Pressure-Test Your Setup

Do you know your average customer retention period? Not the contractual term — the actual average time a customer stays with you before leaving. If you can't answer this from your data, you're measuring revenue without understanding the engine behind it.

Can you identify at-risk customers by name today? Not "we think some customers are unhappy" — can you pull a list, right now, of the specific customers whose behaviour suggests they're about to leave? If not, you're waiting for the damage instead of preventing it.

When was the last time you looked at your revenue data as a whole? Not system by system — Stripe separately, POS separately, CRM separately — but stitched together into a single customer view. If the answer is "never," you're making decisions based on fragments.

Your customers are telling you everything you need to know. The question is whether your data is set up to hear it.