Case study: Business strategy & analytics

Busy doesn't mean profitable.
Two years of data proved it.

A growth and retention diagnostic for an independent gym, built from 24 months of dashboard data, for two owners working seven days a week and running out of road.

Independent single-owner gym, South Korea May 2024 – May 2026 Researched, built & presented in Korean
24 months
of membership, attendance and revenue data analyzed across three dimensions
−62%
year-over-year ARPU collapse identified in the single worst month
1 in 5
gym-only members had ever bought the highest-margin product
The problem
Trigger

The owner and the pilates instructor were working 8am to 9pm, seven days a week, all year.

Two instructors covering every session between them, with no scheduled time off. Both were burning out. The question the owner brought me wasn't how to grow. It was: when can I take a break without losing money?

Why that was hard to answer

Two years of data existed. Nobody had looked across it.

Membership, attendance and revenue were all in the dashboard, recorded separately and never compared. Without knowing which months actually earned, there was no way to tell a quiet month from an expensive one to close.

The assumption I tested

"Busy months are good months."

The working belief was that attendance and revenue move together: a packed floor means a good month, a quiet one means a bad one. Every operational instinct followed from that. It turned out to be backwards, and the gap between the two is exactly where the money was leaking.

Constraint

Whatever I recommended had to be executable by two people already at capacity.

No marketing team, no CRM, no budget for tooling, and nobody to delegate to. Any recommendation that added hours to the week was useless before it was written.

How I approached it
1

Pulled and normalized two years of dashboard data

Exported membership counts, attendance logs and revenue from May 2024 through May 2026, then aligned all three onto a single monthly timeline so they could be compared directly rather than read in isolation.

2

Ran quarter-over-quarter and year-over-year comparisons

Seasonal businesses look chaotic month to month. Comparing each month against the same month a year earlier stripped out the noise and made the real pattern legible, which is where the decoupling showed up.

3

Derived ARPU as the diagnostic metric

Revenue and membership each looked fine on their own. Dividing one by the other exposed the actual problem: months where the gym was at peak headcount and minimum earnings. ARPU was the metric that made the December failure impossible to miss.

4

Traced the leaks down to individual members

Aggregate trends don't give an owner anything to do on Monday morning. I went back into the member-level records to find the specific accounts driving the loss (expiring contracts, unused sessions, unconverted members) and turned the analysis into a call list.

5

Built and presented the deck in Korean

Structured as a diagnostic: what the data says, what's breaking, what to do about it, sequenced by time horizon. Presented directly to the owner in a working session, in the language the business runs in.

What I found

Revenue and attendance had come apart.

Revenue spikes when new and returning members register (September, January) and collapses in December and across the summer, largely independent of how many people are actually walking through the door. The gym's busiest months and its best months are not the same months.

Membership, attendance and revenue, indexedIndexed, Q3 2024 = 100, so three different units share one axis.60100140180220260REVENUE AND THE FLOOR SPLITMembers 151106 to 160 membersAttendance 15720.4 to 32.0 a dayRevenue 258+158% on Q3 2024Q3 2024Q4 2024Q1 2025Q2 2025Q3 2025Q4 2025Q1 2026By Q1 2026 revenue hit its highest point while attendance and membership sat near their lowest.Attendance is the quarterly daily average. Q2 2026 is excluded: the quarter was incomplete.
The thesis in one chart: revenue and the floor moving in opposite directions.
Active members, May 2024 to May 2026Monthly count from the gym's dashboard100140180220218PEAK AUG 202591145163May 24Dec 24May 25Aug 25Dec 25May 2691 to 145 across 2024, a peak of 218 in August 2025, then settled at 157-163.
Finding 01: the climb, the August 2025 peak, and the step down.
Finding 01: Growth, then give-back

Membership grew from 91 to 145 across 2024, peaked at 218 in August 2025, then settled at 157–163.

That peak was never rebuilt on. Membership now sits about a quarter below it, and acquisition has not recovered since.

Year-over-year attendance changeEvery month in the dataset declined, by 20% to 37%−37%−20%every month falls in here0%: flat vs. prior yearRevenue held up anyway, on rising ARPU.Fewer people each paying more: stability on the revenue chart, concentration risk underneath.
Finding 02: attendance down across the board, revenue propped up by revenue per member.
Finding 02: Fragile revenue

Attendance fell 20–37% year over year in every single month, while revenue held up on rising ARPU.

Fewer people, each paying more. That reads as stability on a revenue chart and is anything but. The business is increasingly dependent on a shrinking group of high-value members, and losing any one of them now moves the monthly number.

The December decouplingDecember 2024 against December 2025: more members, half the revenueno changeMEMBERS+36%145 to 197 membersREVENUE−48%roughly halvedREVENUE PER MEMBER−62%the sharpest fall in the datasetTwo years running: peak headcount, minimum spend.The busiest month of the year is one of the least profitable.
Finding 03: the sharpest failure in the dataset.
Finding 03: The December trap

Peak headcount, half the revenue, two years running.

Members keep showing up in December and nobody buys anything. It is the most physically demanding month of the year and one of the least profitable. Nothing in the gym's operating calendar accounted for this.

Finding 04: Revenue leaking now

23 PT memberships expiring within 30 days, several belonging to members who still have sessions left and have stopped coming in.

These are the highest-probability churn cases in the business and the easiest to save. A member with unused sessions who has gone quiet is not a lost cause; they're a phone call. Nobody was tracking this.

Finding 05: Revenue never captured

Only 13 of 65 gym-only members have ever converted to personal training.

A 20% conversion rate against the single highest-margin product in the business, leaving 52 members untouched. No structured upsell path existed; conversion was happening by accident.

What I recommended

Sequenced by time horizon, so the owner knows what to do this week.

Immediate: this week
  • Individual outreach to all 23 members with PT contracts expiring inside 30 days, prioritizing non-visitors with sessions remaining first: the highest-value, lowest-effort saves in the list.
  • Work from the attached member-level list, not from memory.
30–60 days
  • Structured upsell path for the 52 gym-only members who have never tried PT: a defined offer and trigger rather than ad-hoc conversation.
  • Pre-plan a November campaign to pull December revenue forward. The December collapse is predictable two years running, which means it is preventable, but only if the offer lands before the month starts.
3–6 months: structural
  • Rebuild acquisition with an explicit target of 200+ members, treating the August 2025 peak as the benchmark rather than an anomaly.
  • Stand up a simple revenue forecast: expiring PT sessions vs. new sales, month by month. This converts revenue from something observed after the fact into something visible in advance.
The recommendation I'd highlight

Reframing the same data as an operating calendar.

This was the question the owner actually came with, so it got a direct answer: a season / off-season calendar built from two years of attendance and revenue, showing which months earn and which ones can be given up cheaply.

Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
Push: highest return on effort Recover: lowest attendance & revenue Trap month: busy, unprofitable No strong signal either way
Rest in May, June and August. Run full-out January through April and in November. And treat December as the trap month: the busiest, least profitable, and honestly the most draining month of the year.

When the business runs on two people working 8am to 9pm, burnout is a P&L risk. Telling them which months to hold back in is as much a revenue recommendation as telling them when to push, and it's the kind of thing a standard analytics deck leaves out entirely.

Outcome

A gut-feel business got a diagnostic, a call list, and a calendar.

Two years of untouched data became an explanation for the revenue swings, two quantified leaks with names attached, and a plan the owner could start that week. No hiring, no new tooling.

The core finding reversed the assumption the business ran on: revenue tracks registrations, not attendance.

Consulting insight

Most small businesses aren't short on data. They're short on anyone who has looked at two series side by side. A chart showing a 62% ARPU decline is interesting; a list of 23 names to call on Monday is what recovers revenue. The distance between the two is the job.

An analysis a single owner can't execute is a report, not a recommendation. That meant cutting interesting findings with nothing actionable attached.

The client is not named, at their request. Revenue is shown as percentage change rather than amounts, to protect commercial detail; membership and attendance figures are as reported. Original research, analysis and presentation were delivered in Korean.